Author: rhauch
Date: 2009-10-29 17:25:06 -0400 (Thu, 29 Oct 2009)
New Revision: 1315
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java
Log:
DNA-456 Corrected behavior of NetChangeObserver and how it records lock and unlock state
in the NetChange objects
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java 2009-10-28
19:27:45 UTC (rev 1314)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java 2009-10-29
21:25:06 UTC (rev 1315)
@@ -63,7 +63,9 @@
NODE_REMOVED,
PROPERTY_ADDED,
PROPERTY_REMOVED,
- PROPERTY_CHANGED;
+ PROPERTY_CHANGED,
+ NODE_LOCKED,
+ NODE_UNLOCKED;
}
protected NetChangeObserver() {
@@ -350,7 +352,6 @@
}
private enum LockAction {
- NO_CHANGE,
LOCKED,
UNLOCKED;
}
@@ -364,7 +365,6 @@
private final Set<Property> modifiedProperties = new
HashSet<Property>();
private final Set<Name> removedProperties = new HashSet<Name>();
private EnumSet<ChangeType> eventTypes = EnumSet.noneOf(ChangeType.class);
- private LockAction lockAction = LockAction.NO_CHANGE;
protected NetChangeDetails() {
}
@@ -372,15 +372,16 @@
public void setLockAction( LockAction lockAction ) {
switch (lockAction) {
case LOCKED:
- // always mark as locked
- this.lockAction = lockAction;
+ // always mark as locked and remove any unlocked state
+ eventTypes.add(ChangeType.NODE_LOCKED);
+ eventTypes.remove(ChangeType.NODE_UNLOCKED);
break;
case UNLOCKED:
- // mark as unlock or unchanged if previously locked ...
- this.lockAction = this.lockAction == LockAction.LOCKED ?
LockAction.UNLOCKED : lockAction;
+ if (!eventTypes.remove(ChangeType.NODE_LOCKED)) {
+ // It was not previously locked by this change set, so we should
unlock it ...
+ eventTypes.add(ChangeType.NODE_UNLOCKED);
+ }
break;
- case NO_CHANGE:
- break;
}
}
@@ -404,13 +405,6 @@
}
/**
- * @return lockAction
- */
- public LockAction getLockAction() {
- return lockAction;
- }
-
- /**
* @return nodeAction
*/
public EnumSet<ChangeType> getEventTypes() {
Show replies by date