com.endeca.portal.data.functions
Class RefinementFilter

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.RefinementFilter
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class RefinementFilter
extends QueryFilter

Defines a single refinement (essentially represents a DimVal and its path) to be added to a QueryState.

See Also:
Serialized Form

Nested Class Summary
static class RefinementFilter.MultiSelect
           
 
Field Summary
static java.lang.String JSON_CONFIG_DIM_VAL_ID
           
static java.lang.String JSON_CONFIG_DIMENSION_ID
           
static java.lang.String JSON_CONFIG_MULTI_SELECT
           
static java.lang.String JSON_CONFIG_NAVIGABLE
           
 
Fields inherited from class com.endeca.portal.data.functions.QueryFunction
CLASS_PROPERTY, operator
 
Constructor Summary
protected RefinementFilter()
          Empty constructor is not public, to nudge users toward one of the more useful constructors.
  RefinementFilter(com.endeca.navigation.DimVal dimVal)
           
  RefinementFilter(org.json.JSONObject jsonObject)
          Constructs a refinement filter with values specified in the jsonObject.
  RefinementFilter(com.endeca.mdex.conversation.Operator operator)
           
  RefinementFilter(java.lang.String dimValId, java.lang.String dimensionId)
          Constructs a refinement filter with the specified dimension value ID and parent dimension ID, defaulting to multiselect "none" and defaulting navigable to "true."
  RefinementFilter(java.lang.String dimValId, java.lang.String dimensionId, RefinementFilter.MultiSelect multiSelect)
          Constructs a refinement filter with the specified dimension value ID, parent dimension ID, and multiselect value and defaulting navigable to "true."
  RefinementFilter(java.lang.String dimValId, java.lang.String dimensionId, RefinementFilter.MultiSelect multiSelect, boolean navigable)
          Constructs a refinement filter with the specified dimension value ID, parent dimension ID, multiselect value and navigable value.
  RefinementFilter(java.lang.String dimValId, java.lang.String dimensionId, java.lang.String multiSelect)
          Constructs a refinement filter with the specified dimension value ID, parent dimension ID, and multiselect value (as parsed by parseMultiSelect method) and defaulting navigable to "true."
  RefinementFilter(java.lang.String dimValId, java.lang.String dimensionId, java.lang.String multiSelect, boolean navigable)
          Constructs a refinement filter with the specified dimension value ID, parent dimension ID, multiselect value (as parsed by parseMultiSelect method) and navigable value.
 
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.
static org.json.JSONObject createJSONFromDimVal(com.endeca.navigation.DimVal dimVal)
           
 java.lang.String getDimensionId()
           
 java.lang.String getDimValId()
           
 java.util.List<java.lang.reflect.Method> getGetters()
          Return the list of property getters on this function.
 RefinementFilter.MultiSelect getMultiSelect()
           
 java.util.List<java.lang.reflect.Method> getSetters()
          Return the list of property setters on this function.
 boolean isMultiSelectAnd()
           
 boolean isMultiSelectOr()
           
 boolean isNavigable()
           
 void setDimensionId(java.lang.String dimensionId)
           
 void setDimValId(java.lang.String dimValId)
           
 void setMultiSelect(RefinementFilter.MultiSelect multiSelect)
           
 void setMultiSelect(java.lang.String multiSelectStr)
           
 void setNavigable(boolean navigable)
           
 void setNavigable(java.lang.String navigable)
           
 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
 

Field Detail

JSON_CONFIG_DIM_VAL_ID

public static final java.lang.String JSON_CONFIG_DIM_VAL_ID
See Also:
Constant Field Values

JSON_CONFIG_DIMENSION_ID

public static final java.lang.String JSON_CONFIG_DIMENSION_ID
See Also:
Constant Field Values

JSON_CONFIG_MULTI_SELECT

public static final java.lang.String JSON_CONFIG_MULTI_SELECT
See Also:
Constant Field Values

JSON_CONFIG_NAVIGABLE

public static final java.lang.String JSON_CONFIG_NAVIGABLE
See Also:
Constant Field Values
Constructor Detail

RefinementFilter

protected RefinementFilter()
Empty constructor is not public, to nudge users toward one of the more useful constructors.


RefinementFilter

public RefinementFilter(java.lang.String dimValId,
                        java.lang.String dimensionId)
Constructs a refinement filter with the specified dimension value ID and parent dimension ID, defaulting to multiselect "none" and defaulting navigable to "true."

Parameters:
dimValId -
dimensionId -

RefinementFilter

public RefinementFilter(java.lang.String dimValId,
                        java.lang.String dimensionId,
                        java.lang.String multiSelect)
Constructs a refinement filter with the specified dimension value ID, parent dimension ID, and multiselect value (as parsed by parseMultiSelect method) and defaulting navigable to "true."

Parameters:
dimValId -
dimensionId -
multiSelect -

RefinementFilter

public RefinementFilter(java.lang.String dimValId,
                        java.lang.String dimensionId,
                        RefinementFilter.MultiSelect multiSelect)
Constructs a refinement filter with the specified dimension value ID, parent dimension ID, and multiselect value and defaulting navigable to "true."

Parameters:
dimValId -
dimensionId -
multiSelect -

RefinementFilter

public RefinementFilter(java.lang.String dimValId,
                        java.lang.String dimensionId,
                        java.lang.String multiSelect,
                        boolean navigable)
Constructs a refinement filter with the specified dimension value ID, parent dimension ID, multiselect value (as parsed by parseMultiSelect method) and navigable value.

Parameters:
dimValId -
dimensionId -
multiSelect -
navigable -

RefinementFilter

public RefinementFilter(java.lang.String dimValId,
                        java.lang.String dimensionId,
                        RefinementFilter.MultiSelect multiSelect,
                        boolean navigable)
Constructs a refinement filter with the specified dimension value ID, parent dimension ID, multiselect value and navigable value.

Parameters:
dimValId -
dimensionId -
multiSelect -
navigable -

RefinementFilter

public RefinementFilter(org.json.JSONObject jsonObject)
                 throws org.json.JSONException
Constructs a refinement filter with values specified in the jsonObject.

Parameters:
jsonObject - json object representing the refinement filter state *
Throws:
org.json.JSONException

RefinementFilter

public RefinementFilter(com.endeca.navigation.DimVal dimVal)

RefinementFilter

public RefinementFilter(com.endeca.mdex.conversation.Operator operator)
Method Detail

getDimValId

public java.lang.String getDimValId()

setDimValId

public void setDimValId(java.lang.String dimValId)

getDimensionId

public java.lang.String getDimensionId()

setDimensionId

public void setDimensionId(java.lang.String dimensionId)

getMultiSelect

public RefinementFilter.MultiSelect getMultiSelect()

setMultiSelect

public void setMultiSelect(RefinementFilter.MultiSelect multiSelect)

setMultiSelect

public void setMultiSelect(java.lang.String multiSelectStr)

setNavigable

public void setNavigable(boolean navigable)

setNavigable

public void setNavigable(java.lang.String navigable)

isMultiSelectOr

public boolean isMultiSelectOr()

isMultiSelectAnd

public boolean isMultiSelectAnd()

isNavigable

public boolean isNavigable()

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

createJSONFromDimVal

public static org.json.JSONObject createJSONFromDimVal(com.endeca.navigation.DimVal dimVal)
                                                throws org.json.JSONException
Throws:
org.json.JSONException

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