|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bea.ld.filter.FilterXQuery
public class FilterXQuery
This class enables client-side control of data service function results through filtering and ordering without having to use complex XQuery syntax. A filter object is passed to Liquid Data (along with the name of a function in a data service), which processes the filters/orderby list and generates the XQuery. This capability is helpful in cases where a data service returns results that contain nested objects and you want to get different views of the objects based on certain conditions.
For example, if the returned document is CUSTOMERS/CUSTOMER/ORDER, where:
FilterXQuery filter = new FilterXQuery();
filter.addFilter("CUSTOMERS/CUSTOMER/ORDER","CUSTOMERS/CUSTOMER/ORDER/ORDER_AMOUNT",">","1000");
2. Only CUSTOMER object which has at least one large order and view All ORDER objects for such CUSTOMER
FilterXQuery filter = new FilterXQuery();
filter.addFilter("CUSTOMERS/CUSTOMER","CUSTOMERS/CUSTOMER/ORDER/ORDER_AMOUNT",">","1000");
3. Only CUSTOMER object which has at least one large order and view only Large ORDER objects ( basically 1 & 2)
FilterXQuery filter = new FilterXQuery();
filter.addFilter("CUSTOMERS/CUSTOMER","CUSTOMERS/CUSTOMER/ORDER/ORDER_AMOUNT",">","1000");
filter.addFilter("CUSTOMERS/CUSTOMER/ORDER","CUSTOMERS/CUSTOMER/ORDER/ORDER_AMOUNT",">","1000");
4. Only CUSTOMER object which has all the ORDER as large order (i.e. ORDER_AMOUNT > 1000)
FilterXQuery filter = new FilterXQuery();
filter.addFilter("CUSTOMERS/CUSTOMER","CUSTOMERS/CUSTOMER/ORDER/ORDER_AMOUNT",">","1000",true);
addFilter(String appliesTo, String field, String operator, String value)
,
createFilter(String field, String operator, String value, boolean everyChild)
,
Serialized FormField Summary | |
---|---|
static java.lang.String |
AND
|
static java.lang.String |
ANY_TYPE_LIMIT
|
static java.lang.String |
ASCENDING
|
static java.lang.String |
BEA_SQL_LIKE
|
static java.lang.String |
DESCENDING
|
static java.lang.String |
EQUAL
|
static java.lang.String |
GREATER_THAN
|
static java.lang.String |
GREATER_THAN_EQUAL
|
static java.lang.String |
LESS_THAN
|
static java.lang.String |
LESS_THAN_EQUAL
|
static java.lang.String |
MATCHES
|
static java.lang.String |
NOT
|
static java.lang.String |
NOT_EQUAL
|
static java.lang.String |
OR
|
Constructor Summary | |
---|---|
FilterXQuery()
|
Method Summary | |
---|---|
void |
addFilter(java.lang.String appliesTo,
Filter filter)
|
void |
addFilter(java.lang.String appliesTo,
Filter f1,
Filter f2,
java.lang.String op)
|
void |
addFilter(java.lang.String appliesTo,
java.lang.String field,
java.lang.String operator,
java.lang.String value)
Creates a filter and adds it to the list of filters. |
void |
addFilter(java.lang.String appliesTo,
java.lang.String field,
java.lang.String operator,
java.lang.String value,
boolean everyChild)
|
void |
addOrderBy(java.lang.String appliesTo,
java.lang.String field,
java.lang.String sort)
Adds the sort crieteria to the object specified by the appliesTo argument. |
Filter |
createFilter(Filter f1,
Filter f2,
java.lang.String operator)
This method will create a compound filter. |
Filter |
createFilter(java.lang.String field,
java.lang.String operator,
java.lang.String value)
Creates a filter that can be later applied to any of the objects in the hierarchy of the field path, e.g., either to CUSTOMER or ORDER if the field is CUSTOMER/ORDER/TOTAL_ORDER_AMOUNT. |
Filter |
createFilter(java.lang.String field,
java.lang.String operator,
java.lang.String value,
boolean everyChild)
|
ExternalVariables |
getExternalVariables()
gets the ExternalVariables |
void |
setExternalVariables(ExternalVariables v)
set the ExternalVariables containing the list of external variables which can be used in filter/limit. |
void |
setLimit(java.lang.String appliesTo,
java.lang.String max)
Associates the maximum number of entries to return of the element specified by the appliesTo argument. |
org.openuri.www.FilterXQuery |
toProxy()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String LESS_THAN
public static final java.lang.String GREATER_THAN
public static final java.lang.String LESS_THAN_EQUAL
public static final java.lang.String GREATER_THAN_EQUAL
public static final java.lang.String EQUAL
public static final java.lang.String NOT_EQUAL
public static final java.lang.String AND
public static final java.lang.String OR
public static final java.lang.String NOT
public static final java.lang.String BEA_SQL_LIKE
public static final java.lang.String MATCHES
public static final java.lang.String ASCENDING
public static final java.lang.String DESCENDING
public static final java.lang.String ANY_TYPE_LIMIT
Constructor Detail |
---|
public FilterXQuery()
Method Detail |
---|
public Filter createFilter(java.lang.String field, java.lang.String operator, java.lang.String value)
field
- Path relative to document element.operator
- This is an operator ( <,<=,>,>=,=,!=) supported by XQuery directly on field (XAPTH).value
- Value against which the field will be compared. Provide necessary quotes if required.
public Filter createFilter(java.lang.String field, java.lang.String operator, java.lang.String value, boolean everyChild)
everyChild
- This flag is false by default. This is applicable only if
the field belongs to one of the child objects in the hierarchy and this filter is
applied to the parent object. If this flag is true it will return parent object
only if the filter condition is satisfied by all the children of the parent object.createFilter(String field, String operator, String value)
public Filter createFilter(Filter f1, Filter f2, java.lang.String operator)
f1
- Filter object created by any of the createFilter Method.f2
- Filter object created by any of the createFilter Method.operator
- Logical operator (and, or, not). For not operator, f2 will not be used and can be set to null.
public void addFilter(java.lang.String appliesTo, java.lang.String field, java.lang.String operator, java.lang.String value)
appliesTo
- String XPath (relative to document element) to which the filter is applied.for details
public void addFilter(java.lang.String appliesTo, java.lang.String field, java.lang.String operator, java.lang.String value, boolean everyChild)
addFilter(String appliesTo, String field, String operator, String value)
,
createFilter(String field, String operator, String value, boolean everyChild)
public void addFilter(java.lang.String appliesTo, Filter f1, Filter f2, java.lang.String op)
addFilter(String appliesTo, String field, String operator, String value)
,
createFilter(Filter f1, Filter f2, String operator)
public void addFilter(java.lang.String appliesTo, Filter filter)
addFilter(String appliesTo, String field, String operator, String value)
,
createFilter(Filter f1, Filter f2, String operator)
public void addOrderBy(java.lang.String appliesTo, java.lang.String field, java.lang.String sort)
appliesTo
- String XPath relative to document Elementfield
- String fieldName (relative (not the full path) to 'appliesTo' object)sort
- sort criteria (ascending/descending)public void setLimit(java.lang.String appliesTo, java.lang.String max)
appliesTo
- String XPath ( relative to document element) to which the filter is applied.max
- $variable declared in ExternalVariables OR int value specified in string e.g. "2"public void setExternalVariables(ExternalVariables v)
v
- ExternalVariablespublic ExternalVariables getExternalVariables()
public org.openuri.www.FilterXQuery toProxy()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |