com.endeca.portal.data.functions
Class EQLFilter

java.lang.Object
  extended by com.endeca.portal.data.functions.QueryFunction
      extended by com.endeca.portal.data.functions.QueryFilter
          extended by com.endeca.portal.data.functions.EQLFilter
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class EQLFilter
extends QueryFilter

This class makes it possible to set Endeca Query Language filters on a QueryState This filter is notably different from other implemented filter classes in that it does not merge its specified EQL filter with any other EQL filters that may already be specified on a query: it simply overwrites whatever EQL filter was previously specified. As a consequence, if more than EQLFilter object is in a QueryState, the EQL filter on an ENEQuery constructed from the QueryState will have the EQL filter of whichever EQLFilter happened to get applied last. EQL Filters are only supported on ENE presentation API data sources. Attempting to apply an EQLFilter to a discovery service data source will result in a QueryFunctionUnsupportedException.

Author:
wfleming
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.endeca.portal.data.functions.QueryFunction
CLASS_PROPERTY, operator
 
Constructor Summary
protected EQLFilter()
           
  EQLFilter(org.json.JSONObject jsonObject)
           
  EQLFilter(java.lang.String eqlFilter)
           
 
Method Summary
 void applyToDiscoveryServiceQuery(com.endeca.mdex.conversation.Request query)
          Apply this function to a Request.
 void applyToENEQuery(com.endeca.navigation.ENEQuery query)
          Apply this function to an ENEQuery.
 java.lang.String getEqlFilter()
           
 java.util.List<java.lang.reflect.Method> getGetters()
          Return the list of property getters on this function.
 java.util.List<java.lang.reflect.Method> getSetters()
          Return the list of property setters on this function.
 void setEqlFilter(java.lang.String eqlFilter)
           
 java.lang.String toString()
          This class' toString is abstract: all concrete subclasses are expected to provide an implementation. toString is used in comparing QueryFunction instances for equality, so if you implement a QueryFunction subclass it is important that your toString implementation be consistent and deterministic.
 
Methods inherited from class com.endeca.portal.data.functions.QueryFunction
clone, equals, equals, getInstance, getInstance, getName, getOperator, hashCode, init, setName, setOperator, setOperator, toJSON, toXML
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

EQLFilter

protected EQLFilter()

EQLFilter

public EQLFilter(org.json.JSONObject jsonObject)
          throws org.json.JSONException,
                 java.lang.IllegalArgumentException,
                 java.lang.ClassNotFoundException,
                 java.lang.IllegalAccessException,
                 java.lang.InstantiationException,
                 java.lang.reflect.InvocationTargetException
Throws:
org.json.JSONException
java.lang.IllegalArgumentException
java.lang.ClassNotFoundException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.reflect.InvocationTargetException

EQLFilter

public EQLFilter(java.lang.String eqlFilter)
Method Detail

getEqlFilter

public java.lang.String getEqlFilter()

setEqlFilter

public void setEqlFilter(java.lang.String eqlFilter)

getSetters

public java.util.List<java.lang.reflect.Method> getSetters()
Description copied from class: QueryFunction
Return the list of property setters on this function. Must be implemented by subclass. Required for correct JSON serialization/deserialization support. For most subclasses, implementing this method should be simple, as long as your setter methods follow standard Java naming conventions (e.g. "setPropertyName(PropertyType)"). All you should need to write is:
 private static List setters = Reflection.getSetters(MyFunctionClass.class);
 \@Override
 public List getSetters() {
        return setters;
 }
 

Specified by:
getSetters in class QueryFunction
Returns:
the list of setters

getGetters

public java.util.List<java.lang.reflect.Method> getGetters()
Description copied from class: QueryFunction
Return the list of property getters on this function. Must be implemented by subclass. Required for correct JSON serialization/deserialization support. For most subclasses, implementing this method should be simple, as long as your getter methods follow standard Java naming conventions (e.g. "getPropertyName()"). All you should need to write is:
 private static List getters = Reflection.getGetters(MyFunctionClass.class);
 \@Override
 public List getGetters() {
        return getters;
 }
 

Specified by:
getGetters in class QueryFunction
Returns:
the list of getters

applyToENEQuery

public void applyToENEQuery(com.endeca.navigation.ENEQuery query)
Description copied from class: QueryFunction
Apply this function to an ENEQuery. Must be implemented by subclass.

Specified by:
applyToENEQuery in class QueryFunction

applyToDiscoveryServiceQuery

public void applyToDiscoveryServiceQuery(com.endeca.mdex.conversation.Request query)
                                  throws QueryFunctionUnsupportedException
Description copied from class: QueryFunction
Apply this function to a Request. Must be implemented by subclass.

Specified by:
applyToDiscoveryServiceQuery in class QueryFunction
Throws:
QueryFunctionUnsupportedException

toString

public java.lang.String toString()
Description copied from class: QueryFunction
This class' toString is abstract: all concrete subclasses are expected to provide an implementation. toString is used in comparing QueryFunction instances for equality, so if you implement a QueryFunction subclass it is important that your toString implementation be consistent and deterministic.

Specified by:
toString in class QueryFunction