Author: angela
Date: Wed Jun  7 14:08:50 2017
New Revision: 1797929

URL: http://svn.apache.org/viewvc?rev=1797929&view=rev
Log:
OAK-6311 : Move generic part of PropertyStateValue and PropertyValues to 
oak-store-spi (cleanup oversight wrt canConvert and fix indention)

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java
    
jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java?rev=1797929&r1=1797928&r2=1797929&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ValueConverter.java
 Wed Jun  7 14:08:50 2017
@@ -36,6 +36,47 @@ public class ValueConverter {
 
     private ValueConverter() {}
 
+    public static boolean canConvert(int sourceType, int targetType) {
+        if (sourceType == targetType ||
+                sourceType == PropertyType.UNDEFINED ||
+                targetType == PropertyType.UNDEFINED) {
+            return true;
+        }
+        switch (targetType) {
+            case PropertyType.BINARY:
+            case PropertyType.BOOLEAN:
+            case PropertyType.DATE:
+            case PropertyType.DOUBLE:
+            case PropertyType.LONG:
+            case PropertyType.DECIMAL:
+            case PropertyType.STRING:
+                return true;
+            case PropertyType.NAME:
+            case PropertyType.PATH:
+            case PropertyType.URI:
+                switch (sourceType) {
+                    case PropertyType.NAME:
+                    case PropertyType.PATH:
+                    case PropertyType.URI:
+                        return true;
+                }
+                break;
+            case PropertyType.REFERENCE:
+            case PropertyType.WEAKREFERENCE:
+                switch (sourceType) {
+                    case PropertyType.REFERENCE:
+                    case PropertyType.WEAKREFERENCE:
+                        return true;
+                }
+                break;
+        }
+        if (sourceType == PropertyType.STRING ||
+                sourceType == PropertyType.BINARY) {
+            return true;
+        }
+        return false;
+    }
+
     /**
      * Converts the given value to a value of the specified target type. The
      * conversion is performed according to the rules described in
@@ -53,95 +94,95 @@ public class ValueConverter {
             return value;
         }
         switch (targetType) {
-        case PropertyType.BINARY:
-            Blob blob = value.getValue(Type.BINARY);
-            return PropertyValues.newBinary(blob);
-        case PropertyType.BOOLEAN:
-            return PropertyValues.newBoolean(value.getValue(Type.BOOLEAN));
-        case PropertyType.DATE:
-            return PropertyValues.newDate(value.getValue(Type.DATE));
-        case PropertyType.DOUBLE:
-            return PropertyValues.newDouble(value.getValue(Type.DOUBLE));
-        case PropertyType.LONG:
-            return PropertyValues.newLong(value.getValue(Type.LONG));
-        case PropertyType.DECIMAL:
-            return PropertyValues.newDecimal(value.getValue(Type.DECIMAL));
+            case PropertyType.BINARY:
+                Blob blob = value.getValue(Type.BINARY);
+                return PropertyValues.newBinary(blob);
+            case PropertyType.BOOLEAN:
+                return PropertyValues.newBoolean(value.getValue(Type.BOOLEAN));
+            case PropertyType.DATE:
+                return PropertyValues.newDate(value.getValue(Type.DATE));
+            case PropertyType.DOUBLE:
+                return PropertyValues.newDouble(value.getValue(Type.DOUBLE));
+            case PropertyType.LONG:
+                return PropertyValues.newLong(value.getValue(Type.LONG));
+            case PropertyType.DECIMAL:
+                return PropertyValues.newDecimal(value.getValue(Type.DECIMAL));
         }
         // for other types, the value is first converted to a string
         String v = value.getValue(Type.STRING);
         switch (targetType) {
-        case PropertyType.STRING:
-            return PropertyValues.newString(v);
-        case PropertyType.PATH:
-            switch (sourceType) {
-            case PropertyType.BINARY:
-            case PropertyType.STRING:
-            case PropertyType.NAME:
-                return PropertyValues.newPath(v);
-            case PropertyType.URI:
-                URI uri = URI.create(v);
-                if (uri.isAbsolute()) {
-                    // uri contains scheme
-                    throw new IllegalArgumentException(
-                            "Failed to convert URI " + v + " to PATH");
-                }
-                String p = uri.getPath();
-                if (p.startsWith("./")) {
-                    p = p.substring(2);
-                }
-                return PropertyValues.newPath(v);
-            }
-            break;
-        case PropertyType.NAME:
-            switch (sourceType) {
-            case PropertyType.BINARY:
             case PropertyType.STRING:
+                return PropertyValues.newString(v);
             case PropertyType.PATH:
-                // path might be a name (relative path of length 1)
-                // try conversion via string
-                return PropertyValues.newName(getOakPath(v, mapper));
-            case PropertyType.URI:
-                URI uri = URI.create(v);
-                if (uri.isAbsolute()) {
-                    // uri contains scheme
-                    throw new IllegalArgumentException(
-                            "Failed to convert URI " + v + " to PATH");
-                }
-                String p = uri.getPath();
-                if (p.startsWith("./")) {
-                    p = p.substring(2);
-                }
-                return PropertyValues.newName(getOakPath(v, mapper));
-            }
-            break;
-        case PropertyType.REFERENCE:
-            switch (sourceType) {
-            case PropertyType.BINARY:
-            case PropertyType.STRING:
-            case PropertyType.WEAKREFERENCE:
-                return PropertyValues.newReference(v);
-            }
-            break;
-        case PropertyType.WEAKREFERENCE:
-            switch (sourceType) {
-            case PropertyType.BINARY:
-            case PropertyType.STRING:
-            case PropertyType.REFERENCE:
-                return PropertyValues.newWeakReference(v);
-            }
-            break;
-        case PropertyType.URI:
-            switch (sourceType) {
-            case PropertyType.BINARY:
-            case PropertyType.STRING:
-                return PropertyValues.newUri(v);
+                switch (sourceType) {
+                    case PropertyType.BINARY:
+                    case PropertyType.STRING:
+                    case PropertyType.NAME:
+                        return PropertyValues.newPath(v);
+                    case PropertyType.URI:
+                        URI uri = URI.create(v);
+                        if (uri.isAbsolute()) {
+                            // uri contains scheme
+                            throw new IllegalArgumentException(
+                                    "Failed to convert URI " + v + " to PATH");
+                        }
+                        String p = uri.getPath();
+                        if (p.startsWith("./")) {
+                            p = p.substring(2);
+                        }
+                        return PropertyValues.newPath(v);
+                }
+                break;
             case PropertyType.NAME:
-                // prefix name with "./" (JCR 2.0 spec 3.6.4.8)
-                return PropertyValues.newUri("./" + v);
-            case PropertyType.PATH:
-                // prefix name with "./" (JCR 2.0 spec 3.6.4.9)
-                return PropertyValues.newUri("./" + v);
-            }
+                switch (sourceType) {
+                    case PropertyType.BINARY:
+                    case PropertyType.STRING:
+                    case PropertyType.PATH:
+                        // path might be a name (relative path of length 1)
+                        // try conversion via string
+                        return PropertyValues.newName(getOakPath(v, mapper));
+                    case PropertyType.URI:
+                        URI uri = URI.create(v);
+                        if (uri.isAbsolute()) {
+                            // uri contains scheme
+                            throw new IllegalArgumentException(
+                                    "Failed to convert URI " + v + " to PATH");
+                        }
+                        String p = uri.getPath();
+                        if (p.startsWith("./")) {
+                            p = p.substring(2);
+                        }
+                        return PropertyValues.newName(getOakPath(v, mapper));
+                }
+                break;
+            case PropertyType.REFERENCE:
+                switch (sourceType) {
+                    case PropertyType.BINARY:
+                    case PropertyType.STRING:
+                    case PropertyType.WEAKREFERENCE:
+                        return PropertyValues.newReference(v);
+                }
+                break;
+            case PropertyType.WEAKREFERENCE:
+                switch (sourceType) {
+                    case PropertyType.BINARY:
+                    case PropertyType.STRING:
+                    case PropertyType.REFERENCE:
+                        return PropertyValues.newWeakReference(v);
+                }
+                break;
+            case PropertyType.URI:
+                switch (sourceType) {
+                    case PropertyType.BINARY:
+                    case PropertyType.STRING:
+                        return PropertyValues.newUri(v);
+                    case PropertyType.NAME:
+                        // prefix name with "./" (JCR 2.0 spec 3.6.4.8)
+                        return PropertyValues.newUri("./" + v);
+                    case PropertyType.PATH:
+                        // prefix name with "./" (JCR 2.0 spec 3.6.4.9)
+                        return PropertyValues.newUri("./" + v);
+                }
         }
         throw new IllegalArgumentException(
                 "Unsupported conversion from property type " +

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java?rev=1797929&r1=1797928&r2=1797929&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java
 Wed Jun  7 14:08:50 2017
@@ -144,8 +144,8 @@ public class ComparisonImpl extends Cons
     @Override
     public void restrict(FilterImpl f) {
         PropertyValue v = operand2.currentValue();
-        if (!PropertyValues.canConvert(
-                operand2.getPropertyType(), 
+        if (!ValueConverter.canConvert(
+                operand2.getPropertyType(),
                 operand1.getPropertyType())) {
             throw new IllegalArgumentException(
                     "Unsupported conversion from property type " + 

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java?rev=1797929&r1=1797928&r2=1797929&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/InImpl.java
 Wed Jun  7 14:08:50 2017
@@ -29,6 +29,7 @@ import java.util.Set;
 import javax.jcr.PropertyType;
 
 import org.apache.jackrabbit.oak.api.PropertyValue;
+import org.apache.jackrabbit.oak.query.ValueConverter;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
 
@@ -133,8 +134,8 @@ public class InImpl extends ConstraintIm
     public void restrict(FilterImpl f) {
         ArrayList<PropertyValue> list = new ArrayList<PropertyValue>();
         for (StaticOperandImpl s : operand2) {
-            if (!PropertyValues.canConvert(
-                    s.getPropertyType(), 
+            if (!ValueConverter.canConvert(
+                    s.getPropertyType(),
                     operand1.getPropertyType())) {
                 throw new IllegalArgumentException(
                         "Unsupported conversion from property type " + 

Modified: 
jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java?rev=1797929&r1=1797928&r2=1797929&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyValues.java
 Wed Jun  7 14:08:50 2017
@@ -227,45 +227,4 @@ public final class PropertyValues {
 
     // --
 
-    public static boolean canConvert(int sourceType, int targetType) {
-        if (sourceType == targetType || 
-                sourceType == PropertyType.UNDEFINED ||
-                targetType == PropertyType.UNDEFINED) {
-            return true;
-        }
-        switch (targetType) {
-        case PropertyType.BINARY:
-        case PropertyType.BOOLEAN:
-        case PropertyType.DATE:
-        case PropertyType.DOUBLE:
-        case PropertyType.LONG:
-        case PropertyType.DECIMAL:
-        case PropertyType.STRING:
-            return true;
-        case PropertyType.NAME: 
-        case PropertyType.PATH:
-        case PropertyType.URI:
-            switch (sourceType) {
-            case PropertyType.NAME:
-            case PropertyType.PATH:
-            case PropertyType.URI:
-                return true;
-            }
-            break;
-        case PropertyType.REFERENCE:
-        case PropertyType.WEAKREFERENCE:
-            switch (sourceType) {
-            case PropertyType.REFERENCE:
-            case PropertyType.WEAKREFERENCE:
-                return true;
-            }
-            break;
-        }        
-        if (sourceType == PropertyType.STRING || 
-                sourceType == PropertyType.BINARY) {
-            return true;
-        }
-        return false;
-    }
-
 }


Reply via email to