# State Manager class summary

This topic summarizes the State Manager class.

An MDEX State Manager is any concrete class that extends from com.endeca.portal.data.AbstractMDEXStateManager. This class serves as a data source state manager that can be used to customize how data sources interact with each other during updates and query construction.

Abstract base class | com.endeca.portal.data.AbstractMDEXStateManager
Default implementation class | com.endeca.portal.data.DefaultMDEXStateManager
Description | Handles data source state updates and pre-execution query modification, based on data source relationships and configuration.
Default implementation behavior | The default state manager implementation makes use of the ParentDataSource property defined in data source configurations in order to propagate state changes throughout a hierarchy of data source relationships. When a portlet modifies the query state of its data source, that modification is applied to its parent data source and is also applied to all children of that parent. It is recursive in that it will apply all the way up and back down an ancestor tree. This allows application developers to create more advanced interfaces, such as tabbed result sets where a single Guided Navigation component should control the query state for Results Table components in individual tabs, by establishing a relationship hierarchy in data source configurations.