atg.projects.store.assembler.navigation
Class StoreNavigationStateProcessor

java.lang.Object
  extended by atg.projects.store.assembler.navigation.StoreNavigationStateProcessor
All Implemented Interfaces:
atg.endeca.assembler.navigation.NavigationStateProcessor

public class StoreNavigationStateProcessor
extends java.lang.Object
implements atg.endeca.assembler.navigation.NavigationStateProcessor

The navigation state is processed to determine if it represents a user catalog navigation and if so a user segment is added to the user state object. This user segment is used within Experience Manager to route the user to the search results page or category page accordingly.


Field Summary
 
Fields inherited from interface atg.endeca.assembler.navigation.NavigationStateProcessor
CLASS_VERSION
 
Constructor Summary
StoreNavigationStateProcessor()
           
 
Method Summary
protected  void addCatalogUserState(com.endeca.infront.navigation.NavigationState pNavigationState)
          Add the CategoryNavigation user segment.
 CatalogNavigationService getCatalogNavigation()
           
 atg.commerce.endeca.cache.DimensionValueCacheTools getDimensionValueCacheTools()
           
 java.lang.String getUserSegment()
           
 com.endeca.infront.navigation.UserState getUserState()
           
 void process(com.endeca.infront.navigation.NavigationState pNavigationState)
          Process the navigation state to determine if it represents a user catalog navigation and update the details on the catalog navigation tracking component and set the user segment on the user state for routing the user to the category page.
 void setCatalogNavigation(CatalogNavigationService pCatalogNavigationService)
           
 void setDimensionValueCacheTools(atg.commerce.endeca.cache.DimensionValueCacheTools pDimensionValueCacheTools)
           
 void setUserSegment(java.lang.String pUserSegment)
           
 void setUserState(com.endeca.infront.navigation.UserState pUserState)
           
protected  void updateCatalogNavigation(java.lang.String pCategoryId, java.util.List<java.lang.String> pAncestors)
          Update the catalog navigation component.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StoreNavigationStateProcessor

public StoreNavigationStateProcessor()
Method Detail

setUserSegment

public void setUserSegment(java.lang.String pUserSegment)
Parameters:
pUserSegment - User segment to set on the user state and used within Experience Manager to control routing the user to the category page instead of the search results page.

getUserSegment

public java.lang.String getUserSegment()
Returns:
userSegment

setUserState

public void setUserState(com.endeca.infront.navigation.UserState pUserState)
Parameters:
pUserState - UserState object used to hold the user segment for use within Experience Manager to control routing the user to the category page instead of the search results page.

getUserState

public com.endeca.infront.navigation.UserState getUserState()
Returns:
userState

setDimensionValueCacheTools

public void setDimensionValueCacheTools(atg.commerce.endeca.cache.DimensionValueCacheTools pDimensionValueCacheTools)
Parameters:
pDimensionValueCacheTools - Set a new dimensionValueCacheTools

getDimensionValueCacheTools

public atg.commerce.endeca.cache.DimensionValueCacheTools getDimensionValueCacheTools()
Returns:
The utility class for access to the ATG<->Endeca catalog cache.

setCatalogNavigation

public void setCatalogNavigation(CatalogNavigationService pCatalogNavigationService)
Parameters:
pCatalogNavigationService - Set a new catalogNavigationService

getCatalogNavigation

public CatalogNavigationService getCatalogNavigation()
Returns:
Component used to track users catalog navigation.

process

public void process(com.endeca.infront.navigation.NavigationState pNavigationState)
Process the navigation state to determine if it represents a user catalog navigation and update the details on the catalog navigation tracking component and set the user segment on the user state for routing the user to the category page.

Specified by:
process in interface atg.endeca.assembler.navigation.NavigationStateProcessor

updateCatalogNavigation

protected void updateCatalogNavigation(java.lang.String pCategoryId,
                                       java.util.List<java.lang.String> pAncestors)
Update the catalog navigation component.

Parameters:
pCategoryId - The categoryId to set as the last browsed category.
pAncestors - The ancestor category ids.

addCatalogUserState

protected void addCatalogUserState(com.endeca.infront.navigation.NavigationState pNavigationState)
Add the CategoryNavigation user segment. We only do this when there are no search filters or range filters. This is because we only want to land on the category page when only a category is selected.

Parameters:
pNavigationState -