Author: hwright
Date: Fri Mar 19 14:53:31 2010
New Revision: 925249
URL: http://svn.apache.org/viewvc?rev=925249&view=rev
Log:
JavaHL: Enum'ize the LockStatus values (which, coincidentally, don't have
anything to do with Lock's).
[ in subversion/bindings/javahl/ ]
* native/EnumMapper.h,
native/EnumMapper.cpp
(mapNotifyLockState): Update to return the proper enum object.
* native/NotifyCallback.cpp
(onNotify): Treat the lock status as a proper object.
* src/org/apache/subversion/javahl/NotifyInformation.java
(LockStatus): New.
(NotifyInformation): Update lock state types.
* src/org/apache/subversion/javahl/LockStatus.java:
Remove.
* src/org/tigris/subversion/javahl/NotifyInformation.java
(NotifyInformation): Wrap the new lock state enum.
Removed:
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/LockStatus.java
Modified:
subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp
subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h
subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NotifyInformation.java
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java
Modified: subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp?rev=925249&r1=925248&r2=925249&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/EnumMapper.cpp Fri Mar
19 14:53:31 2010
@@ -32,12 +32,8 @@
#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_LockStatus.h"
#include "../include/org_apache_subversion_javahl_Revision.h"
#include "../include/org_apache_subversion_javahl_ScheduleKind.h"
-#include "../include/org_apache_subversion_javahl_ConflictDescriptor_Kind.h"
-#include "../include/org_apache_subversion_javahl_ConflictDescriptor_Action.h"
-#include "../include/org_apache_subversion_javahl_ConflictDescriptor_Reason.h"
/**
* Map a C commit state flag constant to the Java constant.
@@ -257,30 +253,26 @@ jobject EnumMapper::mapNodeKind(svn_node
/**
* Map a C notify lock state constant to the Java constant.
- * @param state the C notify lock state constant
- * @returns the Java constant
*/
-jint EnumMapper::mapNotifyLockState(svn_wc_notify_lock_state_t state)
+jobject EnumMapper::mapNotifyLockState(svn_wc_notify_lock_state_t state)
{
switch(state)
{
+ default:
case svn_wc_notify_lock_state_inapplicable:
- return org_apache_subversion_javahl_LockStatus_inapplicable;
+ return mapEnum(JAVA_PACKAGE"/NotifyInformation$LockStatus",
"inapplicable");
case svn_wc_notify_lock_state_unknown:
- return org_apache_subversion_javahl_LockStatus_unknown;
+ return mapEnum(JAVA_PACKAGE"/NotifyInformation$LockStatus", "unknown");
case svn_wc_notify_lock_state_unchanged:
- return org_apache_subversion_javahl_LockStatus_unchanged;
+ return mapEnum(JAVA_PACKAGE"/NotifyInformation$LockStatus", "unchanged");
case svn_wc_notify_lock_state_locked:
- return org_apache_subversion_javahl_LockStatus_locked;
+ return mapEnum(JAVA_PACKAGE"/NotifyInformation$LockStatus", "locked");
case svn_wc_notify_lock_state_unlocked:
- return org_apache_subversion_javahl_LockStatus_unlocked;
-
- default:
- return org_apache_subversion_javahl_LockStatus_inapplicable;
+ return mapEnum(JAVA_PACKAGE"/NotifyInformation$LockStatus", "unlocked");
}
}
Modified: subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h?rev=925249&r1=925248&r2=925249&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/EnumMapper.h Fri Mar 19
14:53:31 2010
@@ -50,7 +50,7 @@ class EnumMapper
static jobject mapNotifyState(svn_wc_notify_state_t state);
static jobject mapNotifyAction(svn_wc_notify_action_t action);
static jobject mapNodeKind(svn_node_kind_t nodeKind);
- static jint mapNotifyLockState(svn_wc_notify_lock_state_t state);
+ static jobject mapNotifyLockState(svn_wc_notify_lock_state_t state);
static jobject mapStatusKind(svn_wc_status_kind svnKind);
static jint mapScheduleKind(svn_wc_schedule_t schedule);
static jobject mapConflictKind(svn_wc_conflict_kind_t kind);
Modified: subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp?rev=925249&r1=925248&r2=925249&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp Fri
Mar 19 14:53:31 2010
@@ -150,7 +150,8 @@ NotifyCallback::onNotify(const svn_wc_no
"Ljava/lang/String;"
"L"JAVA_PACKAGE"/NotifyInformation$Status;"
"L"JAVA_PACKAGE"/NotifyInformation$Status;"
- "IJLjava/lang/String;"
+ "L"JAVA_PACKAGE"/NotifyInformation$LockStatus;"
+ "JLjava/lang/String;"
"L"JAVA_PACKAGE"/RevisionRange;"
"Ljava/lang/String;)V");
if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
@@ -190,7 +191,9 @@ NotifyCallback::onNotify(const svn_wc_no
if (JNIUtil::isJavaExceptionThrown())
return;
- jint jLockState = EnumMapper::mapNotifyLockState(wcNotify->lock_state);
+ jobject jLockState = EnumMapper::mapNotifyLockState(wcNotify->lock_state);
+ if (JNIUtil::isJavaExceptionThrown())
+ return;
jstring jChangelistName = JNIUtil::makeJString(wcNotify->changelist_name);
if (JNIUtil::isJavaExceptionThrown())
@@ -226,6 +229,10 @@ NotifyCallback::onNotify(const svn_wc_no
if (JNIUtil::isJavaExceptionThrown())
return;
+ env->DeleteLocalRef(jLockState);
+ if (JNIUtil::isJavaExceptionThrown())
+ return;
+
env->DeleteLocalRef(jPropState);
if (JNIUtil::isJavaExceptionThrown())
return;
Modified:
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NotifyInformation.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NotifyInformation.java?rev=925249&r1=925248&r2=925249&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NotifyInformation.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NotifyInformation.java
Fri Mar 19 14:53:31 2010
@@ -80,7 +80,7 @@ public class NotifyInformation extends E
/**
* The {...@link LockStatus} of the lock of the item.
*/
- private int lockState;
+ private LockStatus lockState;
/**
* The revision of the item.
@@ -127,7 +127,7 @@ public class NotifyInformation extends E
public NotifyInformation(String path, Action action, NodeKind kind,
String mimeType, Lock lock, String errMsg,
Status contentState, Status propState,
- int lockState, long revision,
+ LockStatus lockState, long revision,
String changelistName, RevisionRange mergeRange,
String pathPrefix)
{
@@ -213,7 +213,7 @@ public class NotifyInformation extends E
/**
* @return The {...@link LockStatus} of the lock of the item.
*/
- public int getLockState()
+ public LockStatus getLockState()
{
return lockState;
}
@@ -492,4 +492,37 @@ public class NotifyInformation extends E
return description;
}
}
+
+ public enum LockStatus
+ {
+ /** does not make sense for this operation */
+ inapplicable ("inapplicable"),
+
+ /** unknown lock state */
+ unknown ("unknown"),
+
+ /** the lock change did not change */
+ unchanged ("unchanged"),
+
+ /** the item was locked */
+ locked ("locked"),
+
+ /** the item was unlocked */
+ unlocked ("unlocked");
+
+ /**
+ * The description of the action.
+ */
+ private String description;
+
+ LockStatus(String description)
+ {
+ this.description = description;
+ }
+
+ public String toString()
+ {
+ return description;
+ }
+ }
}
Modified:
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java?rev=925249&r1=925248&r2=925249&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java
Fri Mar 19 14:53:31 2010
@@ -157,7 +157,7 @@ public class NotifyInformation extends E
aInfo.getLock() == null ? null : new Lock(aInfo.getLock()),
aInfo.getErrMsg(), fromAStatus(aInfo.getContentState()),
fromAStatus(aInfo.getPropState()),
- aInfo.getLockState(), aInfo.getRevision(),
+ aInfo.getLockState().ordinal(), aInfo.getRevision(),
aInfo.getChangelistName(),
aInfo.getMergeRange() == null ? null
: new RevisionRange(aInfo.getMergeRange()),