atg.projects.store.assembler.cartridge.handler
Class TargetedItemsHandler

java.lang.Object
  extended by com.endeca.infront.cartridge.NavigationCartridgeHandler<com.endeca.infront.assembler.ContentItem,TargetedItemsContentItem>
      extended by atg.projects.store.assembler.cartridge.handler.TargetedItemsHandler
All Implemented Interfaces:
com.endeca.infront.assembler.CartridgeHandler<com.endeca.infront.assembler.ContentItem>

public class TargetedItemsHandler
extends com.endeca.infront.cartridge.NavigationCartridgeHandler<com.endeca.infront.assembler.ContentItem,TargetedItemsContentItem>

TargetedItemsHandler adds prefix to configured in cartridge component if needed, resolves targeter component, targets for mItemCount of items and set them in TargeterItems. Properties: sourceMap - targeting source map to be used during targeting. Represents a mapping between source names used in a targeting operation and their Nucleus paths. sourceMap is used to obtain a NameResolver object and passes it to the Targeter, which uses the NameResolver to resolve the names of source objects associated with a targeting operation. itemDescriptor - descriptor of item that should be returned be this targeter pathPrefix - prefix for targeter components.


Field Summary
protected static java.lang.String COMPONENT_PATH
           
protected static java.lang.String COMPONENT_PATH_SEPARATOR
           
protected static int DEFAULT_ITEMS_AMOUNT
           
protected static java.lang.String ITEM_COUNT
           
 
Constructor Summary
TargetedItemsHandler()
           
 
Method Summary
 java.lang.String getItemDescriptor()
           
 java.lang.String getPathPrefix()
           
 atg.repository.Repository getRepository()
           
 atg.targeting.TargetingSourceMap getSourceMap()
           
 void preprocess(com.endeca.infront.assembler.ContentItem pContentItem)
           
 TargetedItemsContentItem process(com.endeca.infront.assembler.ContentItem pCartridgeConfig)
          This method builds full targeter\slot component path is build using component path configured in Experience Manager and pathPrefix property.
 void setItemDescriptor(java.lang.String pItemDescriptor)
           
 void setPathPrefix(java.lang.String pPathPrefix)
           
 void setRepository(atg.repository.Repository pRepository)
           
 void setSourceMap(atg.targeting.TargetingSourceMap pSourceMap)
           
protected  com.endeca.infront.assembler.ContentItem wrapConfig(com.endeca.infront.assembler.ContentItem pContentitem)
          Create a new BasicContentItem using the passed in ContentItem
 
Methods inherited from class com.endeca.infront.cartridge.NavigationCartridgeHandler
createMdexRequest, dispatchNavigationEventInformation, executeMdexRequest, getActionPathProvider, getContentItemInitializer, getMdexRequestBroker, getNavigationState, initialize, populateNavigationPathDefaults, setActionPathProvider, setContentItemInitializer, setMdexRequestBroker, setNavigationState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPONENT_PATH_SEPARATOR

protected static final java.lang.String COMPONENT_PATH_SEPARATOR
See Also:
Constant Field Values

COMPONENT_PATH

protected static final java.lang.String COMPONENT_PATH
See Also:
Constant Field Values

ITEM_COUNT

protected static final java.lang.String ITEM_COUNT
See Also:
Constant Field Values

DEFAULT_ITEMS_AMOUNT

protected static final int DEFAULT_ITEMS_AMOUNT
See Also:
Constant Field Values
Constructor Detail

TargetedItemsHandler

public TargetedItemsHandler()
Method Detail

getPathPrefix

public java.lang.String getPathPrefix()
Returns:
the pathPrefix

setPathPrefix

public void setPathPrefix(java.lang.String pPathPrefix)
Parameters:
pPathPrefix - the pathPrefix to set

getItemDescriptor

public java.lang.String getItemDescriptor()
Returns:
the itemDescriptor

setItemDescriptor

public void setItemDescriptor(java.lang.String pItemDescriptor)
Parameters:
pItemDescriptor - the itemDescriptor to set

getRepository

public atg.repository.Repository getRepository()
Returns:
the repository

setRepository

public void setRepository(atg.repository.Repository pRepository)
Parameters:
pRepository - the repository to set

getSourceMap

public atg.targeting.TargetingSourceMap getSourceMap()
Returns:
the mSourceMap

setSourceMap

public void setSourceMap(atg.targeting.TargetingSourceMap pSourceMap)
Parameters:
pSourceMap - the sourceMap to set

wrapConfig

protected com.endeca.infront.assembler.ContentItem wrapConfig(com.endeca.infront.assembler.ContentItem pContentitem)
Create a new BasicContentItem using the passed in ContentItem

Specified by:
wrapConfig in class com.endeca.infront.cartridge.NavigationCartridgeHandler<com.endeca.infront.assembler.ContentItem,TargetedItemsContentItem>

preprocess

public void preprocess(com.endeca.infront.assembler.ContentItem pContentItem)
                throws com.endeca.infront.assembler.CartridgeHandlerException
Specified by:
preprocess in interface com.endeca.infront.assembler.CartridgeHandler<com.endeca.infront.assembler.ContentItem>
Overrides:
preprocess in class com.endeca.infront.cartridge.NavigationCartridgeHandler<com.endeca.infront.assembler.ContentItem,TargetedItemsContentItem>
Throws:
com.endeca.infront.assembler.CartridgeHandlerException

process

public TargetedItemsContentItem process(com.endeca.infront.assembler.ContentItem pCartridgeConfig)
                                 throws com.endeca.infront.assembler.CartridgeHandlerException
This method builds full targeter\slot component path is build using component path configured in Experience Manager and pathPrefix property. Then the targeter\slot component is resolved and itemCount items are targeted. Items returned by slot\targeter should be of type itemDescriptor. Only items of this type will be put in TargetedItemsContentItem. If item of another type is found, error will be logged. If itemCount is not set, then all items returned by slot or targeter of type itemDescriptor will be put in TargetedItemsContentItem.

Specified by:
process in interface com.endeca.infront.assembler.CartridgeHandler<com.endeca.infront.assembler.ContentItem>
Overrides:
process in class com.endeca.infront.cartridge.NavigationCartridgeHandler<com.endeca.infront.assembler.ContentItem,TargetedItemsContentItem>
Throws:
com.endeca.infront.assembler.CartridgeHandlerException