You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Adam Heath <do...@brainfood.com> on 2010/02/04 23:56:02 UTC

Re: svn commit: r906709 - /ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java

jaz@apache.org wrote:
> Author: jaz
> Date: Thu Feb  4 22:52:22 2010
> New Revision: 906709
> 
> URL: http://svn.apache.org/viewvc?rev=906709&view=rev
> Log:
> implemented not-contains and not-like operators in the generic performFind service
> 
> Modified:
>     ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java
> 
> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java?rev=906709&r1=906708&r2=906709&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java (original)
> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/FindServices.java Thu Feb  4 22:52:22 2010
> @@ -78,6 +78,7 @@
>          entityOperators.put("lessThan", EntityOperator.LESS_THAN);
>          entityOperators.put("lessThanEqualTo", EntityOperator.LESS_THAN_EQUAL_TO);
>          entityOperators.put("like", EntityOperator.LIKE);
> +        entityOperators.put("notLike", EntityOperator.NOT_LIKE);
>          entityOperators.put("not", EntityOperator.NOT);
>          entityOperators.put("notEqual", EntityOperator.NOT_EQUAL);
>      }
> @@ -238,6 +239,8 @@
>              if (opString != null) {
>                  if (opString.equals("contains")) {
>                      fieldOp = EntityOperator.LIKE;
> +                } else if (opString.equals("not-contains")) {
> +                    fieldOp = EntityOperator.NOT_LIKE;
>                  } else if (opString.equals("empty")) {
>                      fieldOp = EntityOperator.EQUALS;
>                  } else {
> @@ -251,11 +254,14 @@
>              if (fieldValue == null) {
>                  continue;
>              }
> -
> +            
>              if (opString != null) {
>                  if (opString.equals("contains")) {
>                      fieldOp = EntityOperator.LIKE;
>                      fieldValue = "%" + fieldValue + "%";
> +                } else if ("not-contains".equals(opString) || "notContains".equals(opString)) {
> +                    fieldOp = EntityOperator.NOT_LIKE;
> +                    fieldValue = "%" + fieldValue + "%";
>                  } else if (opString.equals("empty")) {
>                      fieldOp = EntityOperator.EQUALS;
>                      fieldValue = null;
> @@ -263,6 +269,9 @@
>                  } else if (opString.equals("like")) {
>                      fieldOp = EntityOperator.LIKE;
>                      fieldValue = fieldValue + "%";
> +                } else if ("not-like".equals(opString) || "notLike".equals(opString)) {
> +                    fieldOp = EntityOperator.NOT_LIKE;
> +                    fieldValue = fieldValue + "%";
>                  } else if (opString.equals("greaterThanFromDayStart")) {
>                      fieldValue = dayStart((String) fieldValue, 0);
>                      fieldOp = EntityOperator.GREATER_THAN;
> @@ -326,6 +335,8 @@
>              if (opString != null) {
>                  if (opString.equals("contains")) {
>                      fieldOp = EntityOperator.LIKE;
> +                } else if ("not-contains".equals(opString) || "notContains".equals(opString)) {
> +                    fieldOp = EntityOperator.LIKE;
>                  } else if (opString.equals("empty")) {
>                      fieldOp = EntityOperator.EQUALS;
>                  } else {
> @@ -339,9 +350,9 @@
>              if (fieldValue == null) {
>                  continue;
>              }
> -            if (opString.equals("like")) {
> +            if ("like".equals(opString) || "not-like".equals(opString) || "notLike".equals(opString)) {
>                  fieldValue = fieldValue + "%";
> -            } else if (opString.equals("contains")) {
> +            } else if ("contains".equals(opString) || "not-contains".equals(opString) || "notContains".equals(opString)) {
>                  fieldValue = fieldValue + "%" + fieldValue + "%";

Is this actually correct?  Won't that mean that the match has to
*start* with fieldValue, *and* have to have a second copy of
fieldValue somewhere later in the match?

>              } else if (opString.equals("empty")) {
>                  fieldOp = EntityOperator.EQUALS;
> 
>