Class QueryBuilder
- java.lang.Object
-
- com.evolveum.midpoint.prism.impl.query.builder.QueryBuilder
-
public final class QueryBuilder extends Object
Here is the language structure: Query ::= Filter? ('ASC(path)' | 'DESC(path)')* Filter ::= 'NOT'? SimpleFilter ( ('AND'|'OR') 'NOT'? SimpleFilter )* SimpleFilter ::= PrimitiveFilter | 'BLOCK' Filter 'END-BLOCK' | 'TYPE(type)' Filter | 'EXISTS(path)' Filter PrimitiveFilter ::= 'ALL' | 'NONE' | 'UNDEFINED' | ('ITEM(path)' ( ValueComparisonCondition | 'IS-NULL' | ( ItemComparisonCondition 'ITEM(path)') ) ) | ('ID(values)') | ('OWNER-ID(values)') ValueComparisonCondition ::= 'EQ(value)' | 'GT(value)' | 'GE(value)' | 'LT(value)' | 'LE(value)' | 'STARTSWITH(value)' | 'ENDSWITH(value)' | 'CONTAINS(value)' | 'REF(value)' | 'ORG(value)' ItemComparisonCondition ::= 'EQ' | 'GT' | 'GE' | 'LT' | 'LE' It can be visualized e.g. using http://www.bottlecaps.de/rr/uiIndividual keywords ('AND', 'OR', 'BLOCK', ...) are mapped to methods. Connections between these keywords are mapped to interfaces. It can be viewed as interfaces = states, keywords = transitions. (Or vice versa, but this is more natural.) The interfaces have names starting with S_ (for "state").
Interfaces are implemented by classes that aggregate state of the query being created. This is quite hacked for now... to be implemented more seriously.
- Author:
- mederly
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PrismContext
getPrismContext()
static S_FilterEntryOrEmpty
queryFor(Class<? extends Containerable> queryClass, PrismContext prismContext)
-
-
-
Method Detail
-
getPrismContext
public PrismContext getPrismContext()
-
queryFor
public static S_FilterEntryOrEmpty queryFor(Class<? extends Containerable> queryClass, PrismContext prismContext)
-
-