atg.projects.store.assembler.navigation
Class PriceRangeNavigationStateProcessor

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

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

This navigation state processor determines whether price range is applied to the current search request and if not, adds NoPriceRange user segment to the navigation state. The NoPriceRange user segment allows us to configure brand landing page in XM to be displayed only when no other dimensions or price range are selected by the user.

Version:
$Id: //hosting-blueprint/B2CBlueprint/version/10.2.1/Endeca/Assembler/src/atg/projects/store/assembler/navigation/PriceRangeNavigationStateProcessor.java#1 $$Change: 812282 $
Author:
Natallia Paulouskaya

Field Summary
static java.lang.String CLASS_VERSION
          Class version string.
 
Constructor Summary
PriceRangeNavigationStateProcessor()
           
 
Method Summary
 java.lang.String getRangeFilterPropertyName()
          The range filter's property name to add dimension for.
 java.lang.String getUserSegment()
          Returns the user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.
 com.endeca.infront.navigation.UserState getUserState()
          Returns the userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.
 boolean isRangeFilterApplied(com.endeca.infront.navigation.NavigationState pNavigationState)
          Checks whether price range filter presents in the navigation state.
 void process(com.endeca.infront.navigation.NavigationState pNavigationState)
          Add the NoPriceRange user segment.
 void setRangeFilterPropertyName(java.lang.String pRangeFilterPropertyName)
          Sets the range filter's property name to add dimension for.
 void setUserSegment(java.lang.String pUserSegment)
          Sets the user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.
 void setUserState(com.endeca.infront.navigation.UserState pUserState)
          The userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

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

See Also:
Constant Field Values
Constructor Detail

PriceRangeNavigationStateProcessor

public PriceRangeNavigationStateProcessor()
Method Detail

getRangeFilterPropertyName

public java.lang.String getRangeFilterPropertyName()
The range filter's property name to add dimension for.

Returns:
The range filter's property name to add dimension for.

setRangeFilterPropertyName

public void setRangeFilterPropertyName(java.lang.String pRangeFilterPropertyName)
Sets the range filter's property name to add dimension for.

Parameters:
pRangeFilterPropertyName - - The range filter's property name to add dimension for.

setUserState

public void setUserState(com.endeca.infront.navigation.UserState pUserState)
The userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.

Parameters:
pUserState - - The userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.

getUserState

public com.endeca.infront.navigation.UserState getUserState()
Returns the userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.

Returns:
The userState object used to hold the user segment for use within Experience Manager to control routing the user to the brand landing page instead of the search results page.

setUserSegment

public void setUserSegment(java.lang.String pUserSegment)
Sets the user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.

Parameters:
pUserSegment - - The user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.

getUserSegment

public java.lang.String getUserSegment()
Returns the user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.

Returns:
The user segment to set on the user state and used within Experience Manager to control routing the user to the brand landing page instead of the search results page.

process

public void process(com.endeca.infront.navigation.NavigationState pNavigationState)
Add the NoPriceRange user segment. We only do this when there are no price range filters. This is because we only want to land on the brand landing page when only a brand is selected.

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

isRangeFilterApplied

public boolean isRangeFilterApplied(com.endeca.infront.navigation.NavigationState pNavigationState)
Checks whether price range filter presents in the navigation state.

Parameters:
pNavigationState - - The NavigationState object that holds the current search/range filters.
Returns:
true If price range filter presents in the navigation state.