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/07/10 18:58:05 UTC
svn commit: r1359784 - in
/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search:
SearchConditionParser.java SearchContext.java SearchContextImpl.java
Author: sergeyb
Date: Tue Jul 10 16:58:05 2012
New Revision: 1359784
URL: http://svn.apache.org/viewvc?rev=1359784&view=rev
Log:
[CXF-4415] Missing updates
Modified:
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchConditionParser.java
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/SearchConditionParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchConditionParser.java?rev=1359784&r1=1359783&r2=1359784&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchConditionParser.java (original)
+++ cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchConditionParser.java Tue Jul 10 16:58:05 2012
@@ -18,6 +18,10 @@
*/
package org.apache.cxf.jaxrs.ext.search;
+/**
+ * Search Language Parser implementation.
+ * FIQL Language parser is the default implementation.
+ */
public interface SearchConditionParser<T> {
SearchCondition<T> parse(String fiqlExpression) throws SearchParseException;
}
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=1359784&r1=1359783&r2=1359784&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 Tue Jul 10 16:58:05 2012
@@ -19,12 +19,14 @@
package org.apache.cxf.jaxrs.ext.search;
/**
- * Represents the current search expression
+ * Represents the current search expression.
*/
public interface SearchContext {
/**
- * Returns the typed search condition representing the search expression
+ * 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
@@ -34,8 +36,21 @@ public interface SearchContext {
/**
- * Returns the actual query expression
- * @return the expression
+ * 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
+ * @return the search condition
+ */
+ <T> SearchCondition<T> getCondition(String expression, Class<T> cls);
+
+
+ /**
+ * Returns the search expression
+ * @return the expression which is extracted from
+ * the request URI, can be null
*/
String getSearchExpression();
}
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=1359784&r1=1359783&r2=1359784&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 Tue Jul 10 16:58:05 2012
@@ -43,6 +43,10 @@ public class SearchContextImpl implement
}
public <T> SearchCondition<T> getCondition(Class<T> cls) {
+ return getCondition(null, cls);
+ }
+
+ public <T> SearchCondition<T> getCondition(String expression, Class<T> cls) {
if (InjectionUtils.isPrimitive(cls)) {
String errorMessage = "Primitive condition types are not supported";
@@ -52,10 +56,11 @@ public class SearchContextImpl implement
SearchConditionParser<T> parser = getParser(cls);
- String expression = getSearchExpression();
- if (expression != null) {
+ String theExpression = expression == null
+ ? getSearchExpression() : expression;
+ if (theExpression != null) {
try {
- return parser.parse(expression);
+ return parser.parse(theExpression);
} catch (SearchParseException ex) {
return null;
}
@@ -66,6 +71,7 @@ public class SearchContextImpl implement
}
public String getSearchExpression() {
+
String queryStr = (String)message.get(Message.QUERY_STRING);
if (queryStr != null
&& (queryStr.contains(SHORT_SEARCH_QUERY) || queryStr.contains(SEARCH_QUERY))) {
@@ -81,7 +87,7 @@ public class SearchContextImpl implement
}
}
- private <T> FiqlParser<T> getParser(Class<T> cls) {
+ private <T> SearchConditionParser<T> getParser(Class<T> cls) {
// 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