com.smartgwt.client.data
Class AdvancedCriteria

java.lang.Object
  extended by com.smartgwt.client.core.JsObject
      extended by com.smartgwt.client.core.DataClass
          extended by com.smartgwt.client.data.Criteria
              extended by com.smartgwt.client.data.Criterion
                  extended by com.smartgwt.client.data.AdvancedCriteria

public class AdvancedCriteria
extends Criterion

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.


Field Summary
 
Fields inherited from class com.smartgwt.client.core.JsObject
jsObj
 
Constructor Summary
AdvancedCriteria()
           
AdvancedCriteria(Criterion c)
           
AdvancedCriteria(JavaScriptObject jsObj)
           
AdvancedCriteria(OperatorId operator)
           
AdvancedCriteria(OperatorId operator, Criterion[] criterias)
           
AdvancedCriteria(String fieldName, OperatorId operator)
           
AdvancedCriteria(String fieldName, OperatorId operator, Boolean value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Boolean[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Date value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Date[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Date start, Date end)
           
AdvancedCriteria(String fieldName, OperatorId operator, Float value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Float[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Float start, Float end)
           
AdvancedCriteria(String fieldName, OperatorId operator, Integer value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Integer[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Integer start, Integer end)
           
AdvancedCriteria(String fieldName, OperatorId operator, Long value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Long[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Long start, Long end)
           
AdvancedCriteria(String fieldName, OperatorId operator, String value)
           
AdvancedCriteria(String fieldName, OperatorId operator, String[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, String start, String end)
           
 
Method Summary
 String asString()
          Gets a string encoding of an AdvancedCriteria object.
static AdvancedCriteria fromJSObject(JavaScriptObject jsObj)
          Creates an AdvancedCriteria from a JavaScriptObject with the format described in AdvancedCriteria
static AdvancedCriteria fromJSON(String json)
          Creates an AdvancedCriteria from a JSON String in the format described in AdvancedCriteria.
static AdvancedCriteria fromString(String json)
          Creates an AdvancedCriteria from a String in the format described in AdvancedCriteria Unlike fromJSON(), dates, times and datetimes round-trip correctly, because they serialize via the LOGICAL_DATE_CONSTRUCTOR mode of JSONEncoder.
static AdvancedCriteria getOrCreateRef(JavaScriptObject jsObj)
           
 String toJSON()
          Gets a JSON encoding of an AdvancedCriteria object.
 
Methods inherited from class com.smartgwt.client.data.Criterion
addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, addCriteria, appendToCriterionList, buildCriterionFromList, getCriteria, getFieldName, getOperator, getValueAsBoolean, getValueAsDate, getValueAsFloat, getValueAsInt, getValueAsIntArray, getValueAsInteger, getValueAsString, getValueAsStringArray, instanceOf, markAdvancedCriteria, setCriteria, setFieldName, setOperator, unmarkAdvancedCriteria
 
Methods inherited from class com.smartgwt.client.data.Criteria
addCriteria, addCriteria, addCriteria, addCriteria, asAdvancedCriteria, convertToCriteriaArray, getValues, isAdvanced
 
Methods inherited from class com.smartgwt.client.core.DataClass
doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject
 
Methods inherited from class com.smartgwt.client.core.JsObject
equals, getJsObj, hashCode, isCreated, setJavaScriptObject, setJsObj
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AdvancedCriteria

public AdvancedCriteria()

AdvancedCriteria

public AdvancedCriteria(JavaScriptObject jsObj)

AdvancedCriteria

public AdvancedCriteria(Criterion c)

AdvancedCriteria

public AdvancedCriteria(OperatorId operator,
                        Criterion[] criterias)

AdvancedCriteria

public AdvancedCriteria(OperatorId operator)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Integer value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        String value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Float value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Date value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Boolean value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Integer[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        String[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Float[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Date[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Boolean[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Date start,
                        Date end)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Float start,
                        Float end)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Integer start,
                        Integer end)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Long value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Long[] value)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        Long start,
                        Long end)

AdvancedCriteria

public AdvancedCriteria(String fieldName,
                        OperatorId operator,
                        String start,
                        String end)
Method Detail

getOrCreateRef

public static AdvancedCriteria getOrCreateRef(JavaScriptObject jsObj)

fromJSObject

public static AdvancedCriteria fromJSObject(JavaScriptObject jsObj)
Creates an AdvancedCriteria from a JavaScriptObject with the format described in AdvancedCriteria

Parameters:
jsObj - the passed JavaScriptObject object
Returns:
AdvancedCriteria

fromJSON

public static AdvancedCriteria fromJSON(String json)
Creates an AdvancedCriteria from a JSON String in the format described in AdvancedCriteria. Note that dates will not round-trip perfectly because JSON has no way of accurately representing date values, nor a method of differentiating between dates, times and datetimes. To have dates, times and datetimes round-trip correctly, use asString() and fromString(), which serialize via the LOGICAL_DATE_CONSTRUCTOR mode of JSONEncoder.

Parameters:
json - the passed JSON string
Returns:
AdvancedCriteria

toJSON

public String toJSON()
Gets a JSON encoding of an AdvancedCriteria object. Note that dates will not round-trip perfectly because JSON has no way of representing date values, nor a method of differentiating between dates, times and datetimes. To have dates, times and datetimes round-trip correctly, use asString() and fromString(), which serialize via the LOGICAL_DATE_CONSTRUCTOR mode of JSONEncoder.

Returns:
String A JSON string of this AdvancedCriteria object

fromString

public static AdvancedCriteria fromString(String json)
Creates an AdvancedCriteria from a String in the format described in AdvancedCriteria Unlike fromJSON(), dates, times and datetimes round-trip correctly, because they serialize via the LOGICAL_DATE_CONSTRUCTOR mode of JSONEncoder.

Parameters:
json - the passed JSON string
Returns:
AdvancedCriteria

asString

public String asString()
Gets a string encoding of an AdvancedCriteria object. The return value is a JSON string, except for date values, which JSON has no way of representing. Unlike toJSON(), dates, times and datetimes round-trip correctly, because they serialize via the LOGICAL_DATE_CONSTRUCTOR mode of JSONEncoder.

Returns:
String A string similar to JSON but containing calls to framework APIs that provide accurate round-tripping of date values