atg.endeca.assembler.navigation
Class ExtendedNavigationStateBuilder

java.lang.Object
  extended by UrlNavigationStateBuilder
      extended by atg.endeca.assembler.navigation.ExtendedNavigationStateBuilder

public class ExtendedNavigationStateBuilder
extends UrlNavigationStateBuilder

The main feature added to the UrlNavigationStateBuilder is that our RecordFilterBuilders can be registered on it thus providing additional record filters to be added to the parsed filter state.
This class is NOT thread-safe


Field Summary
protected static java.lang.String CLASS_VERSION
          Class version string
 
Constructor Summary
ExtendedNavigationStateBuilder()
           
 
Method Summary
 NavigationStateProcessor[] getNavigationStateProcessors()
           
 RecordFilterBuilder[] getNonSecurityFilterBuilders()
           
 RangeFilterBuilder[] getRangeFilterBuilders()
           
 RecordFilterBuilder[] getRecordFilterBuilders()
           
 RecordFilterBuilder getSecurityFilterBuilder()
           
 RecordFilterBuilder[] getSecurityFilterBuilders()
           
protected  FilterState parseFilterState(UrlState pUrlState)
          Allows the security filter to be provided by securityFilterBuilder, thus allowing us to calculate security filter based on user profile, etc.
 NavigationState parseNavigationState(java.lang.String pQueryString, java.lang.String pPathInfo, java.lang.String pCharacterEncoding)
          Retrieve the NavigationStateProcessor component and invoke its process method passing in the NavigationState returned from calling super.
protected  java.util.List<RangeFilter> parseRangeFilters(UrlState urlState)
          Adds custom range filters provided by the rangeFilterBuilders property to the NavigationState.
protected  java.util.List<java.lang.String> parseRecordFilters(UrlState pUrlState)
          Adds custom record filters provided by record filter builders.
 void setNavigationStateProcessors(NavigationStateProcessor[] pNavigationStateProcessors)
           
 void setRangeFilterBuilders(RangeFilterBuilder[] pRangeFilterBuilders)
           
 void setRecordFilterBuilders(RecordFilterBuilder[] pRecordFilterBuilders)
           
static java.util.List<java.lang.String> splitRecordFilters(java.util.List<java.lang.String> pRecordFilters)
          For each record filter in the list the method checks whether the filter is a union of filters and if so splits it into individual record filters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

protected static final java.lang.String CLASS_VERSION
Class version string

See Also:
Constant Field Values
Constructor Detail

ExtendedNavigationStateBuilder

public ExtendedNavigationStateBuilder()
Method Detail

getRangeFilterBuilders

public RangeFilterBuilder[] getRangeFilterBuilders()
Returns:
An array of RangeFilterBuilders

setRangeFilterBuilders

public void setRangeFilterBuilders(RangeFilterBuilder[] pRangeFilterBuilders)

getRecordFilterBuilders

public RecordFilterBuilder[] getRecordFilterBuilders()
Returns:
the RecordFilterBuilders

setRecordFilterBuilders

public void setRecordFilterBuilders(RecordFilterBuilder[] pRecordFilterBuilders)
Parameters:
pRecordFilterBuilders - the recordFilterBuilders to set

getNonSecurityFilterBuilders

public RecordFilterBuilder[] getNonSecurityFilterBuilders()
Returns:
the non-security filter builders

getSecurityFilterBuilder

public RecordFilterBuilder getSecurityFilterBuilder()
Returns:
the security filter builder

getSecurityFilterBuilders

public RecordFilterBuilder[] getSecurityFilterBuilders()
Returns:
the security filter builders

getNavigationStateProcessors

public NavigationStateProcessor[] getNavigationStateProcessors()
Returns:
the mNavigationStateProcessors. NavigationStateProcessors are used to modify the NavigationState

setNavigationStateProcessors

public void setNavigationStateProcessors(NavigationStateProcessor[] pNavigationStateProcessors)
Parameters:
mNavigationStateProcessor - the mNavigationStateProcessor to set

parseRecordFilters

protected java.util.List<java.lang.String> parseRecordFilters(UrlState pUrlState)
                                                       throws NavigationException
Adds custom record filters provided by record filter builders. Only unique record filters are returned.

Throws:
NavigationException

parseRangeFilters

protected java.util.List<RangeFilter> parseRangeFilters(UrlState urlState)
                                                 throws NavigationException
Adds custom range filters provided by the rangeFilterBuilders property to the NavigationState.

Throws:
NavigationException

splitRecordFilters

public static java.util.List<java.lang.String> splitRecordFilters(java.util.List<java.lang.String> pRecordFilters)
For each record filter in the list the method checks whether the filter is a union of filters and if so splits it into individual record filters.

Parameters:
pRecordFilters - The initial list of record filters to split
Returns:
The list of split record filters.

parseFilterState

protected FilterState parseFilterState(UrlState pUrlState)
                                throws NavigationException
Allows the security filter to be provided by securityFilterBuilder, thus allowing us to calculate security filter based on user profile, etc. The calculated filter is anded with the default security filter. If no securityFilterBuilder is registered or the registered securityFilterBuilder returns null, uses the default security filter provided by the default filter state.

Throws:
NavigationException

parseNavigationState

public NavigationState parseNavigationState(java.lang.String pQueryString,
                                            java.lang.String pPathInfo,
                                            java.lang.String pCharacterEncoding)
                                     throws NavigationException
Retrieve the NavigationStateProcessor component and invoke its process method passing in the NavigationState returned from calling super.

Throws:
NavigationException