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/09 17:21:20 UTC
svn commit: r1419014 - in
/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search:
SearchContext.java SearchContextImpl.java
Author: sergeyb
Date: Sun Dec 9 16:21:19 2012
New Revision: 1419014
URL: http://svn.apache.org/viewvc?rev=1419014&view=rev
Log:
Making it easier to pass parser/contextual properties by adding a couple of more methods to SearchContext
Modified:
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContext.java
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java
Modified: cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContext.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContext.java?rev=1419014&r1=1419013&r2=1419014&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContext.java (original)
+++ cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContext.java Sun Dec 9 16:21:19 2012
@@ -48,6 +48,21 @@ public interface SearchContext {
*/
<T> SearchCondition<T> getCondition(Class<T> cls, Map<String, String> beanProperties);
+ /**
+ * Returns the typed search condition representing
+ * the search expression which is extracted from
+ * the request URI
+ *
+ * @param cls the type of the bean(s) the new search condition will
+ * attempt to match
+ * @param beanProperties mapping between search and bean properties
+ * @param parserProperties parser properties
+ * @return the search condition
+ */
+ <T> SearchCondition<T> getCondition(Class<T> cls,
+ Map<String, String> beanProperties,
+ Map<String, String> parserProperties);
+
/**
* Returns the typed search condition representing
@@ -72,6 +87,21 @@ public interface SearchContext {
*/
<T> SearchCondition<T> getCondition(String expression, Class<T> cls, Map<String, String> beanProperties);
+ /**
+ * Returns the typed search condition representing
+ * the provided search expression
+ *
+ * @param expression the search expression
+ * @param cls the type of the bean(s) the new search condition will
+ * attempt to match
+ * @param beanProperties mapping between search and bean properties
+ * @param parserProperties parser properties
+ * @return the search condition
+ */
+ <T> SearchCondition<T> getCondition(String expression, Class<T> cls,
+ Map<String, String> beanProperties,
+ Map<String, String> parserProperties);
+
/**
* Returns the search expression
Modified: cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java?rev=1419014&r1=1419013&r2=1419014&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java (original)
+++ cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java Sun Dec 9 16:21:19 2012
@@ -51,20 +51,33 @@ public class SearchContextImpl implement
return getCondition(null, cls, beanProperties);
}
+ public <T> SearchCondition<T> getCondition(Class<T> cls,
+ Map<String, String> beanProperties,
+ Map<String, String> parserProperties) {
+ return getCondition(null, cls, beanProperties, parserProperties);
+ }
+
public <T> SearchCondition<T> getCondition(String expression, Class<T> cls) {
return getCondition(expression, cls, null);
}
public <T> SearchCondition<T> getCondition(String expression,
Class<T> cls,
- Map<String, String> beanProperties) {
+ Map<String, String> beanProperties) {
+ return getCondition(expression, cls, beanProperties, null);
+ }
+
+ public <T> SearchCondition<T> getCondition(String expression,
+ Class<T> cls,
+ Map<String, String> beanProperties,
+ Map<String, String> parserProperties) {
if (InjectionUtils.isPrimitive(cls)) {
String errorMessage = "Primitive condition types are not supported";
LOG.warning(errorMessage);
throw new IllegalArgumentException(errorMessage);
}
- SearchConditionParser<T> parser = getParser(cls, beanProperties);
+ SearchConditionParser<T> parser = getParser(cls, beanProperties, parserProperties);
String theExpression = expression == null
? getSearchExpression() : expression;
@@ -97,17 +110,24 @@ public class SearchContextImpl implement
}
}
- private <T> SearchConditionParser<T> getParser(Class<T> cls, Map<String, String> beanProperties) {
+ private <T> SearchConditionParser<T> getParser(Class<T> cls,
+ Map<String, String> beanProperties,
+ Map<String, String> parserProperties) {
// we can use this method as a parser factory, ex
// we can get parsers capable of parsing XQuery and other languages
// depending on the properties set by a user
- Map<String, String> props = new LinkedHashMap<String, String>(4);
- props.put(SearchUtils.DATE_FORMAT_PROPERTY,
- (String)message.getContextualProperty(SearchUtils.DATE_FORMAT_PROPERTY));
- props.put(SearchUtils.TIMEZONE_SUPPORT_PROPERTY,
- (String)message.getContextualProperty(SearchUtils.TIMEZONE_SUPPORT_PROPERTY));
- props.put(SearchUtils.LAX_PROPERTY_MATCH,
- (String)message.getContextualProperty(SearchUtils.LAX_PROPERTY_MATCH));
+ Map<String, String> props = null;
+ if (parserProperties == null) {
+ props = new LinkedHashMap<String, String>(4);
+ props.put(SearchUtils.DATE_FORMAT_PROPERTY,
+ (String)message.getContextualProperty(SearchUtils.DATE_FORMAT_PROPERTY));
+ props.put(SearchUtils.TIMEZONE_SUPPORT_PROPERTY,
+ (String)message.getContextualProperty(SearchUtils.TIMEZONE_SUPPORT_PROPERTY));
+ props.put(SearchUtils.LAX_PROPERTY_MATCH,
+ (String)message.getContextualProperty(SearchUtils.LAX_PROPERTY_MATCH));
+ } else {
+ props = parserProperties;
+ }
Map<String, String> beanProps = null;