The ATG-Endeca integration includes the /atg/endeca/assembler/cartridge/handler/ResultsList
component. This component’s class, atg.endeca.assembler.cartridge.handler.ResultsListHandler
, overwrites the com.endeca.infront.cartridge.ResultsListHandler
class and includes an additional sorters
property of type atg.Nucleus.ServiceMap
. The keys of this ServiceMap
are descriptive names for the sorting options and the values are the components that perform the actual sorting. Out of the box, the ResultsList
component sets the sorters
property as follows:
sorters=\ NameDescending=/atg/endeca/assembler/cartridge/sort/NameDescending,\ Relevance=/atg/endeca/assembler/cartridge/sort/Relevance,\ NameAscending=/atg/endeca/assembler/cartridge/sort/NameAscending,\
The atg.endeca.assembler.cartridge.handler.ResultsListHandler.setSorters()
method transforms the sorters
ServiceMap
into a List
of com.endeca.infront.cartridge.model.SortOptionConfig
components. It then passes that List
when it calls the com.endeca.infront.cartridge.model.SortOptionConfig.setSortOptions()
method to set the sort options. This technique of creating a ServiceMap
and then using it to create a List
of components is necessary because Nucleus cannot set Lists
of components directly.