Author: sergeyb
Date: Fri Dec 6 11:02:49 2013
New Revision: 1548489
URL: http://svn.apache.org/r1548489
Log:
Merged revisions 1548488 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1548488 | sergeyb | 2013-12-06 10:59:43 +0000 (Fri, 06 Dec 2013) | 1 line
Making FIQL SearchConditionBuilder more extensible, patch from Francesco
Chicchiriccò applied
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
svn:mergeinfo = /cxf/trunk:1548488
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.7.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.7.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java?rev=1548489&r1=1548488&r2=1548489&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java
(original)
+++
cxf/branches/2.7.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/client/FiqlSearchConditionBuilder.java
Fri Dec 6 11:02:49 2013
@@ -57,7 +57,7 @@ import org.apache.cxf.jaxrs.ext.search.f
*/
public class FiqlSearchConditionBuilder extends SearchConditionBuilder {
- private Map<String, String> properties;
+ protected Map<String, String> properties;
public FiqlSearchConditionBuilder() {
this(Collections.<String, String> emptyMap());
@@ -67,37 +67,41 @@ public class FiqlSearchConditionBuilder
this.properties = properties;
}
+ protected Builder newBuilderInstance() {
+ return new Builder(properties);
+ }
+
public String query() {
return "";
}
public Property is(String property) {
- return new Builder(properties).is(property);
+ return newBuilderInstance().is(property);
}
public CompleteCondition and(CompleteCondition c1, CompleteCondition c2,
CompleteCondition... cn) {
- return new Builder(properties).and(c1, c2, cn);
+ return newBuilderInstance().and(c1, c2, cn);
}
public CompleteCondition and(List<CompleteCondition> conditions) {
- return new Builder(properties).and(conditions);
+ return newBuilderInstance().and(conditions);
}
public CompleteCondition or(List<CompleteCondition> conditions) {
- return new Builder(properties).or(conditions);
+ return newBuilderInstance().or(conditions);
}
public CompleteCondition or(CompleteCondition c1, CompleteCondition c2,
CompleteCondition... cn) {
- return new Builder(properties).or(c1, c2, cn);
+ return newBuilderInstance().or(c1, c2, cn);
}
- private static class Builder implements Property, CompleteCondition,
PartialCondition {
- private String result = "";
- private Builder parent;
- private DateFormat df;
- private boolean timeZoneSupported;
- private String currentCompositeOp;
+ protected static class Builder implements Property, CompleteCondition,
PartialCondition {
+ protected String result = "";
+ protected Builder parent;
+ protected DateFormat df;
+ protected boolean timeZoneSupported;
+ protected String currentCompositeOp;
public Builder(Map<String, String> properties) {
parent = null;
@@ -115,16 +119,16 @@ public class FiqlSearchConditionBuilder
return buildPartial(null);
}
- private DateFormat getDateFormat() {
+ protected DateFormat getDateFormat() {
return df;
}
- private boolean isTimeZoneSupported() {
+ protected boolean isTimeZoneSupported() {
return timeZoneSupported;
}
// builds from parent but not further then exclude builder
- private String buildPartial(Builder exclude) {
+ protected String buildPartial(Builder exclude) {
if (parent != null && !parent.equals(exclude)) {
return parent.buildPartial(exclude) + result;
} else {
@@ -391,7 +395,7 @@ public class FiqlSearchConditionBuilder
return conditionsList(FiqlParser.OR, conditions);
}
- private CompleteCondition conditionsList(String op,
List<CompleteCondition> conditions) {
+ protected CompleteCondition conditionsList(String op,
List<CompleteCondition> conditions) {
if (conditions.size() == 1) {
result += ((Builder)conditions.get(0)).buildPartial(this);
} else {
@@ -416,7 +420,7 @@ public class FiqlSearchConditionBuilder
return b;
}
- private String toString(Object value) {
+ protected String toString(Object value) {
if (value == null) {
return null;
}
@@ -434,7 +438,7 @@ public class FiqlSearchConditionBuilder
}
}
- private String toFiqlPrimitiveCondition(ConditionType type) {
+ protected String toFiqlPrimitiveCondition(ConditionType type) {
String fiqlType = FiqlParser.CONDITION_MAP.get(type);
if (fiqlType == null) {
throw new IllegalArgumentException("Only primitive condition
types are supported");