You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/12/10 11:54:20 UTC
svn commit: r1419334 - in /cxf/branches/2.6.x-fixes: ./
rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/
rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/
rt/rs/extensions/search/src/main/java/org/apach...
Author: sergeyb
Date: Mon Dec 10 10:54:19 2012
New Revision: 1419334
URL: http://svn.apache.org/viewvc?rev=1419334&view=rev
Log:
Merged revisions 1419330 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1419330 | sergeyb | 2012-12-10 10:44:37 +0000 (Mon, 10 Dec 2012) | 1 line
Adding comparesTo method to search builder - can make it simpler to capture the ui-level selections, etc
........
Modified:
cxf/branches/2.6.x-fixes/ (props changed)
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ConditionType.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/Property.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/SearchConditionBuilder.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParser.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilderTest.java
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1419330
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ConditionType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ConditionType.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ConditionType.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ConditionType.java Mon Dec 10 10:54:19 2012
@@ -31,6 +31,5 @@ public enum ConditionType {
LESS_OR_EQUALS,
GREATER_OR_EQUALS,
OR,
- AND,
- CUSTOM
+ AND
}
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java Mon Dec 10 10:54:19 2012
@@ -25,6 +25,7 @@ import java.util.Map;
import javax.xml.datatype.Duration;
+import org.apache.cxf.jaxrs.ext.search.ConditionType;
import org.apache.cxf.jaxrs.ext.search.SearchUtils;
import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
@@ -129,6 +130,36 @@ public class FiqlSearchConditionBuilder
return condition(FiqlParser.LT, toString(date));
}
+ public CompleteCondition comparesTo(ConditionType type, String value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
+ public CompleteCondition comparesTo(ConditionType type, Double value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
+ public CompleteCondition comparesTo(ConditionType type, Integer value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
+ public CompleteCondition comparesTo(ConditionType type, Long value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
+ public CompleteCondition comparesTo(ConditionType type, Date value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
+ public CompleteCondition comparesTo(ConditionType type, Duration value) {
+
+ return condition(toFiqlPrimitiveCondition(type), value);
+ }
+
public CompleteCondition equalTo(String value, String...moreValues) {
return condition(FiqlParser.EQ, value, (Object[])moreValues);
}
@@ -154,35 +185,51 @@ public class FiqlSearchConditionBuilder
}
- public CompleteCondition greaterOrEqualTo(double number) {
+ public CompleteCondition greaterOrEqualTo(Double number) {
+ return condition(FiqlParser.GE, number);
+ }
+
+ public CompleteCondition greaterOrEqualTo(Long number) {
return condition(FiqlParser.GE, number);
}
- public CompleteCondition greaterOrEqualTo(long number) {
+ public CompleteCondition greaterOrEqualTo(Integer number) {
return condition(FiqlParser.GE, number);
}
- public CompleteCondition greaterThan(double number) {
+ public CompleteCondition greaterThan(Double number) {
return condition(FiqlParser.GT, number);
}
- public CompleteCondition greaterThan(long number) {
+ public CompleteCondition greaterThan(Long number) {
+ return condition(FiqlParser.GT, number);
+ }
+
+ public CompleteCondition greaterThan(Integer number) {
return condition(FiqlParser.GT, number);
}
- public CompleteCondition lessOrEqualTo(double number) {
+ public CompleteCondition lessOrEqualTo(Double number) {
+ return condition(FiqlParser.LE, number);
+ }
+
+ public CompleteCondition lessOrEqualTo(Long number) {
return condition(FiqlParser.LE, number);
}
- public CompleteCondition lessOrEqualTo(long number) {
+ public CompleteCondition lessOrEqualTo(Integer number) {
return condition(FiqlParser.LE, number);
}
- public CompleteCondition lessThan(double number) {
+ public CompleteCondition lessThan(Double number) {
return condition(FiqlParser.LT, number);
}
- public CompleteCondition lessThan(long number) {
+ public CompleteCondition lessThan(Long number) {
+ return condition(FiqlParser.LT, number);
+ }
+
+ public CompleteCondition lessThan(Integer number) {
return condition(FiqlParser.LT, number);
}
@@ -214,11 +261,15 @@ public class FiqlSearchConditionBuilder
return condition(FiqlParser.NEQ, literalOrPattern);
}
- public CompleteCondition notEqualTo(double number) {
+ public CompleteCondition notEqualTo(Double number) {
+ return condition(FiqlParser.NEQ, number);
+ }
+
+ public CompleteCondition notEqualTo(Long number) {
return condition(FiqlParser.NEQ, number);
}
- public CompleteCondition notEqualTo(long number) {
+ public CompleteCondition notEqualTo(Integer number) {
return condition(FiqlParser.NEQ, number);
}
@@ -345,6 +396,14 @@ public class FiqlSearchConditionBuilder
return value.toString();
}
}
+
+ private String toFiqlPrimitiveCondition(ConditionType type) {
+ String fiqlType = FiqlParser.CONDITION_MAP.get(type);
+ if (fiqlType == null) {
+ throw new IllegalArgumentException("Only primitive condition types are supported");
+ }
+ return fiqlType;
+ }
}
}
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/Property.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/Property.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/Property.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/Property.java Mon Dec 10 10:54:19 2012
@@ -22,10 +22,13 @@ import java.util.Date;
import javax.xml.datatype.Duration;
+import org.apache.cxf.jaxrs.ext.search.ConditionType;
+
/**
* Part of fluent interface of {@link SearchConditionBuilder}.
*/
public interface Property {
+
/** Is textual property equal to given literal or matching given pattern? */
CompleteCondition equalTo(String value, String ...moreValues);
@@ -43,15 +46,18 @@ public interface Property {
/** Is date property same as date distant from now by given period of time? */
CompleteCondition equalTo(Duration distanceFromNow, Duration... moreValues);
-
+
/** Is textual property different than given literal or not matching given pattern? */
CompleteCondition notEqualTo(String literalOrPattern);
/** Is numeric property different than given double number? */
- CompleteCondition notEqualTo(double number);
+ CompleteCondition notEqualTo(Double number);
/** Is numeric property different than given long number? */
- CompleteCondition notEqualTo(long number);
+ CompleteCondition notEqualTo(Long number);
+
+ /** Is numeric property different than given int number? */
+ CompleteCondition notEqualTo(Integer number);
/** Is date property different than given date? */
CompleteCondition notEqualTo(Date date);
@@ -60,29 +66,41 @@ public interface Property {
CompleteCondition notEqualTo(Duration distanceFromNow);
/** Is numeric property greater than given number? */
- CompleteCondition greaterThan(double number);
+ CompleteCondition greaterThan(Double number);
+
+ /** Is numeric property greater than given number? */
+ CompleteCondition greaterThan(Long number);
/** Is numeric property greater than given number? */
- CompleteCondition greaterThan(long number);
+ CompleteCondition greaterThan(Integer number);
/** Is numeric property less than given number? */
- CompleteCondition lessThan(double number);
+ CompleteCondition lessThan(Double number);
/** Is numeric property less than given number? */
- CompleteCondition lessThan(long number);
+ CompleteCondition lessThan(Long number);
+ /** Is numeric property less than given number? */
+ CompleteCondition lessThan(Integer number);
+
+ /** Is numeric property greater or equal to given number? */
+ CompleteCondition greaterOrEqualTo(Double number);
+
/** Is numeric property greater or equal to given number? */
- CompleteCondition greaterOrEqualTo(double number);
+ CompleteCondition greaterOrEqualTo(Long number);
/** Is numeric property greater or equal to given number? */
- CompleteCondition greaterOrEqualTo(long number);
+ CompleteCondition greaterOrEqualTo(Integer number);
/** Is numeric property less or equal to given number? */
- CompleteCondition lessOrEqualTo(double number);
+ CompleteCondition lessOrEqualTo(Double number);
/** Is numeric property less or equal to given number? */
- CompleteCondition lessOrEqualTo(long number);
+ CompleteCondition lessOrEqualTo(Long number);
+ /** Is numeric property less or equal to given number? */
+ CompleteCondition lessOrEqualTo(Integer number);
+
/** Is date property after (greater than) given date? */
CompleteCondition after(Date date);
@@ -120,4 +138,23 @@ public interface Property {
/** Is textual property lexically not after (less or equal to) given literal? */
CompleteCondition lexicalNotAfter(String literal);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, String value);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, Double value);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, Long value);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, Integer value);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, Date value);
+
+ /** Generic */
+ CompleteCondition comparesTo(ConditionType op, Duration value);
+
}
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/SearchConditionBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/SearchConditionBuilder.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/SearchConditionBuilder.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/SearchConditionBuilder.java Mon Dec 10 10:54:19 2012
@@ -32,6 +32,7 @@ import java.util.Map;
public abstract class SearchConditionBuilder implements PartialCondition {
public static final String DEFAULT_LANGUAGE = "FIQL";
+ public static final String FIQL = DEFAULT_LANGUAGE;
/**
* Creates instance of builder.
*
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParser.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParser.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParser.java Mon Dec 10 10:54:19 2012
@@ -69,9 +69,11 @@ public class FiqlParser<T> implements Se
public static final String EQ = "==";
public static final String NEQ = "!=";
- private static final Pattern COMPARATORS_PATTERN;
+ public static final Map<ConditionType, String> CONDITION_MAP;
+
private static final Map<String, ConditionType> OPERATORS_MAP;
-
+ private static final Pattern COMPARATORS_PATTERN;
+
static {
// operatorsMap
OPERATORS_MAP = new HashMap<String, ConditionType>();
@@ -82,6 +84,15 @@ public class FiqlParser<T> implements Se
OPERATORS_MAP.put(EQ, ConditionType.EQUALS);
OPERATORS_MAP.put(NEQ, ConditionType.NOT_EQUALS);
+ CONDITION_MAP = new HashMap<ConditionType, String>();
+ CONDITION_MAP.put(ConditionType.GREATER_THAN, GT);
+ CONDITION_MAP.put(ConditionType.GREATER_OR_EQUALS, GE);
+ CONDITION_MAP.put(ConditionType.LESS_THAN, LT);
+ CONDITION_MAP.put(ConditionType.LESS_OR_EQUALS, LE);
+ CONDITION_MAP.put(ConditionType.EQUALS, EQ);
+ CONDITION_MAP.put(ConditionType.NOT_EQUALS, NEQ);
+
+
// pattern
String comparators = GT + "|" + GE + "|" + LT + "|" + LE + "|" + EQ + "|" + NEQ;
String s1 = "[\\p{ASCII}]+(" + comparators + ")";
Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilderTest.java?rev=1419334&r1=1419333&r2=1419334&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilderTest.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilderTest.java Mon Dec 10 10:54:19 2012
@@ -29,6 +29,7 @@ import javax.xml.datatype.DatatypeConfig
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
+import org.apache.cxf.jaxrs.ext.search.ConditionType;
import org.apache.cxf.jaxrs.ext.search.SearchUtils;
import org.junit.AfterClass;
@@ -69,6 +70,12 @@ public class FiqlSearchConditionBuilderT
String ret = b.is("foo").equalTo(123.5).query();
assertEquals("foo==123.5", ret);
}
+
+ @Test
+ public void testEqualToNumberCondition() {
+ String ret = b.is("foo").comparesTo(ConditionType.LESS_THAN, 123.5).query();
+ assertEquals("foo=lt=123.5", ret);
+ }
private Date parseDate(String format, String value) throws ParseException {
return new SimpleDateFormat(format).parse(value);