svn commit: r1604972 - in /ofbiz/trunk/framework/entity/src/org/ofbiz/entity: condition/ test/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1604972 - in /ofbiz/trunk/framework/entity/src/org/ofbiz/entity: condition/ test/

doogie-3
Author: doogie
Date: Tue Jun 24 00:23:46 2014
New Revision: 1604972

URL: http://svn.apache.org/r1604972
Log:
Add EntityConditionValue.encryptConditionFields support to
EntityConditionValue.

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityCondition.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionSubSelect.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionValue.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFieldValue.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityCryptoTestSuite.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityCondition.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityCondition.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityCondition.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityCondition.java Tue Jun 24 00:23:46 2014
@@ -108,7 +108,7 @@ public abstract class EntityCondition ex
 
     @Override
     public String toString() {
-        return makeWhereString(null, new ArrayList<EntityConditionParam>(), null);
+        return makeWhereString(null, null, null);
     }
 
     public void accept(EntityConditionVisitor visitor) {

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionSubSelect.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionSubSelect.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionSubSelect.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionSubSelect.java Tue Jun 24 00:23:46 2014
@@ -117,6 +117,11 @@ public class EntityConditionSubSelect ex
         return new EntityConditionSubSelect(localModelEntity, keyFieldName, (whereCond != null ? whereCond.freeze() : null), requireAll);
     }
 
+    @Override
+    public void encryptConditionFields(ModelEntity modelEntity, Delegator delegator) {
+        whereCond.encryptConditionFields(modelEntity, delegator);
+    }
+
     public String getKeyFieldName() {
         return this.keyFieldName;
     }

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionValue.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionValue.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionValue.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityConditionValue.java Tue Jun 24 00:23:46 2014
@@ -60,6 +60,10 @@ public abstract class EntityConditionVal
         }
 
         @Override
+        public void encryptConditionFields(ModelEntity modelEntity, Delegator delegator) {
+        }
+
+        @Override
         public ModelField getModelField(ModelEntity modelEntity) {
             return null;
         }
@@ -102,6 +106,8 @@ public abstract class EntityConditionVal
 
     public abstract EntityConditionValue freeze();
 
+    public abstract void encryptConditionFields(ModelEntity modelEntity, Delegator delegator);
+
     public abstract void visit(EntityConditionVisitor visitor);
 
     public void accept(EntityConditionVisitor visitor) {
@@ -109,7 +115,7 @@ public abstract class EntityConditionVal
     }
 
     public void toString(StringBuilder sb) {
-        addSqlValue(sb, null, new ArrayList<EntityConditionParam>(), false, null);
+        addSqlValue(sb, null, null, false, null);
     }
 
     @Override

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java Tue Jun 24 00:23:46 2014
@@ -160,6 +160,7 @@ public class EntityExpr extends EntityCo
             return;
         }
         if (rhs instanceof EntityConditionValue) {
+            ((EntityConditionValue) rhs).encryptConditionFields(modelEntity, delegator);
             return;
         }
         ModelField modelField;

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFieldValue.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFieldValue.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFieldValue.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFieldValue.java Tue Jun 24 00:23:46 2014
@@ -194,4 +194,8 @@ public class EntityFieldValue extends En
     public EntityConditionValue freeze() {
         return this;
     }
+
+    @Override
+    public void encryptConditionFields(ModelEntity modelEntity, Delegator delegator) {
+    }
 }

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java Tue Jun 24 00:23:46 2014
@@ -63,7 +63,7 @@ public abstract class EntityFunction<T e
      * Length() entity function.
      *
      */
-    public static class LENGTH extends EntityFunction<Integer> {
+    public static class LENGTH extends EntityFunctionSingle<Integer> {
         public static Fetcher<Integer> FETCHER = new Fetcher<Integer>() {
             public Integer getValue(Object value) { return value.toString().length(); }
         };
@@ -77,7 +77,7 @@ public abstract class EntityFunction<T e
      * Trim() entity function.
      *
      */
-    public static class TRIM extends EntityFunction<String> {
+    public static class TRIM extends EntityFunctionSingle<String> {
         public static Fetcher<String> FETCHER = new Fetcher<String>() {
             public String getValue(Object value) { return value.toString().trim(); }
         };
@@ -91,7 +91,7 @@ public abstract class EntityFunction<T e
      * Upper() entity function.
      *
      */
-    public static class UPPER extends EntityFunction<String> {
+    public static class UPPER extends EntityFunctionSingle<String> {
         public static Fetcher<String> FETCHER = new Fetcher<String>() {
             public String getValue(Object value) { return value.toString().toUpperCase(); }
         };
@@ -105,7 +105,7 @@ public abstract class EntityFunction<T e
      * Lower() entity function.
      *
      */
-    public static class LOWER extends EntityFunction<String> {
+    public static class LOWER extends EntityFunctionSingle<String> {
         public static Fetcher<String> FETCHER = new Fetcher<String>() {
             public String getValue(Object value) { return value.toString().toLowerCase(); }
         };
@@ -115,6 +115,24 @@ public abstract class EntityFunction<T e
         }
     }
 
+    public static abstract class EntityFunctionSingle<T extends Comparable<?>> extends EntityFunction<T> {
+        protected EntityFunctionSingle(Fetcher<T> fetcher, SQLFunction function, Object value) {
+            super(fetcher, function, value);
+        }
+
+        public void encryptConditionFields(ModelEntity modelEntity, Delegator delegator) {
+        }
+    }
+
+    public static abstract class EntityFunctionNested<T extends Comparable<?>> extends EntityFunction<T> {
+        protected EntityFunctionNested(Fetcher<T> fetcher, SQLFunction function, EntityConditionValue nested) {
+            super(fetcher, function, nested);
+        }
+
+        public void encryptConditionFields(ModelEntity modelEntity, Delegator delegator) {
+        }
+    }
+
     protected final SQLFunction function;
     protected final EntityConditionValue nested;
     protected final Object value;
@@ -142,9 +160,9 @@ public abstract class EntityFunction<T e
     @Override
     public EntityConditionValue freeze() {
         if (nested != null) {
-            return new EntityFunction<T>(fetcher, function, nested.freeze()) {};
+            return new EntityFunctionNested<T>(fetcher, function, nested.freeze()) {};
         } else {
-            return new EntityFunction<T>(fetcher, function, value) {};
+            return new EntityFunctionSingle<T>(fetcher, function, value) {};
         }
     }
 

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityCryptoTestSuite.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityCryptoTestSuite.java?rev=1604972&r1=1604971&r2=1604972&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityCryptoTestSuite.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityCryptoTestSuite.java Tue Jun 24 00:23:46 2014
@@ -18,9 +18,12 @@
  *******************************************************************************/
 package org.ofbiz.entity.test;
 
+import java.util.List;
+
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityConditionSubSelect;
 import org.ofbiz.entity.condition.EntityOperator;
 import org.ofbiz.entity.testtools.EntityTestCase;
 
@@ -108,4 +111,51 @@ public class EntityCryptoTestSuite exten
         );
         assertEquals(1, delegator.findList("TestingCrypto", condition, null, null, null, false).size());
     }
+
+    protected EntityCondition makeSubSelectCondition(String nanoTime) {
+        return EntityCondition.makeCondition(
+            EntityCondition.makeCondition("testingCryptoTypeId", EntityOperator.IN, UtilMisc.toList("SUB_SELECT_1", "SUB_SELECT_3")),
+            EntityOperator.AND,
+            EntityCondition.makeCondition("encryptedValue", EntityOperator.EQUALS, nanoTime)
+        );
+    }
+
+    protected EntityConditionSubSelect makeSubSelect(String nanoTime) {
+        EntityCondition subCondition = makeSubSelectCondition(nanoTime);
+        return new EntityConditionSubSelect("TestingCrypto", "testingCryptoId", subCondition, true, delegator);
+    }
+
+    public void testCryptoSubSelect() throws Exception {
+        String nanoTime = "" + System.nanoTime();
+        EntityCondition condition;
+        List<GenericValue> results;
+
+        delegator.removeByAnd("TestingCrypto", UtilMisc.toMap("testingCryptoTypeId", "SUB_SELECT_1"));
+        delegator.removeByAnd("TestingCrypto", UtilMisc.toMap("testingCryptoTypeId", "SUB_SELECT_2"));
+        delegator.removeByAnd("TestingCrypto", UtilMisc.toMap("testingCryptoTypeId", "SUB_SELECT_3"));
+
+        delegator.create("TestingCrypto", UtilMisc.toMap("testingCryptoId", "SUB_1", "testingCryptoTypeId", "SUB_SELECT_1", "encryptedValue", nanoTime));
+        delegator.create("TestingCrypto", UtilMisc.toMap("testingCryptoId", "SUB_2", "testingCryptoTypeId", "SUB_SELECT_2", "encryptedValue", nanoTime));
+        delegator.create("TestingCrypto", UtilMisc.toMap("testingCryptoId", "SUB_3", "testingCryptoTypeId", "SUB_SELECT_3", "encryptedValue", "constant"));
+
+        results = delegator.findList("TestingCrypto", EntityCondition.makeCondition("encryptedValue", EntityOperator.EQUALS, nanoTime), null, UtilMisc.toList("testingCryptoId"), null, false);
+        assertEquals(2, results.size());
+        assertEquals("SUB_1", results.get(0).get("testingCryptoId"));
+        assertEquals("SUB_2", results.get(1).get("testingCryptoId"));
+
+        results = delegator.findList("TestingCrypto", EntityCondition.makeCondition("testingCryptoTypeId", EntityOperator.IN, UtilMisc.toList("SUB_SELECT_1", "SUB_SELECT_3")), null, UtilMisc.toList("testingCryptoId"), null, false);
+        assertEquals(2, results.size());
+        assertEquals("SUB_1", results.get(0).get("testingCryptoId"));
+        assertEquals("SUB_3", results.get(1).get("testingCryptoId"));
+
+        condition = makeSubSelectCondition(nanoTime);
+        results = delegator.findList("TestingCrypto", condition, null, UtilMisc.toList("testingCryptoId"), null, false);
+        assertEquals(1, results.size());
+        assertEquals("SUB_1", results.get(0).get("testingCryptoId"));
+
+        condition = EntityCondition.makeCondition("testingCryptoId", EntityOperator.EQUALS, makeSubSelect(nanoTime));
+        results = delegator.findList("TestingCrypto", condition, null, UtilMisc.toList("testingCryptoId"), null, false);
+        assertEquals(1, results.size());
+        assertEquals("SUB_1", results.get(0).get("testingCryptoId"));
+    }
 }