You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2013/03/27 16:24:19 UTC
svn commit: r1461646 -
/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java
Author: mduerig
Date: Wed Mar 27 15:24:18 2013
New Revision: 1461646
URL: http://svn.apache.org/r1461646
Log:
JCR-3550: Methods for determining type of array of values
Modified:
jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java
Modified: jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java?rev=1461646&r1=1461645&r2=1461646&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/ValueHelper.java Wed Mar 27 15:24:18 2013
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.value;
+import static javax.jcr.PropertyType.UNDEFINED;
+
import org.apache.jackrabbit.util.Base64;
import org.apache.jackrabbit.util.Text;
import org.apache.jackrabbit.util.TransientFileFactory;
@@ -818,4 +820,29 @@ public class ValueHelper {
return convert(value, type, factory);
}
}
+
+ /**
+ * Determine the {@link javax.jcr.PropertyType} of the passed values if all are of
+ * the same type.
+ *
+ * @param values array of values of the same type
+ * @return {@link javax.jcr.PropertyType#UNDEFINED} if {@code values} is empty,
+ * {@code values[0].getType()} otherwise.
+ * @throws javax.jcr.ValueFormatException if not all {@code values} are of the same type
+ */
+ public static int getType(Value[] values) throws ValueFormatException {
+ int type = UNDEFINED;
+ for (Value value : values) {
+ if (value != null) {
+ if (type == UNDEFINED) {
+ type = value.getType();
+ } else if (value.getType() != type) {
+ throw new ValueFormatException(
+ "All values of a multi-valued property must be of the same type");
+ }
+ }
+ }
+ return type;
+ }
+
}