public class AdvancedCriteria
extends java.lang.Object
com.smartgwt.client.docs.serverds for how to use this documentation.AdvancedCriteria is a format for representing search criteria which may include operators on field values such as "less than", or may include sub-clauses such as several criteria applied to fields joined by an "OR" operator.
Smart GWT DataSources can use AdvancedCriteria to search a list of Records, and
the Smart GWT Java Server can translate AdvancedCriteria to either SQL or Hibernate
queries (Note: The server-side AdvancedCriteria handling feature is only available
with the Power and Enterprise Editions of Smart GWT; the Pro Edition is
limited to ordinary criteria handling on the server side).
If the entire dataset is cached locally, Smart GWT can perform AdvancedCriteria filtering on the client, avoiding a server call.
AdvancedCriteria objects can be created directly in java. For example:
AdvancedCriteria criteria = new AdvancedCriteria(OperatorId.AND, new Criterion[]{
new Criterion("salary", OperatorId.LESS_THAN, 8000),
new AdvancedCriteria(OperatorId.OR, new Criterion[]{
new Criterion("title", OperatorId.ICONTAINS, "Manager"),
new Criterion("reports", OperatorId.NOT_NULL)
})
});
In addition to building a raw AdvancedCriteria object as described above, the
DataSource.convertCriteria() and
DataSource.combineCriteria()
methods
may be used to create and modify criteria based on simple fieldName / value mappings.
When passed to the Smart GWT Server, a server-side AdvancedCriteria instance (in the package com.isomorphic.criteria) can be retrieved from a DSRequest via com.isomorphic.datasource.DSRequest.getAdvancedCriteria(). These same AdvancedCriteria objects can be directly created server side, and applied to a DSRequest via setAdvancedCriteria().
RestDataSource, the recommended way of integration with
servers that are not running
the Smart GWT Server Framework, defines a standard XML and JSON serialization of
AdvancedCriteria.
For other servers, you can translate AdvancedCriteria into whatever format is
expected by the server, typically by implementing DataSource.transformRequest().
The internal representation of AdvancedCriteria is a simple JavaScript structure, available via AdvancedCriteria.getJsObj():
// an AdvancedCriteria
{
_constructor:"AdvancedCriteria",
operator:"and",
criteria:[
// this is a Criterion
{ fieldName:"salary", operator:"lessThan", value:"80000" },
{ operator:"or", criteria:[
{ fieldName:"title", operator:"iContains", value:"Manager" },
{ fieldName:"reports", operator:"notNull" }
]
}
]
}
And an AdvancedCriteria can also be created from a JavaScriptObject. This makes
AdvancedCriteria very easy to store and retrieve as JSON strings, using
JSONEncoder.
See Criteria Editing for information about
editing AdvancedCriteria in a DynamicForm.| Constructor and Description |
|---|
AdvancedCriteria() |