atg.endeca.assembler.cartridge.renderer
Class SelectorReplacementValueProducer

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.endeca.assembler.cartridge.renderer.SelectorReplacementValueProducer
All Implemented Interfaces:
ReplacementValueProducer, atg.naming.AbsoluteNameable, NameContextBindingListener, NameContextElement, atg.naming.NameContextParentable, NameResolver, AdminableService, atg.nucleus.Configured, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, java.util.EventListener

public class SelectorReplacementValueProducer
extends GenericService
implements ReplacementValueProducer

This ReplacementValueProducer is used to determine the value for place holders when attempting to resolve the path to a renderer (usually a JSP) for a particular ContentItem type. addReplacementValues is the key method within this class.

Created: May 22 2012


Field Summary
static java.lang.String ATTR_SELECTOR
          Override attribute for selector
static java.lang.String CLASS_VERSION
          Class version string
static java.lang.String PARAM_SELECTOR
          Parameter name for selector extension override.
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
SelectorReplacementValueProducer()
           
 
Method Summary
 void addReplacementValues(java.util.Map<java.lang.String,java.lang.String> pMap, ContentItem pContentItem, javax.servlet.http.HttpServletRequest pRequest)
          Add any replacement values to pMap.
protected  java.lang.String calculateSelector(ContentItem pContentItem, javax.servlet.http.HttpServletRequest pRequest)
          Do the work of calculating the selector.
 java.util.LinkedHashMap<java.lang.String,java.lang.String> getBrowserTypeToSelectorName()
          Returns property browserTypeToSelectorName.
 java.lang.String getSelectorKeyName()
          Returns property selectorKeyName.
 java.lang.String getSelectorOverrideParameterName()
          Returns property selectorOverrideParameterName.
 java.lang.String getSelectorSuffixKeyName()
          Returns property selectorSuffixKeyName.
 boolean isCacheSelectorOnRequest()
          Returns property cacheSelectorOnRequest.
 void setBrowserTypeToSelectorName(java.util.LinkedHashMap<java.lang.String,java.lang.String> pBrowserTypeToSelectorName)
          Sets property browserTypeToSelectorName.
 void setCacheSelectorOnRequest(boolean pCacheSelectorOnRequest)
          Sets property cacheSelectorOnRequest.
 void setSelectorKeyName(java.lang.String pSelectorKeyName)
          Sets property selectorKeyName.
 void setSelectorOverrideParameterName(java.lang.String pSelectorOverrideParameterName)
          Sets property selectorOverrideParameterName.
 void setSelectorSuffixKeyName(java.lang.String pSelectorSuffixKeyName)
          Sets property selectorSuffixKeyName.
protected  java.lang.String trimToNull(java.lang.String pString)
          If pString is null or empty, return null.
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string


PARAM_SELECTOR

public static final java.lang.String PARAM_SELECTOR
Parameter name for selector extension override.

See Also:
Constant Field Values

ATTR_SELECTOR

public static final java.lang.String ATTR_SELECTOR
Override attribute for selector

See Also:
Constant Field Values
Constructor Detail

SelectorReplacementValueProducer

public SelectorReplacementValueProducer()
Method Detail

setSelectorKeyName

public void setSelectorKeyName(java.lang.String pSelectorKeyName)
Sets property selectorKeyName. The key to associate with the calculated selector.


getSelectorKeyName

public java.lang.String getSelectorKeyName()
Returns property selectorKeyName. The key to associate with the calculated selector.


setSelectorSuffixKeyName

public void setSelectorSuffixKeyName(java.lang.String pSelectorSuffixKeyName)
Sets property selectorSuffixKeyName. The key to associate with the selector suffix, which is the selector prefixed with "_".


getSelectorSuffixKeyName

public java.lang.String getSelectorSuffixKeyName()
Returns property selectorSuffixKeyName. The key to associate with the selector suffix, which is the selector prefixed with "_".


setSelectorOverrideParameterName

public void setSelectorOverrideParameterName(java.lang.String pSelectorOverrideParameterName)
Sets property selectorOverrideParameterName. The name of the request parameter that can be used to set the selector.


getSelectorOverrideParameterName

public java.lang.String getSelectorOverrideParameterName()
Returns property selectorOverrideParameterName. The name of the request parameter that can be used to set the selector.


setBrowserTypeToSelectorName

public void setBrowserTypeToSelectorName(java.util.LinkedHashMap<java.lang.String,java.lang.String> pBrowserTypeToSelectorName)
Sets property browserTypeToSelectorName. Maps from browser type name to selector name.


getBrowserTypeToSelectorName

public java.util.LinkedHashMap<java.lang.String,java.lang.String> getBrowserTypeToSelectorName()
Returns property browserTypeToSelectorName. Maps from browser type name to selector name.


setCacheSelectorOnRequest

public void setCacheSelectorOnRequest(boolean pCacheSelectorOnRequest)
Sets property cacheSelectorOnRequest. Whether to cache the selector as an attribute on the request.


isCacheSelectorOnRequest

public boolean isCacheSelectorOnRequest()
Returns property cacheSelectorOnRequest. Whether to cache the selector as an attribute on the request.


trimToNull

protected java.lang.String trimToNull(java.lang.String pString)
If pString is null or empty, return null. Otherwise, return a trimmed version.

Parameters:
pString - the source string
Returns:
the trimmed string or null.

calculateSelector

protected java.lang.String calculateSelector(ContentItem pContentItem,
                                             javax.servlet.http.HttpServletRequest pRequest)
Do the work of calculating the selector. Here, we run through the browser types until we hit a match. Also check our getSelectorOverrideParameterName().

Parameters:
pContentItem - the content item we are using.
pRequest - the current request.
Returns:
the calculated selector string, or null.

addReplacementValues

public void addReplacementValues(java.util.Map<java.lang.String,java.lang.String> pMap,
                                 ContentItem pContentItem,
                                 javax.servlet.http.HttpServletRequest pRequest)
Description copied from interface: ReplacementValueProducer
Add any replacement values to pMap. Note that a given instance may add a single value, multiple values, or none.

Specified by:
addReplacementValues in interface ReplacementValueProducer
Parameters:
pMap - the map to add parameters to.
pContentItem - the ContentItem (available for reference and calculating replacement values based on the content item). ContentItem should not be modified.
pRequest - the current request. May be null, if invoked outside of a request.