Author: lektran Date: Mon Mar 28 20:13:54 2016 New Revision: 1736922 URL: http://svn.apache.org/viewvc?rev=1736922&view=rev Log: Ensure a ModelField is set for rhs EntityConditionValues that don't already have it, such as the EntityFunction classes
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityComparisonOperator.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/EntityFieldValue.java ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityFunction.java Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityComparisonOperator.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityComparisonOperator.java?rev=1736922&r1=1736921&r2=1736922&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityComparisonOperator.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityComparisonOperator.java Mon Mar 28 20:13:54 2016 @@ -126,6 +126,9 @@ public abstract class EntityComparisonOp protected void makeRHSWhereStringValue(ModelEntity entity, List<EntityConditionParam> entityConditionParams, StringBuilder sql, ModelField field, R rhs, Datasource datasourceInfo) { if (rhs instanceof EntityConditionValue) { EntityConditionValue ecv = (EntityConditionValue) rhs; + if (ecv.getModelField(entity) == null) { + ecv.setModelField(field); + } ecv.addSqlValue(sql, entity, entityConditionParams, false, datasourceInfo); } else { addValue(sql, field, rhs, entityConditionParams); 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=1736922&r1=1736921&r2=1736922&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 Mon Mar 28 20:13:54 2016 @@ -132,6 +132,11 @@ public class EntityConditionSubSelect ex } @Override + public void setModelField(ModelField modelEntity) { + // do nothing for now + } + + @Override public Comparable<?> getValue(Delegator delegator, Map<String, ? extends Object> map) { // do nothing for now return null; 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=1736922&r1=1736921&r2=1736922&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 Mon Mar 28 20:13:54 2016 @@ -65,6 +65,11 @@ public abstract class EntityConditionVal } @Override + public void setModelField(ModelField field) { + // Do nothing; + } + + @Override public Object getValue(Delegator delegator, Map<String, ? extends Object> map) { return value; } @@ -81,6 +86,8 @@ public abstract class EntityConditionVal public abstract ModelField getModelField(ModelEntity modelEntity); + public abstract void setModelField(ModelField modelEntity); + public void addSqlValue(StringBuilder sql, ModelEntity modelEntity, List<EntityConditionParam> entityConditionParams, boolean includeTableNamePrefix, Datasource datasourceinfo) { addSqlValue(sql, emptyAliases, modelEntity, entityConditionParams, includeTableNamePrefix, datasourceinfo); 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=1736922&r1=1736921&r2=1736922&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 Mon Mar 28 20:13:54 2016 @@ -122,6 +122,12 @@ public class EntityFieldValue extends En return getField(modelEntity, fieldName); } + + @Override + public void setModelField(ModelField field) { + // do nothing + } + @Override public void addSqlValue(StringBuilder sql, Map<String, String> tableAliases, ModelEntity modelEntity, List<EntityConditionParam> entityConditionParams, boolean includeTableNamePrefix, Datasource datasourceInfo) { if (this.modelViewEntity != null) { 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=1736922&r1=1736921&r2=1736922&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 Mon Mar 28 20:13:54 2016 @@ -131,6 +131,7 @@ public abstract class EntityFunction<T e protected final EntityConditionValue nested; protected final Object value; protected final Fetcher<T> fetcher; + protected ModelField field; protected EntityFunction(Fetcher<T> fetcher, SQLFunction function, EntityConditionValue nested) { this.fetcher = fetcher; @@ -216,10 +217,15 @@ public abstract class EntityFunction<T e if (nested != null) { return nested.getModelField(modelEntity); } - return null; + return field; } @Override + public void setModelField(ModelField field) { + this.field = field; + } + + @Override public void validateSql(ModelEntity modelEntity) throws GenericModelException { if (nested != null) { nested.validateSql(modelEntity);