Introduce compare properties
[lgpl/argeo-commons.git] / 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);
+               }
+       }
 }