Posted by
jonesde on
Oct 30, 2006; 2:45am
URL: http://ofbiz.116.s1.nabble.com/svn-commit-r469046-in-incubator-ofbiz-trunk-framework-entity-src-org-ofbiz-entity-finder-EntityFinded-tp209509.html
Author: jonesde
Date: Sun Oct 29 18:45:34 2006
New Revision: 469046
URL:
http://svn.apache.org/viewvc?view=rev&rev=469046Log:
Added option to condition-expr to ignore-case, makes things lots easier when you need something like that
Modified:
incubator/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java
incubator/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd
incubator/ofbiz/trunk/framework/widget/dtd/widget-form.xsd
incubator/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd
incubator/ofbiz/trunk/framework/widget/dtd/widget-tree.xsd
Modified: incubator/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java
URL:
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java?view=diff&rev=469046&r1=469045&r2=469046==============================================================================
--- incubator/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java (original)
+++ incubator/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java Sun Oct 29 18:45:34 2006
@@ -157,6 +157,7 @@
protected FlexibleStringExpander valueExdr;
protected boolean ignoreIfNull;
protected boolean ignoreIfEmpty;
+ protected boolean ignoreCase;
public ConditionExpr(Element conditionExprElement) {
this.fieldNameExdr = new FlexibleStringExpander(conditionExprElement.getAttribute("field-name"));
@@ -170,6 +171,7 @@
this.valueExdr = new FlexibleStringExpander(conditionExprElement.getAttribute("value"));
this.ignoreIfNull = "true".equals(conditionExprElement.getAttribute("ignore-if-null"));
this.ignoreIfEmpty = "true".equals(conditionExprElement.getAttribute("ignore-if-empty"));
+ this.ignoreCase = "true".equals(conditionExprElement.getAttribute("ignore-case"));
}
public EntityCondition createCondition(Map context, String entityName, GenericDelegator delegator) {
@@ -227,15 +229,28 @@
if (operator == EntityOperator.NOT_EQUAL && value != null) {
// since some databases don't consider nulls in != comparisons, explicitly include them
// this makes more sense logically, but if anyone ever needs it to not behave this way we should add an "or-null" attribute that is true by default
- return new EntityExpr(
- new EntityExpr(fieldName, (EntityComparisonOperator) operator, value),
- EntityOperator.OR,
- new EntityExpr(fieldName, EntityOperator.EQUALS, null));
+ if (ignoreCase) {
+ return new EntityExpr(
+ new EntityExpr(fieldName, true, (EntityComparisonOperator) operator, value, true),
+ EntityOperator.OR,
+ new EntityExpr(fieldName, EntityOperator.EQUALS, null));
+ } else {
+ return new EntityExpr(
+ new EntityExpr(fieldName, (EntityComparisonOperator) operator, value),
+ EntityOperator.OR,
+ new EntityExpr(fieldName, EntityOperator.EQUALS, null));
+ }
} else {
- return new EntityExpr(fieldName, (EntityComparisonOperator) operator, value);
+ if (ignoreCase) {
+ // use the stuff to upper case both sides
+ return new EntityExpr(fieldName, true, (EntityComparisonOperator) operator, value, true);
+ } else {
+ return new EntityExpr(fieldName, (EntityComparisonOperator) operator, value);
+ }
}
}
}
+
public static class ConditionList implements Condition {
List conditionList = new LinkedList();
FlexibleStringExpander combineExdr;
Modified: incubator/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd
URL:
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd?view=diff&rev=469046&r1=469045&r2=469046==============================================================================
--- incubator/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd (original)
+++ incubator/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd Sun Oct 29 18:45:34 2006
@@ -952,6 +952,14 @@
</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:attributeGroup>
<xs:element name="condition-object">
<xs:complexType>
Modified: incubator/ofbiz/trunk/framework/widget/dtd/widget-form.xsd
URL:
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?view=diff&rev=469046&r1=469045&r2=469046==============================================================================
--- incubator/ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
+++ incubator/ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sun Oct 29 18:45:34 2006
@@ -1231,6 +1231,14 @@
</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:attributeGroup>
<xs:element name="condition-list">
<xs:complexType>
Modified: incubator/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd
URL:
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd?view=diff&rev=469046&r1=469045&r2=469046==============================================================================
--- incubator/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd (original)
+++ incubator/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd Sun Oct 29 18:45:34 2006
@@ -629,6 +629,14 @@
</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:attributeGroup>
<xs:element name="condition-object">
<xs:complexType>
Modified: incubator/ofbiz/trunk/framework/widget/dtd/widget-tree.xsd
URL:
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/widget/dtd/widget-tree.xsd?view=diff&rev=469046&r1=469045&r2=469046==============================================================================
--- incubator/ofbiz/trunk/framework/widget/dtd/widget-tree.xsd (original)
+++ incubator/ofbiz/trunk/framework/widget/dtd/widget-tree.xsd Sun Oct 29 18:45:34 2006
@@ -485,6 +485,22 @@
</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:attributeGroup>
<!-- ================ CONDITIONS ================ -->