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 2011/05/06 19:56:17 UTC

svn commit: r1100303 - in /subversion/trunk/subversion/bindings/javahl: native/CreateJ.cpp src/org/apache/subversion/javahl/types/Status.java src/org/tigris/subversion/javahl/Status.java

Author: hwright
Date: Fri May  6 17:56:16 2011
New Revision: 1100303

URL: http://svn.apache.org/viewvc?rev=1100303&view=rev
Log:
JavaHL: Provide information about the local lock in Status with a Lock object,
rather than several individual objects.

[ in subversion/bindings/javahl/ ]
* native/CreateJ.cpp
  (Status): Create and return a Lock object, rather than separate fields.
 
* src/org/apache/subversion/javahl/types/Status.java
  (lockToken, lockOwner, lockComment, lockCreationDate): Remove, along with
    getters.
  (localLock): New, with getter.
  (Status): Adjust constructor params.

* src/org/tigris/subversion/javahl/Status.java
  (populateLocalLock): New.
  (Status): Use the above helper to maintain compat.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java
    subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.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=1100303&r1=1100302&r2=1100303&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Fri May  6 17:56:16 2011
@@ -501,10 +501,9 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
                              "L"JAVA_PACKAGE"/types/Status$Kind;"
-                             "ZZZLjava/lang/String;"
-                             "JZZLjava/lang/String;Ljava/lang/String;"
-                             "Ljava/lang/String;"
-                             "JL"JAVA_PACKAGE"/types/Lock;"
+                             "ZZZLjava/lang/String;JZZ"
+                             "L"JAVA_PACKAGE"/types/Lock;"
+                             "L"JAVA_PACKAGE"/types/Lock;"
                              "JJL"JAVA_PACKAGE"/types/NodeKind;"
                              "Ljava/lang/String;Ljava/lang/String;)V");
       if (JNIUtil::isJavaExceptionThrown())
@@ -526,10 +525,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
   jstring jURLCopiedFrom = NULL;
   jlong jRevisionCopiedFrom =
     org_apache_subversion_javahl_types_Revision_SVN_INVALID_REVNUM;
-  jstring jLockToken = NULL;
-  jstring jLockComment = NULL;
-  jstring jLockOwner = NULL;
-  jlong jLockCreationDate = 0;
+  jobject jLocalLock = NULL;
   jstring jChangelist = NULL;
 
   enum svn_wc_status_kind text_status = status->node_status;
@@ -556,7 +552,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
-  jobject jLock = CreateJ::Lock(status->repos_lock);
+  jobject jReposLock = CreateJ::Lock(status->repos_lock);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
@@ -588,22 +584,9 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
 
-      if (status->lock)
-        {
-          jLockToken = JNIUtil::makeJString(status->lock->token);
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-
-          jLockComment = JNIUtil::makeJString(status->lock->comment);
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-
-          jLockOwner = JNIUtil::makeJString(status->lock->owner);
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-
-          jLockCreationDate = status->lock->creation_date;
-        }
+      jLocalLock = Lock(status->lock);
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
 
       jChangelist = JNIUtil::makeJString(status->changelist);
       if (JNIUtil::isJavaExceptionThrown())
@@ -639,9 +622,8 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
                                jRepositoryTextType, jRepositoryPropType,
                                jIsLocked, jIsCopied, jIsConflicted,
                                jURLCopiedFrom, jRevisionCopiedFrom,
-                               jIsSwitched, jIsFileExternal, jLockToken,
-                               jLockOwner,
-                               jLockComment, jLockCreationDate, jLock,
+                               jIsSwitched, jIsFileExternal, jLocalLock,
+                               jReposLock,
                                jOODLastCmtRevision, jOODLastCmtDate,
                                jOODKind, jOODLastCmtAuthor, jChangelist);
 

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java?rev=1100303&r1=1100302&r2=1100303&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java Fri May  6 17:56:16 2011
@@ -137,25 +137,9 @@ public class Status implements java.io.S
     private long revisionCopiedFrom;
 
     /**
-     * token specified for the lock (null if not locked)
+     * the current lock
      */
-    private String lockToken;
-
-    /**
-     * owner of the lock (null if not locked)
-     */
-    private String lockOwner;
-
-    /**
-     * comment specified for the lock (null if not locked)
-     */
-    private String lockComment;
-
-    /**
-     * date of the creation of the lock (represented in microseconds
-     * since the epoch)
-     */
-    private long lockCreationDate;
+    private Lock localLock;
 
     /**
      * the lock in the repository
@@ -222,10 +206,7 @@ public class Status implements java.io.S
      * @param switched              flag if the node has been switched in the
      *                              path
      * @param fileExternal          flag if the node is a file external
-     * @param lockToken             the token for the current lock if any
-     * @param lockOwner             the owner of the current lock is any
-     * @param lockComment           the comment of the current lock if any
-     * @param lockCreationDate      the date, the lock was created if any
+     * @param localLock             the current lock
      * @param reposLock             the lock as stored in the repository if
      *                              any
      * @param reposLastCmtRevision  the youngest revision, if out of date
@@ -242,8 +223,7 @@ public class Status implements java.io.S
                   Kind repositoryTextStatus, Kind repositoryPropStatus,
                   boolean locked, boolean copied, boolean isConflicted,
                   String urlCopiedFrom, long revisionCopiedFrom,
-                  boolean switched, boolean fileExternal, String lockToken,
-                  String lockOwner, String lockComment, long lockCreationDate,
+                  boolean switched, boolean fileExternal, Lock localLock,
                   Lock reposLock, long reposLastCmtRevision,
                   long reposLastCmtDate, NodeKind reposKind,
                   String reposLastCmtAuthor, String changelist)
@@ -266,10 +246,7 @@ public class Status implements java.io.S
         this.revisionCopiedFrom = revisionCopiedFrom;
         this.switched = switched;
         this.fileExternal = fileExternal;
-        this.lockToken = lockToken;
-        this.lockOwner = lockOwner;
-        this.lockComment = lockComment;
-        this.lockCreationDate = lockCreationDate;
+        this.localLock = localLock;
         this.reposLock = reposLock;
         this.reposLastCmtRevision = reposLastCmtRevision;
         this.reposLastCmtDate = reposLastCmtDate;
@@ -563,49 +540,12 @@ public class Status implements java.io.S
     }
 
     /**
-     * Returns the lock token
-     * @return the lock token
-     */
-    public String getLockToken()
-    {
-        return lockToken;
-    }
-
-    /**
-     * Returns the lock  owner
-     * @return the lock owner
-     */
-    public String getLockOwner()
-    {
-        return lockOwner;
-    }
-
-    /**
-     * Returns the lock comment
-     * @return the lock comment
-     */
-    public String getLockComment()
-    {
-        return lockComment;
-    }
-
-    /**
-     * Returns the lock creation date
-     * @return the lock creation date
-     */
-    public Date getLockCreationDate()
-    {
-        return microsecondsToDate(lockCreationDate);
-    }
-
-    /**
-     * Returns the lock creation date measured in the number of
-     * microseconds since 00:00:00 January 1, 1970 UTC.
-     * @return the lock creation date
+     * Returns the local lock
+     * @return the local lock
      */
-    public long getLockCreationDateMicros()
+    public Lock getLocalLock()
     {
-        return lockCreationDate;
+        return localLock;
     }
 
     /**

Modified: subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java?rev=1100303&r1=1100302&r2=1100303&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java Fri May  6 17:56:16 2011
@@ -384,6 +384,18 @@ public class Status implements java.io.S
         }
     }
 
+    void
+    populateLocalLock(org.apache.subversion.javahl.types.Lock aLock)
+    {
+        if (aLock == null)
+            return;
+
+        this.lockToken = aLock.getToken();
+        this.lockOwner = aLock.getOwner();
+        this.lockComment = aLock.getComment();
+        this.lockCreationDate = aLock.getCreationDate().getTime() * 1000;;
+    }
+
     /**
      * A backward-compat wrapper.
      */
@@ -402,9 +414,7 @@ public class Status implements java.io.S
              aStatus.isLocked(), aStatus.isCopied(), false,
              null, null, null, null, aStatus.getUrlCopiedFrom(),
              aStatus.getRevisionCopiedFromNumber(), aStatus.isSwitched(),
-             aStatus.isFileExternal(), aStatus.getLockToken(),
-             aStatus.getLockOwner(), aStatus.getLockComment(),
-             aStatus.getLockCreationDateMicros(),
+             aStatus.isFileExternal(), null, null, null, 0,
              aStatus.getReposLock() == null ? null
                 : new Lock(aStatus.getReposLock()),
              aStatus.getReposLastCmtRevisionNumber(),
@@ -415,6 +425,8 @@ public class Status implements java.io.S
         try {
             if (aStatus.isConflicted())
                 populateConflicts(aClient, aStatus.getPath());
+            if (aStatus.getLocalLock() != null)
+                populateLocalLock(aStatus.getLocalLock());
         } catch (org.apache.subversion.javahl.ClientException ex) {
             // Ignore
         }