Introduce compare properties
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 19 Jan 2011 22:39:19 +0000 (22:39 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 19 Jan 2011 22:39:19 +0000 (22:39 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@4056 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java

index 4bc30534af14b4aa112c4f49e2180c0833388665..707639526422f709d425b5dff7cc2fb5247aa45c 100644 (file)
@@ -330,4 +330,28 @@ public class JcrUtils {
                                        + toNode, e);
                }
        }
+
+       /**
+        * Check whether all first-level properties (except jcr:* properties) are
+        * equal.
+        */
+       public static Boolean allPropertiesEquals(Node node1, Node node2) {
+               try {
+                       PropertyIterator pit = node1.getProperties();
+                       while (pit.hasNext()) {
+                               Property prop1 = pit.nextProperty();
+                               String propName = prop1.getName();
+                               if (!node2.hasProperty(propName))
+                                       return false;
+                               // TODO: deal with multiple property values?
+                               if (!node2.getProperty(propName).getValue()
+                                               .equals(prop1.getValue()))
+                                       return false;
+                       }
+                       return true;
+               } catch (RepositoryException e) {
+                       throw new ArgeoException("Cannot check all properties equals of "
+                                       + node1 + " and " + node2, e);
+               }
+       }
 }