[dna-commits] DNA SVN: r1315 - trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Thu Oct 29 17:25:06 EDT 2009


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() {



More information about the dna-commits mailing list