com.endeca.portal.data
Class DefaultMDEXStateManager

java.lang.Object
  extended by com.endeca.portal.data.AbstractMDEXStateManager
      extended by com.endeca.portal.data.DefaultMDEXStateManager
All Implemented Interfaces:
java.io.Serializable

public class DefaultMDEXStateManager
extends AbstractMDEXStateManager

This is a simple implementation of MDEXStateManager covering a very simple parent-child relationship of data sources. This model covers data sources with a single ancestor, and allows child data sources to add additional static functions to queries inherited from their ancestor. These static functions are whatever functions were configured in the data source's 'baseFunctions' property. "setting" a query on a data source with an ancestor results in actually setting the query on the ancestor, sans whatever static functions were initially configured on the child. This implementation can be useful for simplistic applications where either no relationships exist between MDEXStates or where they are only used to, for example, put RecordType filters (or some other static record filter) on different pages/tabs that otherwise share the same query state.

Author:
wfleming
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.endeca.portal.data.AbstractMDEXStateManager
logger
 
Constructor Summary
DefaultMDEXStateManager()
          default constructor
 
Method Summary
protected  java.util.List<QueryFunction> getSubtractedFilterList(QueryState baseState, QueryState stateToSubtract)
           
 QueryState handleStateMerge(javax.portlet.PortletRequest request, MDEXState mdexState)
          Handle query-time determination of the query a portlet should fire before the portlet requests execution
 void handleStateUpdate(javax.portlet.PortletRequest request, MDEXState mdexState, QueryState newQueryState)
          Encapsulate data source update logic.
 
Methods inherited from class com.endeca.portal.data.AbstractMDEXStateManager
addEventTrigger, handleStateReset, processRefinementsToAdd
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultMDEXStateManager

public DefaultMDEXStateManager()
default constructor

Method Detail

handleStateMerge

public QueryState handleStateMerge(javax.portlet.PortletRequest request,
                                   MDEXState mdexState)
                            throws QueryStateException
Description copied from class: AbstractMDEXStateManager
Handle query-time determination of the query a portlet should fire before the portlet requests execution

Specified by:
handleStateMerge in class AbstractMDEXStateManager
Returns:
the portlet-visible QueryState as determined by the request and mdexState
Throws:
QueryStateException

handleStateUpdate

public void handleStateUpdate(javax.portlet.PortletRequest request,
                              MDEXState mdexState,
                              QueryState newQueryState)
                       throws QueryStateException
Description copied from class: AbstractMDEXStateManager
Encapsulate data source update logic. This method will be called any time a DataSource's QueryState is updated.

Specified by:
handleStateUpdate in class AbstractMDEXStateManager
Throws:
QueryStateException

getSubtractedFilterList

protected java.util.List<QueryFunction> getSubtractedFilterList(QueryState baseState,
                                                                QueryState stateToSubtract)