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;
>
>