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().

Other servers may receive AdvancedCriteria in the most convenient format. 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" }
            ]  
          }
      ]
  }
  
You can implement DataSource.transformRequest to translate the JavaScript AdvancedCriteria object directly into a SQL-like language, or serialize to XML using DataSource.xmlSerialize.

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, Float value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Float[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Integer value)
           
AdvancedCriteria(String fieldName, OperatorId operator, Integer[] value)
           
AdvancedCriteria(String fieldName, OperatorId operator, String value)
           
AdvancedCriteria(String fieldName, OperatorId operator, String[] value)
           
 
Method Summary
static AdvancedCriteria getOrCreateRef(JavaScriptObject jsObj)
           
 
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, getValueAsIntArray, getValueAsInteger, getValueAsString, getValueAsStringArray, markAdvancedCriteria, setFieldName, setOperator, unmarkAdvancedCriteria
 
Methods inherited from class com.smartgwt.client.data.Criteria
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, getJsObj, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute
 
Methods inherited from class com.smartgwt.client.core.JsObject
isCreated, setJsObj
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, 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)
Method Detail

getOrCreateRef

public static AdvancedCriteria getOrCreateRef(JavaScriptObject jsObj)