Class FiqlParser<T>
- java.lang.Object
-
- org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionParser<T>
-
- org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser<T>
-
- Type Parameters:
T- type of search condition.
- All Implemented Interfaces:
SearchConditionParser<T>
public class FiqlParser<T> extends AbstractSearchConditionParser<T>
Parses FIQL expression to constructSearchConditionstructure. Since this class operates on Java type T, not on XML structures "selectors" part of specification is not applicable; instead selectors describes getters of type T used as search condition type (seeSimpleSearchCondition.isMet(Object)for details.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceFiqlParser.ASTNode<T>protected static classFiqlParser.TypeInfoObject
-
Field Summary
Fields Modifier and Type Field Description static StringANDprotected PatterncomparatorsPatternstatic Map<ConditionType,String>CONDITION_MAPstatic StringEQstatic StringEXTENSION_COUNTprotected static StringEXTENSION_COUNT_OPENstatic StringGEstatic StringGTstatic StringLEstatic StringLTstatic StringNEQprotected Map<String,ConditionType>operatorsMapstatic StringORstatic StringSUPPORT_SINGLE_EQUALS-
Fields inherited from class org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionParser
beanPropertiesMap, beanspector, conditionClass, contextProperties
-
-
Constructor Summary
Constructors Constructor Description FiqlParser(Class<T> tclass)Creates FIQL parser.FiqlParser(Class<T> tclass, Map<String,String> contextProperties)Creates FIQL parser.FiqlParser(Class<T> tclass, Map<String,String> contextProperties, Map<String,String> beanProperties)Creates FIQL parser.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanisCount(String propName)SearchCondition<T>parse(String fiqlExpression)Parses expression and builds search filter.protected FiqlParser.ASTNode<T>parseComparison(String expr)protected FiqlParser.TypeInfoObjectparseType(String originalName, String setter, String value)protected StringunwrapSetter(String setter)-
Methods inherited from class org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionParser
getActualSetterName, getSetter, getTypeInfo, isDecodeQueryValues, parseType
-
-
-
-
Field Detail
-
OR
public static final String OR
- See Also:
- Constant Field Values
-
AND
public static final String AND
- See Also:
- Constant Field Values
-
GT
public static final String GT
- See Also:
- Constant Field Values
-
GE
public static final String GE
- See Also:
- Constant Field Values
-
LT
public static final String LT
- See Also:
- Constant Field Values
-
LE
public static final String LE
- See Also:
- Constant Field Values
-
EQ
public static final String EQ
- See Also:
- Constant Field Values
-
NEQ
public static final String NEQ
- See Also:
- Constant Field Values
-
CONDITION_MAP
public static final Map<ConditionType,String> CONDITION_MAP
-
SUPPORT_SINGLE_EQUALS
public static final String SUPPORT_SINGLE_EQUALS
- See Also:
- Constant Field Values
-
EXTENSION_COUNT
public static final String EXTENSION_COUNT
- See Also:
- Constant Field Values
-
EXTENSION_COUNT_OPEN
protected static final String EXTENSION_COUNT_OPEN
- See Also:
- Constant Field Values
-
operatorsMap
protected Map<String,ConditionType> operatorsMap
-
comparatorsPattern
protected Pattern comparatorsPattern
-
-
Constructor Detail
-
FiqlParser
public FiqlParser(Class<T> tclass)
Creates FIQL parser.- Parameters:
tclass- - class of T used to create condition objects in built syntax tree. Class T must have accessible no-arg constructor and complementary setters to these used in FIQL expressions.
-
FiqlParser
public FiqlParser(Class<T> tclass, Map<String,String> contextProperties)
Creates FIQL parser.- Parameters:
tclass- - class of T used to create condition objects in built syntax tree. Class T must have accessible no-arg constructor and complementary setters to these used in FIQL expressions.contextProperties-
-
FiqlParser
public FiqlParser(Class<T> tclass, Map<String,String> contextProperties, Map<String,String> beanProperties)
Creates FIQL parser.- Parameters:
tclass- - class of T used to create condition objects in built syntax tree. Class T must have accessible no-arg constructor and complementary setters to these used in FIQL expressions.contextProperties-beanProperties-
-
-
Method Detail
-
parse
public SearchCondition<T> parse(String fiqlExpression) throws SearchParseException
Parses expression and builds search filter. Names used in FIQL expression are names of getters/setters in type T.Example:
class Condition { public String getFoo() {...} public void setFoo(String foo) {...} public int getBar() {...} public void setBar(int bar) {...} } FiqlParser<Condition> parser = new FiqlParser<Condition>(Condition.class); parser.parse("foo==mystery*;bar=ge=10");- Parameters:
fiqlExpression- expression of filter.- Returns:
- tree of
SearchConditionobjects representing runtime search structure. - Throws:
SearchParseException- when expression does not follow FIQL grammar
-
parseComparison
protected FiqlParser.ASTNode<T> parseComparison(String expr) throws SearchParseException
- Throws:
SearchParseException
-
parseType
protected FiqlParser.TypeInfoObject parseType(String originalName, String setter, String value) throws SearchParseException
- Throws:
SearchParseException
-
isCount
protected boolean isCount(String propName)
- Overrides:
isCountin classAbstractSearchConditionParser<T>
-
-