Author: jonesde
Date: Thu Jul 2 06:43:50 2009
New Revision: 790472
URL: http://svn.apache.org/viewvc?rev=790472&view=rev
Log:
Added ability to specify an entity-condition as part of a view-
entity in order to encapsulate a full query definition in a view-
entity
Modified:
ofbiz/trunk/framework/entity/dtd/entitymodel.xsd
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/
GenericDelegator.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/
GenericDAO.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ByConditionFinder.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
EntityFinderUtil.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
Finder.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ListFinder.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelEntity.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelViewEntity.java
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/
entityops/EntityCount.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/
ModelFormField.java
Modified: ofbiz/trunk/framework/entity/dtd/entitymodel.xsd
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/dtd/entitymodel.xsd?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/dtd/entitymodel.xsd (original)
+++ ofbiz/trunk/framework/entity/dtd/entitymodel.xsd Thu Jul 2
06:43:50 2009
@@ -60,12 +60,12 @@
</xs:element>
<!-- see the children of entitymodel section for description,
etc. -->
<xs:attributeGroup name="attlist.entity">
- <xs:attribute type="xs:string" name="entity-name"
use="required"/>
- <xs:attribute type="xs:string" name="table-name"/>
- <xs:attribute type="xs:string" name="package-name"
use="required"/>
- <xs:attribute type="xs:string" name="default-resource-
name"/>
- <xs:attribute type="xs:string" name="dependent-on"/>
- <xs:attribute type="xs:string" name="sequence-bank-size"/>
+ <xs:attribute name="entity-name" type="xs:string"
use="required"/>
+ <xs:attribute name="table-name" type="xs:string"/>
+ <xs:attribute name="package-name" type="xs:string"
use="required"/>
+ <xs:attribute name="default-resource-name"
type="xs:string"/>
+ <xs:attribute name="dependent-on" type="xs:string"/>
+ <xs:attribute name="sequence-bank-size" type="xs:string"/>
<xs:attribute name="enable-lock" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -98,10 +98,10 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
- <xs:attribute type="xs:string" name="title"/>
- <xs:attribute type="xs:string" name="copyright"/>
- <xs:attribute type="xs:string" name="author"/>
- <xs:attribute type="xs:string" name="version"/>
+ <xs:attribute name="title" type="xs:string"/>
+ <xs:attribute name="copyright" type="xs:string"/>
+ <xs:attribute name="author" type="xs:string"/>
+ <xs:attribute name="version" type="xs:string"/>
</xs:attributeGroup>
<xs:element name="prim-key">
<xs:complexType>
@@ -109,7 +109,7 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.prim-key">
- <xs:attribute type="xs:string" name="field" use="required"/>
+ <xs:attribute name="field" type="xs:string" use="required"/>
</xs:attributeGroup>
<!-- ==================== field ===================== -->
<xs:element name="field">
@@ -122,9 +122,9 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.field">
- <xs:attribute type="xs:string" name="name" use="required"/>
- <xs:attribute type="xs:string" name="col-name"/>
- <xs:attribute type="xs:string" name="type" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="col-name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="encrypt" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -171,7 +171,7 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.validate">
- <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
</xs:attributeGroup>
<!-- ==================== relation ====================== -->
<!-- specifies whether or not the relation is a dependent one;
ie if the related entity can exist without the main entity -->
@@ -194,9 +194,9 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
- <xs:attribute type="xs:string" name="title"/>
- <xs:attribute type="xs:string" name="rel-entity-name"
use="required"/>
- <xs:attribute type="xs:string" name="fk-name"/>
+ <xs:attribute name="title" type="xs:string"/>
+ <xs:attribute name="rel-entity-name" type="xs:string"
use="required"/>
+ <xs:attribute name="fk-name" type="xs:string"/>
</xs:attributeGroup>
<xs:element name="key-map">
<xs:complexType>
@@ -204,8 +204,8 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.key-map">
- <xs:attribute type="xs:string" name="field-name"
use="required"/>
- <xs:attribute type="xs:string" name="rel-field-name"/>
+ <xs:attribute name="field-name" type="xs:string"
use="required"/>
+ <xs:attribute name="rel-field-name" type="xs:string"/>
</xs:attributeGroup>
<!-- ==================== index ===================== -->
<xs:element name="index">
@@ -218,7 +218,7 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.index">
- <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="unique" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -234,8 +234,9 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.index-field">
- <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
</xs:attributeGroup>
+ <!-- ================== view-entity =====================
-->
<xs:element name="view-entity">
<xs:complexType>
@@ -246,16 +247,17 @@
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="alias"/>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="view-link"/>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="relation"/>
+ <xs:element minOccurs="0" ref="entity-condition"/>
</xs:sequence>
<xs:attributeGroup ref="attlist.view-entity"/>
</xs:complexType>
</xs:element>
<!-- see the children of entitymodel section for description,
etc. -->
<xs:attributeGroup name="attlist.view-entity">
- <xs:attribute type="xs:string" name="entity-name"
use="required"/>
- <xs:attribute type="xs:string" name="package-name"
use="required"/>
- <xs:attribute type="xs:string" name="dependent-on"/>
- <xs:attribute type="xs:string" name="default-resource-
name"/>
+ <xs:attribute name="entity-name" type="xs:string"
use="required"/>
+ <xs:attribute name="package-name" type="xs:string"
use="required"/>
+ <xs:attribute name="dependent-on" type="xs:string"/>
+ <xs:attribute name="default-resource-name"
type="xs:string"/>
<xs:attribute name="never-cache" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -272,10 +274,10 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
- <xs:attribute type="xs:string" name="title"/>
- <xs:attribute type="xs:string" name="copyright"/>
- <xs:attribute type="xs:string" name="author"/>
- <xs:attribute type="xs:string" name="version"/>
+ <xs:attribute name="title" type="xs:string"/>
+ <xs:attribute name="copyright" type="xs:string"/>
+ <xs:attribute name="author" type="xs:string"/>
+ <xs:attribute name="version" type="xs:string"/>
</xs:attributeGroup>
<xs:element name="member-entity">
<xs:complexType>
@@ -286,8 +288,8 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.member-entity">
- <xs:attribute type="xs:string" name="entity-alias"
use="required"/>
- <xs:attribute type="xs:string" name="entity-name"
use="required"/>
+ <xs:attribute name="entity-alias" type="xs:string"
use="required"/>
+ <xs:attribute name="entity-name" type="xs:string"
use="required"/>
</xs:attributeGroup>
<xs:element name="alias-all">
<xs:complexType>
@@ -299,8 +301,8 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.alias-all">
- <xs:attribute type="xs:string" name="entity-alias"
use="required"/>
- <xs:attribute type="xs:string" name="prefix"/>
+ <xs:attribute name="entity-alias" type="xs:string"
use="required"/>
+ <xs:attribute name="prefix" type="xs:string"/>
<xs:attribute name="group-by" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -330,7 +332,7 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.exclude">
- <xs:attribute type="xs:string" name="field" use="required"/>
+ <xs:attribute name="field" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:element name="alias">
<xs:complexType>
@@ -342,11 +344,11 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.alias">
- <xs:attribute type="xs:string" name="entity-alias"/>
- <xs:attribute type="xs:string" name="name" use="required"/>
- <xs:attribute type="xs:string" name="field"/>
- <xs:attribute type="xs:string" name="col-alias"/>
- <xs:attribute type="xs:string" name="prim-key"/>
+ <xs:attribute name="entity-alias" type="xs:string"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="field" type="xs:string"/>
+ <xs:attribute name="col-alias" type="xs:string"/>
+ <xs:attribute name="prim-key" type="xs:string"/>
<xs:attribute name="group-by" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -393,7 +395,7 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.complex-alias">
- <xs:attribute type="xs:string" name="operator"
use="required"/>
+ <xs:attribute name="operator" type="xs:string"
use="required"/>
</xs:attributeGroup>
<xs:element name="complex-alias-field">
<xs:complexType>
@@ -401,9 +403,9 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.complex-alias-field">
- <xs:attribute type="xs:string" name="entity-alias"
use="required"/>
- <xs:attribute type="xs:string" name="field" use="required"/>
- <xs:attribute type="xs:string" name="default-value"/>
+ <xs:attribute name="entity-alias" type="xs:string"
use="required"/>
+ <xs:attribute name="field" type="xs:string" use="required"/>
+ <xs:attribute name="default-value" type="xs:string"/>
<xs:attribute name="function">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -429,8 +431,8 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.view-link">
- <xs:attribute type="xs:string" name="entity-alias"
use="required"/>
- <xs:attribute type="xs:string" name="rel-entity-alias"
use="required"/>
+ <xs:attribute name="entity-alias" type="xs:string"
use="required"/>
+ <xs:attribute name="rel-entity-alias" type="xs:string"
use="required"/>
<xs:attribute name="rel-optional" default="false">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -440,7 +442,155 @@
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
+ <xs:element name="entity-condition">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="condition-expr"/>
+ <xs:element ref="condition-list"/>
+ <xs:element ref="condition-object"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="having-condition-
list"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="order-by"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="attlist.entity-condition"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.entity-condition">
+ <xs:attribute name="filter-by-date" default="false">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="true"/>
+ <xs:enumeration value="false"/>
+ <xs:enumeration value="by-name"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="distinct" default="false">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="true"/>
+ <xs:enumeration value="false"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="condition-expr">
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.condition-expr"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.condition-expr">
+ <xs:attribute name="field-name" type="xs:string"
use="required"/>
+ <xs:attribute name="operator" default="equals">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="less"/>
+ <xs:enumeration value="greater"/>
+ <xs:enumeration value="less-equals"/>
+ <xs:enumeration value="greater-equals"/>
+ <xs:enumeration value="equals"/>
+ <xs:enumeration value="not-equals"/>
+ <xs:enumeration value="in"/>
+ <xs:enumeration value="between"/>
+ <xs:enumeration value="like"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="from-field" type="xs:string"/>
+ <xs:attribute name="value" type="xs:string"/>
+ <xs:attribute name="ignore-if-null" default="false">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="true"/>
+ <xs:enumeration value="false"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="ignore-if-empty" default="false">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="true"/>
+ <xs:enumeration value="false"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="ignore-case" default="false">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="true"/>
+ <xs:enumeration value="false"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="ignore" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ Ignore the condition if flag is true.
+ Defaults to false.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="condition-list">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="condition-expr"/>
+ <xs:element ref="condition-list"/>
+ <xs:element ref="condition-object"/>
+ </xs:choice>
+ <xs:attributeGroup ref="attlist.condition-list"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.condition-list">
+ <xs:attribute name="combine" default="and">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="and"/>
+ <xs:enumeration value="or"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="condition-object">
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.condition-object"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.condition-object">
+ <xs:attribute name="field" type="xs:string" use="required"/>
+ </xs:attributeGroup>
+ <xs:element name="having-condition-list">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="condition-expr"/>
+ <xs:element ref="condition-list"/>
+ <xs:element ref="condition-object"/>
+ </xs:choice>
+ <xs:attributeGroup ref="attlist.having-condition-list"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.having-condition-list">
+ <xs:attribute name="combine" default="and">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="and"/>
+ <xs:enumeration value="or"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="order-by">
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.order-by"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.order-by">
+ <xs:attribute name="field-name" type="xs:string"
use="required"/>
+ </xs:attributeGroup>
+ + <!-- ================== extend-entity
===================== -->
<xs:element name="extend-entity">
<xs:complexType>
<xs:sequence>
@@ -452,6 +602,6 @@
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.extend-entity">
- <xs:attribute type="xs:string" name="entity-name"
use="required"/>
+ <xs:attribute name="entity-name" type="xs:string"
use="required"/>
</xs:attributeGroup>
</xs:schema>
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/
GenericDelegator.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/
GenericDelegator.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/
GenericDelegator.java Thu Jul 2 06:43:50 2009
@@ -506,16 +506,19 @@
*...@return ModelFieldType instance for the named type from the
helper that corresponds to the specified entity
*/
public ModelFieldType getEntityFieldType(ModelEntity entity,
String type) throws GenericEntityException {
+ return
this.getModelFieldTypeReader(entity).getModelFieldType(type);
+ }
+ + public ModelFieldTypeReader
getModelFieldTypeReader(ModelEntity entity) {
String helperName = getEntityHelperName(entity);
-
- if (helperName == null || helperName.length() <= 0)
+ if (helperName == null || helperName.length() <= 0) {
return null;
+ }
ModelFieldTypeReader modelFieldTypeReader =
ModelFieldTypeReader.getModelFieldTypeReader(helperName);
-
if (modelFieldTypeReader == null) {
- throw new GenericEntityException("ModelFieldTypeReader
not found for entity " + entity.getEntityName() + " with helper
name " + helperName);
+ throw new
IllegalArgumentException("ModelFieldTypeReader not found for entity
" + entity.getEntityName() + " with helper name " + helperName);
}
- return modelFieldTypeReader.getModelFieldType(type);
+ return modelFieldTypeReader;
}
/** Gets field type names from the helper that corresponds to
the specified entity
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/
datasource/GenericDAO.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/
GenericDAO.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/
GenericDAO.java Thu Jul 2 06:43:50 2009
@@ -621,6 +621,11 @@
if (modelEntity == null) {
return null;
}
+ + ModelViewEntity modelViewEntity = null;
+ if (modelEntity instanceof ModelViewEntity) {
+ modelViewEntity = (ModelViewEntity) modelEntity;
+ }
// if no find options passed, use default
if (findOptions == null) findOptions = new
EntityFindOptions();
@@ -677,17 +682,30 @@
}
String viewClause =
SqlJdbcUtil.makeViewWhereClause(modelEntity,
datasourceInfo.joinStyle);
-
- if (viewClause.length() > 0) {
- if (entityCondWhereString.length() > 0) {
- whereString.append("(");
- whereString.append(entityCondWhereString);
- whereString.append(") AND ");
+ String viewEntityCondWhereString = null;
+ if (modelViewEntity != null &&
modelViewEntity.getByConditionFinder() != null) {
+ EntityCondition viewWhereEntityCondition =
modelViewEntity
.getByConditionFinder().getWhereEntityCondition(FastMap.<String,
Object>newInstance(), modelEntity, this.modelFieldTypeReader);
+ if (viewWhereEntityCondition != null) {
+ viewEntityCondWhereString =
viewWhereEntityCondition.makeWhereString(modelEntity,
whereEntityConditionParams, this.datasourceInfo);
}
+ }
- whereString.append(viewClause);
- } else {
+ if (entityCondWhereString.length() > 0) {
+ whereString.append("(");
whereString.append(entityCondWhereString);
+ whereString.append(")");
+ }
+ + if
(UtilValidate.isNotEmpty(viewEntityCondWhereString)) {
+ if (whereString.length() > 0) whereString.append(" AND
");
+ whereString.append("(");
+ whereString.append(viewEntityCondWhereString);
+ whereString.append(")");
+ }
+
+ if (viewClause.length() > 0) {
+ if (whereString.length() > 0) whereString.append(" AND
");
+ whereString.append(viewClause);
}
if (whereString.length() > 0) {
@@ -696,8 +714,7 @@
}
// GROUP BY clause for view-entity
- if (modelEntity instanceof ModelViewEntity) {
- ModelViewEntity modelViewEntity = (ModelViewEntity)
modelEntity;
+ if (modelViewEntity != null) {
String groupByString =
modelViewEntity
.colNameString(modelViewEntity.getGroupBysCopy(selectFields), ", ",
"", false);
if (UtilValidate.isNotEmpty(groupByString)) {
@@ -709,17 +726,51 @@
// HAVING clause
String entityCondHavingString = "";
List<EntityConditionParam> havingEntityConditionParams =
FastList.newInstance();
-
if (havingEntityCondition != null) {
entityCondHavingString =
havingEntityCondition.makeWhereString(modelEntity,
havingEntityConditionParams, this.datasourceInfo);
}
- if (entityCondHavingString.length() > 0) {
+ + String viewEntityCondHavingString = null;
+ if (modelViewEntity != null &&
modelViewEntity.getByConditionFinder() != null) {
+ EntityCondition viewHavingEntityCondition =
modelViewEntity
.getByConditionFinder().getHavingEntityCondition(FastMap.<String,
Object>newInstance(), modelEntity, this.modelFieldTypeReader);
+ if (viewHavingEntityCondition != null) {
+ viewEntityCondHavingString =
viewHavingEntityCondition.makeWhereString(modelEntity,
havingEntityConditionParams, this.datasourceInfo);
+ }
+ }
+
+ StringBuilder havingString = new StringBuilder();
+ if (UtilValidate.isNotEmpty(entityCondHavingString)) {
+ havingString.append("(");
+ havingString.append(entityCondHavingString);
+ havingString.append(")");
+ }
+ if (UtilValidate.isNotEmpty(viewEntityCondHavingString)) {
+ if (havingString.length() > 0) havingString.append("
AND ");
+ havingString.append("(");
+ havingString.append(viewEntityCondHavingString);
+ havingString.append(")");
+ }
+ + if (havingString.length() > 0) {
sqlBuffer.append(" HAVING ");
- sqlBuffer.append(entityCondHavingString);
+ sqlBuffer.append(havingString);
}
// ORDER BY clause
-
sqlBuffer.append(SqlJdbcUtil.makeOrderByClause(modelEntity,
orderBy, datasourceInfo));
+ List<String> orderByExpanded =
FastList.<String>newInstance();
+ // add the manually specified ones, then the ones in the
view entity's entity-condition
+ if (orderBy != null) {
+ orderByExpanded.addAll(orderBy);
+ }
+ if (modelViewEntity != null &&
modelViewEntity.getByConditionFinder() != null) {
+ List<String> viewOrderBy =
modelViewEntity
.getByConditionFinder().getOrderByFieldList(FastMap.<String,
Object>newInstance());
+ if (viewOrderBy != null && viewOrderBy.size() > 0) {
+ orderByExpanded.addAll(viewOrderBy);
+ }
+ }
+
sqlBuffer.append(SqlJdbcUtil.makeOrderByClause(modelEntity,
orderByExpanded, datasourceInfo));
+ + // make the final SQL String
String sql = sqlBuffer.toString();
SQLProcessor sqlP = new SQLProcessor(helperName);
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ByConditionFinder.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/ByConditionFinder.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ByConditionFinder.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ByConditionFinder.java Thu Jul 2 06:43:50 2009
@@ -21,21 +21,20 @@
import java.util.Map;
import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityConditionList;
-import org.ofbiz.entity.condition.EntityJoinOperator;
import org.ofbiz.entity.finder.EntityFinderUtil.Condition;
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionExpr;
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionList;
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionObject;
import org.ofbiz.entity.model.ModelEntity;
+import org.ofbiz.entity.model.ModelFieldTypeReader;
import org.w3c.dom.Element;
/**
* Uses the delegator to find entity values by a condition
*
*/
+...@suppresswarnings("serial")
public class ByConditionFinder extends ListFinder {
public static final String module =
ByConditionFinder.class.getName();
@@ -59,18 +58,18 @@
}
}
- protected EntityCondition getWhereEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, GenericDelegator
delegator) {
+ public EntityCondition getWhereEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, ModelFieldTypeReader
modelFieldTypeReader) {
// create whereEntityCondition from whereCondition
if (this.whereCondition != null) {
- return this.whereCondition.createCondition(context,
modelEntity.getEntityName(), delegator);
+ return this.whereCondition.createCondition(context,
modelEntity, modelFieldTypeReader);
}
return null;
}
- protected EntityCondition getHavingEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, GenericDelegator
delegator) {
+ public EntityCondition getHavingEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, ModelFieldTypeReader
modelFieldTypeReader) {
// create havingEntityCondition from havingCondition
if (this.havingCondition != null) {
- return this.havingCondition.createCondition(context,
modelEntity.getEntityName(), delegator);
+ return this.havingCondition.createCondition(context,
modelEntity, modelFieldTypeReader);
}
return null;
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
EntityFinderUtil.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
EntityFinderUtil.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
EntityFinderUtil.java Thu Jul 2 06:43:50 2009
@@ -18,11 +18,11 @@
*******************************************************************************/
package org.ofbiz.entity.finder;
+import static org.ofbiz.base.util.UtilGenerics.cast;
+
import java.io.Serializable;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -31,26 +31,22 @@
import javolution.util.FastMap;
import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.StringUtil;
import org.ofbiz.base.util.ObjectType;
-import static org.ofbiz.base.util.UtilGenerics.cast;
+import org.ofbiz.base.util.StringUtil;
import org.ofbiz.base.util.UtilFormatOut;
+import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
import org.ofbiz.base.util.collections.FlexibleMapAccessor;
import org.ofbiz.base.util.string.FlexibleStringExpander;
-import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.condition.EntityComparisonOperator;
import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityConditionList;
-import org.ofbiz.entity.condition.EntityExpr;
import org.ofbiz.entity.condition.EntityFunction;
import org.ofbiz.entity.condition.EntityJoinOperator;
import org.ofbiz.entity.condition.EntityOperator;
import org.ofbiz.entity.model.ModelEntity;
-import org.ofbiz.entity.model.ModelField;
+import org.ofbiz.entity.model.ModelFieldTypeReader;
import org.ofbiz.entity.util.EntityListIterator;
import org.w3c.dom.Element;
@@ -150,7 +146,7 @@
}
public static interface Condition extends Serializable {
- public EntityCondition createCondition(Map<String, ?
extends Object> context, String entityName, GenericDelegator
delegator);
+ public EntityCondition createCondition(Map<String, ?
extends Object> context, ModelEntity modelEntity,
ModelFieldTypeReader modelFieldTypeReader);
}
public static class ConditionExpr implements Condition {
protected FlexibleStringExpander fieldNameExdr;
@@ -182,12 +178,7 @@
this.ignoreExdr =
FlexibleStringExpander
.getInstance(conditionExprElement.getAttribute("ignore"));
}
- public EntityCondition createCondition(Map<String, ?
extends Object> context, String entityName, GenericDelegator
delegator) {
- ModelEntity modelEntity =
delegator.getModelEntity(entityName);
- if (modelEntity == null) {
- throw new IllegalArgumentException("Error in
Entity Find: could not find entity with name [" + entityName + "]");
- }
-
+ public EntityCondition createCondition(Map<String, ?
extends Object> context, ModelEntity modelEntity,
ModelFieldTypeReader modelFieldTypeReader) {
String fieldName = fieldNameExdr.expandString(context);
Object value = null;
@@ -221,14 +212,14 @@
}
if(modelEntity.getField(fieldName) ==
null) {
- throw new IllegalArgumentException("Error in
Entity Find: could not find field [" + fieldName + "] in entity
with name [" + entityName + "]");
+ throw new IllegalArgumentException("Error in
Entity Find: could not find field [" + fieldName + "] in entity
with name [" + modelEntity.getEntityName() + "]");
}
// don't convert the field to the desired type if this
is an IN or BETWEEN operator and we have a Collection
if (!((operator == EntityOperator.IN || operator ==
EntityOperator.BETWEEN)
&& value instanceof Collection)) {
// now to a type conversion for the target fieldName
- value =
modelEntity.convertFieldValue(modelEntity.getField(fieldName),
value, delegator, context);
+ value =
modelEntity.convertFieldValue(modelEntity.getField(fieldName),
value, modelFieldTypeReader, context);
}
if (Debug.verboseOn()) Debug.logVerbose("Got value for
fieldName [" + fieldName + "]: " + value, module);
@@ -290,18 +281,18 @@
}
}
- public EntityCondition createCondition(Map<String, ?
extends Object> context, String entityName, GenericDelegator
delegator) {
+ public EntityCondition createCondition(Map<String, ?
extends Object> context, ModelEntity modelEntity,
ModelFieldTypeReader modelFieldTypeReader) {
if (this.conditionList.size() == 0) {
return null;
}
if (this.conditionList.size() == 1) {
Condition condition = this.conditionList.get(0);
- return condition.createCondition(context,
entityName, delegator);
+ return condition.createCondition(context,
modelEntity, modelFieldTypeReader);
}
List<EntityCondition> entityConditionList = new
LinkedList<EntityCondition>();
for (Condition curCondition: conditionList) {
- EntityCondition econd =
curCondition.createCondition(context, entityName, delegator);
+ EntityCondition econd =
curCondition.createCondition(context, modelEntity,
modelFieldTypeReader);
if (econd != null) {
entityConditionList.add(econd);
}
@@ -327,7 +318,7 @@
}
}
- public EntityCondition createCondition(Map<String, ?
extends Object> context, String entityName, GenericDelegator
delegator) {
+ public EntityCondition createCondition(Map<String, ?
extends Object> context, ModelEntity modelEntity,
ModelFieldTypeReader modelFieldTypeReader) {
EntityCondition condition = (EntityCondition)
fieldNameAcsr.get(context);
return condition;
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
Finder.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/Finder.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
Finder.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
Finder.java Thu Jul 2 06:43:50 2009
@@ -26,6 +26,7 @@
import org.ofbiz.base.util.string.FlexibleStringExpander;
import org.ofbiz.entity.GenericDelegator;
+...@suppresswarnings("serial")
public abstract class Finder implements Serializable {
protected FlexibleStringExpander entityNameExdr;
protected FlexibleStringExpander useCacheStrExdr;
@@ -42,6 +43,10 @@
return entName;
}
+ public void setEntityName(String entityName) {
+ this.entityNameExdr =
FlexibleStringExpander.getInstance(entityName);
+ }
+
public abstract void runFind(Map<String, Object> context,
GenericDelegator delegator) throws GeneralException;
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ListFinder.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/ListFinder.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ListFinder.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/
ListFinder.java Thu Jul 2 06:43:50 2009
@@ -18,45 +18,42 @@
*******************************************************************************/
package org.ofbiz.entity.finder;
+import java.sql.ResultSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javolution.util.FastList;
-import javolution.util.FastMap;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.collections.FlexibleMapAccessor;
import org.ofbiz.base.util.string.FlexibleStringExpander;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityConditionList;
-import org.ofbiz.entity.condition.EntityJoinOperator;
import org.ofbiz.entity.finder.EntityFinderUtil.GetAll;
import org.ofbiz.entity.finder.EntityFinderUtil.LimitRange;
import org.ofbiz.entity.finder.EntityFinderUtil.LimitView;
import org.ofbiz.entity.finder.EntityFinderUtil.OutputHandler;
import org.ofbiz.entity.finder.EntityFinderUtil.UseIterator;
import org.ofbiz.entity.model.ModelEntity;
+import org.ofbiz.entity.model.ModelFieldTypeReader;
import org.ofbiz.entity.transaction.TransactionUtil;
import org.ofbiz.entity.util.EntityFindOptions;
import org.ofbiz.entity.util.EntityListIterator;
import org.ofbiz.entity.util.EntityUtil;
import org.w3c.dom.Element;
-import java.io.Serializable;
-import java.sql.ResultSet;
-
/**
* Uses the delegator to find entity values by a and
*
*/
+...@suppresswarnings("serial")
public abstract class ListFinder extends Finder {
public static final String module = ListFinder.class.getName();
@@ -141,8 +138,8 @@
delegator =
GenericDelegator.getGenericDelegator(delegatorName);
}
- EntityCondition whereEntityCondition =
getWhereEntityCondition(context, modelEntity, delegator);
- EntityCondition havingEntityCondition =
getHavingEntityCondition(context, modelEntity, delegator);
+ EntityCondition whereEntityCondition =
getWhereEntityCondition(context, modelEntity,
delegator.getModelFieldTypeReader(modelEntity));
+ EntityCondition havingEntityCondition =
getHavingEntityCondition(context, modelEntity,
delegator.getModelFieldTypeReader(modelEntity));
if (useCache) {
// if useCache == true && outputHandler instanceof
UseIterator, throw exception; not a valid combination
if (outputHandler instanceof UseIterator) {
@@ -224,12 +221,17 @@
throw new GeneralException(errMsg, e);
}
}
+ + public List<String> getOrderByFieldList(Map<String,
Object> context) {
+ List<String> orderByFields =
EntityFinderUtil.makeOrderByFieldList(this.orderByExpanderList,
context);
+ return orderByFields;
+ }
- protected EntityCondition getWhereEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, GenericDelegator
delegator) {
+ public EntityCondition getWhereEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, ModelFieldTypeReader
modelFieldTypeReader) {
return null;
}
- protected EntityCondition getHavingEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, GenericDelegator
delegator) {
+ public EntityCondition getHavingEntityCondition(Map<String,
Object> context, ModelEntity modelEntity, ModelFieldTypeReader
modelFieldTypeReader) {
return null;
}
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelEntity.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelEntity.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelEntity.java Thu Jul 2 06:43:50 2009
@@ -55,6 +55,7 @@
* Generic Entity - Entity model class
*
*/
+...@suppresswarnings("serial")
public class ModelEntity extends ModelInfo implements
Comparable<ModelEntity>, Serializable {
public static final String module = ModelEntity.class.getName();
@@ -1297,24 +1298,22 @@
/** Convert a field value from one Java data type to another.
This is the preferred method -
* which takes into consideration the user's locale and time
zone (for conversions that
* require them).
- * @param modelField
- * @param value
- * @param delegator
- * @param context
* @return the converted value
*/
public Object convertFieldValue(ModelField modelField, Object
value, GenericDelegator delegator, Map<String, ? extends Object>
context) {
+ ModelFieldTypeReader modelFieldTypeReader =
delegator.getModelFieldTypeReader(this);
+ return this.convertFieldValue(modelField, value,
modelFieldTypeReader, context);
+ }
+ /** Convert a field value from one Java data type to another.
This is the preferred method -
+ * which takes into consideration the user's locale and time
zone (for conversions that
+ * require them).
+ * @return the converted value
+ */
+ public Object convertFieldValue(ModelField modelField, Object
value, ModelFieldTypeReader modelFieldTypeReader, Map<String, ?
extends Object> context) {
if (value == null || value == GenericEntity.NULL_FIELD) {
return null;
}
- String fieldJavaType = null;
- try {
- fieldJavaType = delegator.getEntityFieldType(this,
modelField.getType()).getJavaType();
- } catch (GenericEntityException e) {
- String errMsg = "Could not convert field value: could
not find Java type for the field: [" + modelField.getName() + "] on
the [" + this.getEntityName() + "] entity: " + e.toString();
- Debug.logError(e, errMsg, module);
- throw new IllegalArgumentException(errMsg);
- }
+ String fieldJavaType =
modelFieldTypeReader
.getModelFieldType(modelField.getType()).getJavaType();
try {
return ObjectType.simpleTypeConvert(value,
fieldJavaType, null, (TimeZone) context.get("timeZone"), (Locale)
context.get("locale"), true);
} catch (GeneralException e) {
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelViewEntity.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelViewEntity.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/
ModelViewEntity.java Thu Jul 2 06:43:50 2009
@@ -33,8 +33,8 @@
import org.ofbiz.base.util.UtilTimer;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.entity.GenericEntity;
import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.finder.ByConditionFinder;
import org.ofbiz.entity.jdbc.SqlJdbcUtil;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -42,6 +42,7 @@
/**
* This class extends ModelEntity and provides additional
information appropriate to view entities
*/
+...@suppresswarnings("serial")
public class ModelViewEntity extends ModelEntity {
public static final String module =
ModelViewEntity.class.getName();
@@ -79,6 +80,8 @@
protected List<ModelField> groupBys = FastList.newInstance();
protected Map<String, Map<String, ModelConversion>>
conversions = FastMap.newInstance();
+ + protected ByConditionFinder byConditionFinder = null;
public ModelViewEntity(ModelReader reader, Element
entityElement, UtilTimer utilTimer, ModelInfo def) {
super(reader, entityElement, def);
@@ -118,6 +121,13 @@
if (utilTimer != null) utilTimer.timerString("
createModelEntity: before relations");
this.populateRelated(reader, entityElement);
+ + Element entityConditionElement =
UtilXml.firstChildElement(entityElement, "entity-condition");
+ if (entityConditionElement != null) {
+ this.byConditionFinder = new
ByConditionFinder(entityConditionElement);
+ // make sure the entity name is set since the XML for
this particular condition doesn't allow it
+ this.byConditionFinder.setEntityName(this.entityName);
+ }
// before finishing, make sure the table name is null,
this should help bring up errors early...
this.tableName = null;
@@ -266,6 +276,10 @@
public void addViewLink(ModelViewLink viewLink) {
this.viewLinks.add(viewLink);
}
+ + public ByConditionFinder getByConditionFinder() {
+ return this.byConditionFinder;
+ }
public String colNameString(String separator, String
afterLast, boolean alias, ModelField... flds) {
return colNameString(Arrays.asList(flds), separator,
afterLast, alias);
Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/
method/entityops/EntityCount.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/EntityCount.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/
entityops/EntityCount.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/
entityops/EntityCount.java Thu Jul 2 06:43:50 2009
@@ -32,6 +32,7 @@
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionExpr;
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionList;
import org.ofbiz.entity.finder.EntityFinderUtil.ConditionObject;
+import org.ofbiz.entity.model.ModelEntity;
import org.ofbiz.minilang.SimpleMethod;
import org.ofbiz.minilang.method.MethodContext;
import org.ofbiz.minilang.method.MethodOperation;
@@ -102,16 +103,18 @@
delegator =
GenericDelegator.getGenericDelegator(delegatorName);
}
+ ModelEntity modelEntity =
delegator.getModelEntity(entityName);
+ // create whereEntityCondition from
whereCondition
EntityCondition whereEntityCondition = null;
if (this.whereCondition != null) {
- whereEntityCondition =
this.whereCondition.createCondition(context, entityName, delegator);
+ whereEntityCondition =
this.whereCondition.createCondition(context, modelEntity,
delegator.getModelFieldTypeReader(modelEntity));
}
// create havingEntityCondition from havingCondition
EntityCondition havingEntityCondition = null;
if (this.havingCondition != null) {
- havingEntityCondition =
this.havingCondition.createCondition(context, entityName, delegator);
+ havingEntityCondition =
this.havingCondition.createCondition(context, modelEntity,
delegator.getModelFieldTypeReader(modelEntity));
}
long count =
delegator.findCountByCondition(entityName, whereEntityCondition,
havingEntityCondition, null);
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/
ModelFormField.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=790472&r1=790471&r2=790472&view=diff
=
=
=
=
=
=
=
=
=
=====================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/
ModelFormField.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/
ModelFormField.java Thu Jul 2 06:43:50 2009
@@ -1703,7 +1703,8 @@
if (UtilValidate.isNotEmpty(this.constraintList)) {
List<EntityCondition> expandedConditionList = new
LinkedList<EntityCondition>();
for (EntityFinderUtil.Condition condition:
constraintList) {
-
expandedConditionList.add(condition.createCondition(context,
this.entityName, delegator));
+ ModelEntity modelEntity =
delegator.getModelEntity(this.entityName);
+
expandedConditionList.add(condition.createCondition(context,
modelEntity, delegator.getModelFieldTypeReader(modelEntity)));
}
findCondition =
EntityCondition.makeCondition(expandedConditionList);
}