You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/03/22 17:57:47 UTC

svn commit: r926184 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/ src/org/tigris/subversion/javahl/

Author: hwright
Date: Mon Mar 22 16:57:47 2010
New Revision: 926184

URL: http://svn.apache.org/viewvc?rev=926184&view=rev
Log:
JavaHL: Enum'ize the ConflictDescriptor's Operation.  I suspect this to be
the last one. :)

[ in subversion/bindings/javahl/ ]
* native/CreateJ.cpp
  (ConflictDescriptor): Update constructor signature, and use the java object
    to create the Operation argument.

* native/EnumMapper.h,
  native/EnumMapper.cpp
  (mapOperation): Update to return the proper Java object.

* src/org/apache/subversion/javahl/ConflictDescriptor.java
  (operation, ConflictDescriptor, getOperation): Update to use the enum type.
  (Operation): New.

* src/org/apache/subversion/javahl/Operation.java:
  Remove.

* src/org/tigris/subversion/javahl/ConflictDescriptor.java
  (ConflictDescriptor): Update the wrapper.

Removed:
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/Operation.java
Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp
    subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
    subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java

Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=926184&r1=926183&r2=926184&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Mon Mar 22 16:57:47 2010
@@ -59,7 +59,8 @@ CreateJ::ConflictDescriptor(const svn_wc
                               "L"JAVA_PACKAGE"/NodeKind;"
                               "Ljava/lang/String;ZLjava/lang/String;"
                               "L"JAVA_PACKAGE"/ConflictDescriptor$Action;"
-                              "L"JAVA_PACKAGE"/ConflictDescriptor$Reason;I"
+                              "L"JAVA_PACKAGE"/ConflictDescriptor$Reason;"
+                              "L"JAVA_PACKAGE"/ConflictDescriptor$Operation;"
                               "Ljava/lang/String;Ljava/lang/String;"
                               "Ljava/lang/String;Ljava/lang/String;"
                               "L"JAVA_PACKAGE"/ConflictVersion;"
@@ -107,13 +108,15 @@ CreateJ::ConflictDescriptor(const svn_wc
   jobject jconflictReason = EnumMapper::mapConflictReason(desc->reason);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
+  jobject joperation = EnumMapper::mapOperation(desc->operation);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
 
   // Instantiate the conflict descriptor.
   jobject jdesc = env->NewObject(clazz, ctor, jpath, jconflictKind,
                                  jnodeKind, jpropertyName,
                                  (jboolean) desc->is_binary, jmimeType,
-                                 jconflictAction, jconflictReason,
-                                 EnumMapper::mapOperation(desc->operation),
+                                 jconflictAction, jconflictReason, joperation,
                                  jbasePath, jreposPath, juserPath,
                                  jmergedPath, jsrcLeft, jsrcRight);
   if (JNIUtil::isJavaExceptionThrown())

Modified: subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp?rev=926184&r1=926183&r2=926184&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp Mon Mar 22 16:57:47 2010
@@ -31,8 +31,6 @@
 #include "JNIUtil.h"
 #include "JNIStringHolder.h"
 #include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
-#include "../include/org_apache_subversion_javahl_Operation.h"
-#include "../include/org_apache_subversion_javahl_Revision.h"
 
 /**
  * Map a C commit state flag constant to the Java constant.
@@ -156,20 +154,10 @@ jobject EnumMapper::mapDepth(svn_depth_t
   return mapEnum(JAVA_PACKAGE"/Depth", ((int) depth) + 2);
 }
 
-jint EnumMapper::mapOperation(svn_wc_operation_t operation)
+jobject EnumMapper::mapOperation(svn_wc_operation_t operation)
 {
-  switch (operation)
-    {
-    case svn_wc_operation_none:
-    default:
-      return org_apache_subversion_javahl_Operation_none;
-    case svn_wc_operation_update:
-      return org_apache_subversion_javahl_Operation_update;
-    case svn_wc_operation_switch:
-      return org_apache_subversion_javahl_Operation_switched;
-    case svn_wc_operation_merge:
-      return org_apache_subversion_javahl_Operation_merge;
-    }
+  // We're assuming a valid value for the C enum above
+  return mapEnum(JAVA_PACKAGE"/ConflictDescriptor$Operation", (int) operation);
 }
 
 jobject EnumMapper::mapTristate(svn_tristate_t tristate)

Modified: subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h?rev=926184&r1=926183&r2=926184&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h Mon Mar 22 16:57:47 2010
@@ -60,7 +60,7 @@ class EnumMapper
   static jobject mapConflictAction(svn_wc_conflict_action_t action);
   static jobject mapConflictReason(svn_wc_conflict_reason_t reason);
   static jobject mapDepth(svn_depth_t depth);
-  static jint mapOperation(svn_wc_operation_t);
+  static jobject mapOperation(svn_wc_operation_t);
   static jobject mapTristate(svn_tristate_t);
   static jobject mapSummarizeKind(svn_client_diff_summarize_kind_t);
  private:

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=926184&r1=926183&r2=926184&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Mon Mar 22 16:57:47 2010
@@ -59,7 +59,7 @@ public class ConflictDescriptor
     /**
      * @see Operation
      */
-    private int operation;
+    private Operation operation;
 
     /**
      * @see ConflictVersion
@@ -74,7 +74,7 @@ public class ConflictDescriptor
     /** This constructor should only be called from JNI code. */
     public ConflictDescriptor(String path, Kind conflictKind, NodeKind nodeKind,
                        String propertyName, boolean isBinary, String mimeType,
-                       Action action, Reason reason, int operation,
+                       Action action, Reason reason, Operation operation,
                        String basePath, String theirPath,
                        String myPath, String mergedPath,
                        ConflictVersion srcLeft, ConflictVersion srcRight)
@@ -156,7 +156,7 @@ public class ConflictDescriptor
         return mergedPath;
     }
 
-    public int getOperation()
+    public Operation getOperation()
     {
         return operation;
     }
@@ -243,4 +243,21 @@ public class ConflictDescriptor
          */
         added;
     }
+
+    public enum Operation
+    {
+        /* none */
+        none,
+
+        /* update */
+        update,
+
+        /* switch */
+        /* Note: this is different that svn_wc.h, because 'switch' is a
+        * reserved word in java  :(  */
+        switched,
+
+        /* merge */
+        merge;
+    }
 }

Modified: subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java?rev=926184&r1=926183&r2=926184&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java Mon Mar 22 16:57:47 2010
@@ -123,8 +123,8 @@ public class ConflictDescriptor
              NodeKind.fromApache(aDesc.getNodeKind()),
              aDesc.getPropertyName(), aDesc.isBinary(), aDesc.getMIMEType(),
              aDesc.getAction().ordinal(), aDesc.getReason().ordinal(),
-             aDesc.getOperation(), aDesc.getBasePath(), aDesc.getTheirPath(),
-             aDesc.getMyPath(), aDesc.getMergedPath(),
+             aDesc.getOperation().ordinal(), aDesc.getBasePath(),
+             aDesc.getTheirPath(), aDesc.getMyPath(), aDesc.getMergedPath(),
              new ConflictVersion(aDesc.getSrcLeftVersion()),
              new ConflictVersion(aDesc.getSrcRightVersion()));
     }