From: Mathieu Baudier Date: Wed, 19 Jan 2011 22:39:19 +0000 (+0000) Subject: Introduce compare properties X-Git-Tag: argeo-commons-2.1.30~1508 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=02693451a9af0a877ab97c59681fb2f32976155a;p=lgpl%2Fargeo-commons.git Introduce compare properties git-svn-id: https://svn.argeo.org/commons/trunk@4056 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java index 4bc30534a..707639526 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java @@ -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); + } + } }