atg.endeca.index
Class EndecaIndexingOutputConfig

java.lang.Object
  extended by java.rmi.server.RemoteObject
      extended by java.rmi.server.RemoteServer
          extended by java.rmi.server.UnicastRemoteObject
              extended by atg.core.net.RegisteringUnicastRemoteObject
                  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingRMIImpl
                      extended by atg.nucleus.GenericRMIService
                          extended by atg.repository.search.indexing.IndexingOutputConfig
                              extended by atg.endeca.index.EndecaIndexingOutputConfig
All Implemented Interfaces:
Indexable, atg.naming.AbsoluteNameable, NameContextBindingListener, NameContextElement, atg.naming.NameContextParentable, NameResolver, AdminableService, atg.nucleus.Configured, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, atg.nucleus.PostStartupAction, Service, ServiceListener, atg.repository.search.indexing.IndexingConstants, atg.repository.search.indexing.IndexingSynchronization, atg.repository.search.indexing.RemoteIndexingOutputConfig, Schedulable, java.io.Serializable, java.rmi.Remote, java.util.EventListener

public class EndecaIndexingOutputConfig
extends atg.repository.search.indexing.IndexingOutputConfig
implements Indexable

A subclass of IndexingOutputConfig that adds Endeca-specific behaviors. Currently does property ouputName mangling to make it easy to generate property names in an endeca friendly format.

In addition, "merges" duplicate equivalent meta/text properties by suppressing the text property, since Endeca properties only have on namespace (as opposed to ATG search properties, which have a separate meta and text namespace).

Created: November 09 2011

See Also:
PropertyNameMunger, OutputPropertyMerger, Serialized Form

Nested Class Summary
 class EndecaIndexingOutputConfig.ContextStatusReporter
          Return a status reporter that wraps a Context.
static interface EndecaIndexingOutputConfig.LoaderResultsWrapper
          A interface wrapper around loader results.
 
Field Summary
static java.lang.String CLASS_VERSION
          Class version string
static java.lang.String CONTEXT_STATUS_REPORTER
           
protected  java.util.Set<atg.repository.search.indexing.specifier.OutputProperty> mSetOutputProperties
          The set of known output properties.
 
Fields inherited from class atg.repository.search.indexing.IndexingOutputConfig
DEFAULT_SITE_INDEX_INFO_SERVICE, mDocumentSubmitterTL, mJobId, REQUIRED_DOCUMENT_OUTPUT_PROPERTIES, REQUIRED_EVERY_ITEM_OUTPUT_PROPERTIES, serialVersionUID
 
Fields inherited from class atg.nucleus.GenericRMIService
SERVICE_INFO_KEY
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface atg.repository.search.indexing.IndexingConstants
BASE_URL_OUTPUT_PROPERTY_NAME, CONTEXT_OUTPUT_PROPERTY_NAME, DEFAULT_FORMATTER_KEY, DELETED_ITEM_CONTEXT_ATTRIBUTE_NAME, DOCUMENT_ID_OUTPUT_PROPERTY_NAME, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE, PROP_TYPE_ENUM, PROP_TYPE_FLOAT, PROP_TYPE_INTEGER, PROP_TYPE_STRING, PROP_TYPE_TEXT, PROP_TYPE_UNKNOWN, SITE_CONTEXT_ATTRIBUTE_NAME, SITE_CONTEXT_PROPERTY_NAME, URL_OUTPUT_PROPERTY_NAME
 
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
EndecaIndexingOutputConfig()
          Createa new instance, setting the default formatter to an instance of EndecaPropertyFormatter
 
Method Summary
protected  void addDefaultOutputNameReplacements()
          Add the default output name replacements.
protected  java.lang.String[] addInStrings(java.lang.String[] pStrings, java.lang.String[] pRequiredStrings)
          In this case, we are overriding the add in strings to parse out disallowed flags, and make it smarter about not stomping all over explicit settings.
 void afterSessionStart(atg.repository.search.indexing.Context pContext)
           
 void calculateOutputPropertyNames()
           
protected  void calculateSourcePropertyPathToOutputProperty()
          Populate the sourcePropertyPathToOutputProperty property.
 boolean cancel(IndexingTask pTask, boolean pBaseline)
          Cancel the currently in-process performBulkLoad or processQueuedIncrementalUpdates.
protected  javax.servlet.Servlet createAdminServlet()
          Creates and returns a new Servlet that will administer this service.
protected  atg.search.index.IndexInfo createDefaultIndexInfo()
          Create default IndexInfo for indexing tasks that do no supply an IndexInfo.
protected  void createEmptyTransformationRecords(boolean pMeta)
          Create empty transformation records for all known properties.
protected  atg.repository.search.indexing.specifier.OutputItemSpecifier createOutputItemSpecifier()
          Returns EndecaOutputItemSpecifier that is aware of endeca-specific properties.
 atg.repository.search.indexing.Context createTestContext()
          Create a Context for testing or other non-indexing use.
 atg.search.index.IndexInfo createTestIndexInfo()
           
 void doStartService()
          This is called after a Service has been created, placed into the naming hierarchy, and initialized with its configured property values.
 java.util.List<Record> generateTestRecords(java.lang.String pId)
          Generate test records.
 java.util.List<atg.repository.search.indexing.specifier.OutputProperty> getAllOutputProperties()
          Return all known output properties.
 java.lang.String[] getDisallowedRequiredFlags()
          Returns property disallowedRequiredFlags.
 java.lang.String[] getDocumentLevelOutputProperties()
          Get the list of output properties that will be added to every repository item.
 java.lang.String[] getExcludedItemsAncestorIds()
          Returns property excludedItemsAncestorIds
 java.lang.String getIdOutputPropertyName()
          Returns property idOutputPropertyName.
 IndexingApplicationConfiguration getIndexingApplicationConfiguration()
          Returns property indexingApplicationConfiguration.
 java.util.Set<java.lang.String> getIndexingOutputConfigPaths()
          Return the set of IndexingOutputConfigs associated with this Indexable.
 java.util.Locale[] getLocales()
          Returns property locales.
 boolean getMultiLanguageSynonyms()
          Returns property multiLanguageSynonyms
 java.util.List<atg.repository.search.indexing.specifier.OutputProperty> getOutputPropertiesAccessible(boolean pMeta)
          A publically accessible form of getOutputProperties.
 java.util.Map<atg.repository.search.indexing.specifier.OutputProperty,PropertyTransformationRecord> getOutputPropertyToTransformations()
          Return the outputPropertyToTransformations property.
 java.util.LinkedHashMap<java.lang.String,java.lang.String> getPrefixReplacementMap()
          Returns property prefixReplacementMap.
 java.lang.String[] getReplaceWithTypePrefixes()
          Returns property replaceWithTypePrefixes.
 char getSeparator()
          Returns property mSeparator.
 java.util.Set<atg.repository.search.indexing.specifier.OutputProperty> getSetOutputProperties()
          Return the setOutputProperties property.
 java.lang.String[] getSiteIDsToIndex()
          Returns property siteIDsToIndex.
 RepositoryItem[] getSitesToIndex()
          Returns property getCatalogsForSitesToIndex.
 java.util.Map<java.lang.String,atg.repository.search.indexing.specifier.OutputProperty> getSourcePropertyPathToOutputProperty()
          Returns property sourcePropertyPathToOutputProperty.
 java.util.LinkedHashMap<java.lang.String,java.lang.String> getSuffixReplacementMap()
          Returns property suffixReplacementMap.
 java.lang.String getTestRecordId()
           
 PropertyTransformationRecord getTransformationRecord(atg.repository.search.indexing.specifier.OutputProperty pProperty)
          Get the transformation record for the specified output property, created it if needed.
 boolean isAddDefaultOutputNameReplacements()
          Returns property addDefaultOutputNameReplacements.
 boolean isForceToBaseline()
          The method is called before starting partial indexing job for all Indexable to allow forcing the job to baseline indexing.
 boolean isForceToBaselineOnChange()
          Returns property forceToBaselineOnChange
 boolean isLoggingDebugPropertyMerging()
          Returns property loggingDebugPropertyMerging.
 boolean isNeededForIncremental()
          Whether this Indexable is needed for an incremental update.
protected  boolean isRequiredFlagDisallowed(java.lang.String pFlag)
          Whether the flag form the requiredProperties or everyDocument is disallowed.
 boolean isSupportsStatusCounts()
          Whether this object supports returning/updating status counts.
 boolean isUseAtgSearchXmlFormat()
          Returns property useAtgSearchXmlFormat.
 boolean mayNeedCleanup()
          Whether this task may need cleanup.
protected  void mergeDuplicateProperties()
          Look for duplicate properties and suppress redundant duplicates.
protected  void mungeAllOutputPropertyNames()
          Munge all output property names into an Endeca-friendly format.
 atg.repository.search.indexing.BulkLoaderResults performBaselineUpdate(IndexingTask pTask)
          Do a full/bulk load.
 atg.repository.search.indexing.LoaderResults performPartialUpdate(IndexingTask pTask)
          Do an incremental load (that is, process any Queued incremental updates.
 void postIndexingCleanup(IndexingTask pTask, boolean pSuccess, atg.repository.search.indexing.LoaderResults pResults)
          Perform any post indexing cleanup.
 atg.repository.search.indexing.LoaderResults processQueuedIncrementalUpdates(atg.search.index.IndexInfo pIndexInfo, atg.repository.search.indexing.DocumentSubmitterSession pSession)
          Process any queued incremental updates
 void setAddDefaultOutputNameReplacements(boolean pAddDefaultOutputNameReplacements)
          Sets property addDefaultOutputNameReplacements.
 void setDisallowedRequiredFlags(java.lang.String[] pDisallowedRequiredFlags)
          Sets property disallowedRequiredFlags.
 void setExcludedItemsAncestorIds(java.lang.String[] pExcludedItemsAncestorIds)
          Sets property excludedItemsAncestorIds
 void setForceToBaselineOnChange(boolean pForceToBaselineOnChange)
          Sets property forceToBaselineOnChange
 void setIdOutputPropertyName(java.lang.String pIdOutputPropertyName)
          Sets property idOutputPropertyName.
 void setIndexingApplicationConfiguration(IndexingApplicationConfiguration pIndexingApplicationConfiguration)
          Sets property indexingApplicationConfiguration.
 void setLoggingDebugPropertyMerging(boolean pLoggingDebugPropertyMerging)
          Sets property loggingDebugPropertyMerging.
 void setPrefixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pPrefixReplacementMap)
          Sets property prefixReplacementMap.
 void setReplaceWithTypePrefixes(java.lang.String[] pReplaceWithTypePrefixes)
          Sets property replaceWithTypePrefixes.
 void setSeparator(char pSeparator)
          Sets property mSeparator.
 void setSiteIDsToIndex(java.lang.String[] pSiteIDsToIndex)
          Sets property siteIDsToIndex.
 void setSourcePropertyPathToOutputProperty(java.util.Map<java.lang.String,atg.repository.search.indexing.specifier.OutputProperty> pSourcePropertyPathToOutputProperty)
          Sets property sourcePropertyPathToOutputProperty.
 void setSuffixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pSuffixReplacementMap)
          Sets property suffixReplacementMap.
 void setTestRecordId(java.lang.String pId)
           
 void setUseAtgSearchXmlFormat(boolean pUseAtgSearchXmlFormat)
          Sets property useAtgSearchXmlFormat.
protected  java.lang.String[] stringArrayReplaceString(java.lang.String[] pArray, java.lang.String pMatch, java.lang.String pReplace)
          A simple utility to replace a string in a string array.
protected  boolean stringListContainsName(java.lang.String[] pList, java.lang.String pName)
           
 
Methods inherited from class atg.repository.search.indexing.IndexingOutputConfig
addBasicFilters, addBasicFormatters, addBasicPropertyAccessors, addDocumentLevelSpecifiers, addIfNotPresent, addValidationMessage, allowPeriodicIndexing, beforeSessionEnd, buildUriForRepositoryItem, bulkLoad, bulkLoad, bulkLoad, bulkLoad, bulkLoadForDiagnostics, bulkLoadWithRetry, bulkLoadWithRetry, calculateOutputPropertyNames, cancelBulkLoad, cancelIncrementalUpdate, clearIterationState, containsString, correctRepositoryPath, createInitialIncrementalQueues, determineLogicalPartitionName, doStopService, executeSynchronizationsOnly, executeTestDocumentGeneration, exportAsRemoteService, generateTestDocument, getAllOutputItemSpecifiers, getAllOutputPropertyNames, getBulkLoader, getBulkLoadQuery, getBulkLoadWithRetryMinutes, getBulkSchedule, getBulkScheduleConsiderIndexedMinutes, getBulkScheduler, getConfigRepositoryItemChangedProcessor, getDefaultFormatter, getDefaultPropertyAccessor, getDefaultPropertyAccessorPath, getDefinitionFile, getDocumentIdGenerator, getDocumentLevelSpecifiers, getDocumentSubmitter, getEveryItemOutputProperties, getFilterMap, getForceIncrementalIndexingFromGeneration, getFormatterMap, getHashOutputProps, getIncrementalLoader, getIncrementalUpdateSeconds, getIndexingHashOutputProperties, getIndexingSynchronizations, getItemDescriptors, getIterationProducer, getJobDescription, getJobName, getManualIndexRequests, getMaxFailuresAllowedForCommitting, getMaxIncrementalChanges, getMaxIncrementalChangesPerGeneration, getMaxIndexedItems, getMaxNumberProcessItemThreads, getMetaOutputPropertyNames, getMonitoredRepositories, getNonVersionRepositoryPath, getOutputItemSpecifier, getOutputProperties, getPrimaryRepositoryComponentPath, getProcessingPropertiesCallbacks, getPropertyAccessorMap, getPropertyAccessorToOutputPropertySet, getRepository, getRepositoryItemGroup, getRequiredEveryItemOutputProperties, getResourceBundleName, getRmiServer, getSchedule, getScheduler, getShadowRepositoryMap, getSiteIndexInfoService, getSynchronizedRepositories, getTargetName, getTextActiveZones, getTextOutputPropertyNames, getThreadedItemQueueBatchSize, getThreadMethod, getTopLevelItemRepository, getUnversionedRepositoryPath, getUriForRepositoryItem, getValidationMessages, getVariantProducers, getVersionedRepositoryPath, getVersionRepositoryPath, haveNestedDocumentLevelSpecifiers, haveNestedDocumentLevelSpecifiers, incrementallyLoad, indexedItem, initializeIndexInfo, isAutoCreateInitialQueues, isEnableIncrementalLoading, isEnableScheduledBulkLoading, isFilterOutDollarOutputPropertyNames, isForceDeleteGenerations, isMonitorShadowRepositories, isNonVersionRepository, isOnPubServer, isPeriodicActivityUpdateThreadRunning, isTransactional, isUseConfigurationClaims, isUseThreadedIndexRequestQueue, isUseThreadedItemQueue, isVersionRepository, jaxbParseFile, notifyIndexingInitialization, notifyIndexingTermination, performAction, performScheduledTask, postIndexingCleanup, processQueuedIncrementalUpdates, processQueuedIncrementalUpdates, processQueuedIncrementalUpdates, setAutoCreateInitialQueues, setBulkLoader, setBulkLoadWithRetryMinutes, setBulkSchedule, setBulkScheduleConsiderIndexedMinutes, setBulkScheduler, setConfigRepositoryItemChangedProcessor, setDefaultFormatter, setDefaultPropertyAccessor, setDefaultPropertyAccessorPath, setDefinitionFile, setDocumentIdGenerator, setDocumentLevelOutputProperties, setDocumentSubmitter, setEnableIncrementalLoading, setEnableScheduledBulkLoading, setEveryItemOutputProperties, setFilterMap, setFilterOutDollarOutputPropertyNames, setForceDeleteGenerations, setForceIncrementalIndexingFromGeneration, setFormatterMap, setIncrementalLoader, setIncrementalUpdateSeconds, setIndexingSynchronizations, setIterationProducer, setJobDescription, setJobName, setManualIndexRequests, setMaxFailuresAllowedForCommitting, setMaxIncrementalChanges, setMaxIncrementalChangesPerGeneration, setMaxIndexedItems, setMaxNumberProcessItemThreads, setMonitorShadowRepositories, setOnPubServer, setProcessingPropertiesCallbacks, setPropertyAccessorMap, setRepository, setRepositoryItemGroup, setResourceBundleName, setRmiServer, setSchedule, setScheduler, setSiteIndexInfoService, setSynchronizedRepositories, setTargetName, setThreadedItemQueueBatchSize, setThreadMethod, setTransactional, setUnversionedRepositoryPath, setupContextForNewDocument, setUseConfigurationClaims, setUseThreadedIndexRequestQueue, setVariantProducers, setVersionedRepositoryPath, shouldCommitSession, shouldIncludeItem, shouldOutputDocument, startScheduledJob, stopPeriodicActivityUpdateThread, stopScheduledJob, superStartScheduledJob, unwrapVersionRepository, validateConfiguration, warnIfMisconfiguredForSearchAdmin, warnIfMisconfiguredForSearchAdmin
 
Methods inherited from class atg.nucleus.GenericRMIService
addLogListener, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRef, 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.VariableArgumentApplicationLoggingRMIImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class atg.core.net.RegisteringUnicastRemoteObject
unexportAll
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string


CONTEXT_STATUS_REPORTER

public static java.lang.String CONTEXT_STATUS_REPORTER

mSetOutputProperties

protected java.util.Set<atg.repository.search.indexing.specifier.OutputProperty> mSetOutputProperties
The set of known output properties. Does not included generative properties.

Constructor Detail

EndecaIndexingOutputConfig

public EndecaIndexingOutputConfig()
                           throws java.rmi.RemoteException
Createa new instance, setting the default formatter to an instance of EndecaPropertyFormatter

Throws:
java.rmi.RemoteException
Method Detail

setUseAtgSearchXmlFormat

public void setUseAtgSearchXmlFormat(boolean pUseAtgSearchXmlFormat)
Sets property useAtgSearchXmlFormat. Whether to use ATG Search style output format, rather than endeca style. This is used for the text form of output. Note that when using a RecordSubmitter the textual output is ignored, and a Records * instance is used instead.


isUseAtgSearchXmlFormat

public boolean isUseAtgSearchXmlFormat()
Returns property useAtgSearchXmlFormat. Whether to use ATG Search style output format, rather than endeca style. This is used for the text form of output. Note that when using a RecordSubmitter the textual output is ignored, and a Records * instance is used instead.


setAddDefaultOutputNameReplacements

public void setAddDefaultOutputNameReplacements(boolean pAddDefaultOutputNameReplacements)
Sets property addDefaultOutputNameReplacements. Whether to add the default property name replacements.


isAddDefaultOutputNameReplacements

public boolean isAddDefaultOutputNameReplacements()
Returns property addDefaultOutputNameReplacements. Whether to add the default property name replacements.


setReplaceWithTypePrefixes

public void setReplaceWithTypePrefixes(java.lang.String[] pReplaceWithTypePrefixes)
Sets property replaceWithTypePrefixes. This is the prefixes which should be replaced with the most type that defines the property in question. The top-level can be represented by a period. Examples include "childSkus" or "parentCategory".


getReplaceWithTypePrefixes

public java.lang.String[] getReplaceWithTypePrefixes()
Returns property replaceWithTypePrefixes. This is the prefixes which should be replaced with the most type that defines the property in question. The top-level can be represented by a period. Examples include "childSkus" or "parentCategory".


setPrefixReplacementMap

public void setPrefixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pPrefixReplacementMap)
Sets property prefixReplacementMap. The mapping of prefixes to replace when munging property names to be more Endeca friendly.


getPrefixReplacementMap

public java.util.LinkedHashMap<java.lang.String,java.lang.String> getPrefixReplacementMap()
Returns property prefixReplacementMap. The mapping of prefixes to replace when munging property names to be more Endeca friendly.


setSuffixReplacementMap

public void setSuffixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pSuffixReplacementMap)
Sets property suffixReplacementMap. The mapping of suffixes to replace when munging property names to be more Endeca friendly.


getSuffixReplacementMap

public java.util.LinkedHashMap<java.lang.String,java.lang.String> getSuffixReplacementMap()
Returns property suffixReplacementMap. The mapping of suffixes to replace when munging property names to be more Endeca friendly.


getOutputPropertyToTransformations

public java.util.Map<atg.repository.search.indexing.specifier.OutputProperty,PropertyTransformationRecord> getOutputPropertyToTransformations()
Return the outputPropertyToTransformations property. This is a record of the programattic transformations done to a a particular property (name mangling, merging, etc).


setDisallowedRequiredFlags

public void setDisallowedRequiredFlags(java.lang.String[] pDisallowedRequiredFlags)
Sets property disallowedRequiredFlags. The disallowed flags on required and every document properties.


getDisallowedRequiredFlags

public java.lang.String[] getDisallowedRequiredFlags()
Returns property disallowedRequiredFlags. The disallowed flags on required and every document properties.


setLoggingDebugPropertyMerging

public void setLoggingDebugPropertyMerging(boolean pLoggingDebugPropertyMerging)
Sets property loggingDebugPropertyMerging. Whether to enable debug for property merging. This turns on logDebug for property merging even when loggingDebug is false.


isLoggingDebugPropertyMerging

public boolean isLoggingDebugPropertyMerging()
Returns property loggingDebugPropertyMerging. Whether to enable debug for property merging. This turns on logDebug for property merging even when loggingDebug is false.


setIdOutputPropertyName

public void setIdOutputPropertyName(java.lang.String pIdOutputPropertyName)
Sets property idOutputPropertyName. Name of the output id property.


getIdOutputPropertyName

public java.lang.String getIdOutputPropertyName()
Returns property idOutputPropertyName. Name of the output id property.


getSetOutputProperties

public java.util.Set<atg.repository.search.indexing.specifier.OutputProperty> getSetOutputProperties()
Return the setOutputProperties property. This is the set of all known output properties. Does not include generative properties.


setSiteIDsToIndex

public void setSiteIDsToIndex(java.lang.String[] pSiteIDsToIndex)
Sets property siteIDsToIndex. Set of SiteIDs to index. A null value means index all sites.


getSiteIDsToIndex

public java.lang.String[] getSiteIDsToIndex()
Returns property siteIDsToIndex. Set of SiteIDs to index. A null value means index all sites.


setIndexingApplicationConfiguration

public void setIndexingApplicationConfiguration(IndexingApplicationConfiguration pIndexingApplicationConfiguration)
Sets property indexingApplicationConfiguration. A reference to our indexing application configuration, which makes information about locales and Endeca application configuration available.


getIndexingApplicationConfiguration

@NotNull
public IndexingApplicationConfiguration getIndexingApplicationConfiguration()
Returns property indexingApplicationConfiguration. A reference to our indexing application configuration, which makes information about locales and Endeca application configuration available.


getLocales

public java.util.Locale[] getLocales()
Returns property locales. List of locales to generate the schema in.


getMultiLanguageSynonyms

public boolean getMultiLanguageSynonyms()
Returns property multiLanguageSynonyms


setSeparator

public void setSeparator(char pSeparator)
Sets property mSeparator.


getSeparator

public char getSeparator()
Returns property mSeparator.


setExcludedItemsAncestorIds

public void setExcludedItemsAncestorIds(java.lang.String[] pExcludedItemsAncestorIds)
Sets property excludedItemsAncestorIds


getExcludedItemsAncestorIds

public java.lang.String[] getExcludedItemsAncestorIds()
Returns property excludedItemsAncestorIds


getSitesToIndex

public RepositoryItem[] getSitesToIndex()
                                 throws RepositoryException
Returns property getCatalogsForSitesToIndex. Get the catalogs associated with the configured siteIDsToIndex.

Throws:
RepositoryException

getSourcePropertyPathToOutputProperty

public java.util.Map<java.lang.String,atg.repository.search.indexing.specifier.OutputProperty> getSourcePropertyPathToOutputProperty()
Returns property sourcePropertyPathToOutputProperty. Maps from source repository property path to output property.


setSourcePropertyPathToOutputProperty

public void setSourcePropertyPathToOutputProperty(java.util.Map<java.lang.String,atg.repository.search.indexing.specifier.OutputProperty> pSourcePropertyPathToOutputProperty)
Sets property sourcePropertyPathToOutputProperty. Maps from source repository property path to output property.


isForceToBaselineOnChange

public boolean isForceToBaselineOnChange()
Returns property forceToBaselineOnChange


setForceToBaselineOnChange

public void setForceToBaselineOnChange(boolean pForceToBaselineOnChange)
Sets property forceToBaselineOnChange


createOutputItemSpecifier

protected atg.repository.search.indexing.specifier.OutputItemSpecifier createOutputItemSpecifier()
Returns EndecaOutputItemSpecifier that is aware of endeca-specific properties.

Overrides:
createOutputItemSpecifier in class atg.repository.search.indexing.IndexingOutputConfig

calculateOutputPropertyNames

public void calculateOutputPropertyNames()
Overrides:
calculateOutputPropertyNames in class atg.repository.search.indexing.IndexingOutputConfig

createEmptyTransformationRecords

protected void createEmptyTransformationRecords(boolean pMeta)
Create empty transformation records for all known properties.


mungeAllOutputPropertyNames

protected void mungeAllOutputPropertyNames()
Munge all output property names into an Endeca-friendly format.


getTransformationRecord

public PropertyTransformationRecord getTransformationRecord(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Get the transformation record for the specified output property, created it if needed.

Parameters:
pProperty - the property whose record to fetch.

doStartService

public void doStartService()
                    throws ServiceException
Description copied from class: GenericRMIService
This is called after a Service has been created, placed into the naming hierarchy, and initialized with its configured property values. The Service should override this method to start any processes it requires.

Overrides:
doStartService in class atg.repository.search.indexing.IndexingOutputConfig
Throws:
ServiceException - if the Service had a problem starting up

calculateSourcePropertyPathToOutputProperty

protected void calculateSourcePropertyPathToOutputProperty()
Populate the sourcePropertyPathToOutputProperty property.


addDefaultOutputNameReplacements

protected void addDefaultOutputNameReplacements()
Add the default output name replacements. By default, adds mapping for default "$" properties to the suffixReplacementMap. This method is called on component start-up, unless the addDefaultOutputNameReplacements property is false.


performPartialUpdate

public atg.repository.search.indexing.LoaderResults performPartialUpdate(IndexingTask pTask)
                                                                  throws atg.repository.search.indexing.IndexingException
Description copied from interface: Indexable
Do an incremental load (that is, process any Queued incremental updates. Note that the any results property but "successful" may not be filled except by IndexingOutputConfigs.

Specified by:
performPartialUpdate in interface Indexable
Parameters:
pTask - the indexing task invoking the update. May be null if called via another means.
Throws:
atg.repository.search.indexing.IndexingException

processQueuedIncrementalUpdates

public atg.repository.search.indexing.LoaderResults processQueuedIncrementalUpdates(atg.search.index.IndexInfo pIndexInfo,
                                                                                    atg.repository.search.indexing.DocumentSubmitterSession pSession)
                                                                             throws atg.repository.search.indexing.IndexingException
Process any queued incremental updates

Throws:
atg.repository.search.indexing.IndexingException

getDocumentLevelOutputProperties

public java.lang.String[] getDocumentLevelOutputProperties()
Get the list of output properties that will be added to every repository item.

Overrides:
getDocumentLevelOutputProperties in class atg.repository.search.indexing.IndexingOutputConfig

stringArrayReplaceString

protected java.lang.String[] stringArrayReplaceString(java.lang.String[] pArray,
                                                      java.lang.String pMatch,
                                                      java.lang.String pReplace)
A simple utility to replace a string in a string array. Modifies the passed in array.


getAllOutputProperties

public java.util.List<atg.repository.search.indexing.specifier.OutputProperty> getAllOutputProperties()
Return all known output properties.


addInStrings

protected java.lang.String[] addInStrings(java.lang.String[] pStrings,
                                          java.lang.String[] pRequiredStrings)
In this case, we are overriding the add in strings to parse out disallowed flags, and make it smarter about not stomping all over explicit settings.

Overrides:
addInStrings in class atg.repository.search.indexing.IndexingOutputConfig
Parameters:
pStrings - the source strings.
pRequiredStrings - the strings to add if they aren't already in the list.

isRequiredFlagDisallowed

protected boolean isRequiredFlagDisallowed(java.lang.String pFlag)
Whether the flag form the requiredProperties or everyDocument is disallowed. This only applies to required/default specifiers.


stringListContainsName

protected boolean stringListContainsName(java.lang.String[] pList,
                                         java.lang.String pName)

mergeDuplicateProperties

protected void mergeDuplicateProperties()
Look for duplicate properties and suppress redundant duplicates.


getOutputPropertiesAccessible

public java.util.List<atg.repository.search.indexing.specifier.OutputProperty> getOutputPropertiesAccessible(boolean pMeta)
A publically accessible form of getOutputProperties.


performBaselineUpdate

public atg.repository.search.indexing.BulkLoaderResults performBaselineUpdate(IndexingTask pTask)
                                                                       throws atg.repository.search.indexing.IndexingException
Description copied from interface: Indexable
Do a full/bulk load. Note that the any results property but "successful" may not be filled except by IndexingOutputConfigs.

This is called "performBulkLoad" rather than "bulkLoad" so that MultiConfigLoader could implement it.

Specified by:
performBaselineUpdate in interface Indexable
Parameters:
pTask - the indexing task invoking the update. May be null if called via another means.
Throws:
atg.repository.search.indexing.IndexingException

isNeededForIncremental

public boolean isNeededForIncremental()
Description copied from interface: Indexable
Whether this Indexable is needed for an incremental update.

Specified by:
isNeededForIncremental in interface Indexable
Returns:
true if this Indexable should be invoked for an incremental update, false if this Indexable should not be involved at an incremental update.

mayNeedCleanup

public boolean mayNeedCleanup()
Description copied from interface: Indexable
Whether this task may need cleanup. If true is returned, postIndexingCleanup will be called at some point after performPartialUpdate or performBaselineUpdate.

Specified by:
mayNeedCleanup in interface Indexable

postIndexingCleanup

public void postIndexingCleanup(IndexingTask pTask,
                                boolean pSuccess,
                                atg.repository.search.indexing.LoaderResults pResults)
                         throws atg.repository.search.indexing.IndexingException
Description copied from interface: Indexable
Perform any post indexing cleanup.

Specified by:
postIndexingCleanup in interface Indexable
Parameters:
pTask - the current indexing task, if any.
pSuccess - true if we are cleaning up from a successful index, false otherwise.
pResults - the loader results (if any) returns from performBaselineUpdate and performPartialUpdate.
Throws:
atg.repository.search.indexing.IndexingException

cancel

public boolean cancel(IndexingTask pTask,
                      boolean pBaseline)
               throws atg.repository.search.indexing.IndexingException
Cancel the currently in-process performBulkLoad or processQueuedIncrementalUpdates. Quick running indexables may not support cancel.

Specified by:
cancel in interface Indexable
pBaseline - true if this is a baseline/full index, false if this is an incremental/partial index.
Returns:
true if current task was found to cancel, false otherwise.
Throws:
atg.repository.search.indexing.IndexingException

afterSessionStart

public void afterSessionStart(atg.repository.search.indexing.Context pContext)
                       throws atg.repository.search.indexing.IndexingException
Specified by:
afterSessionStart in interface atg.repository.search.indexing.IndexingSynchronization
Overrides:
afterSessionStart in class atg.repository.search.indexing.IndexingOutputConfig
Throws:
atg.repository.search.indexing.IndexingException

isSupportsStatusCounts

public boolean isSupportsStatusCounts()
Description copied from interface: Indexable
Whether this object supports returning/updating status counts. This is mostly so the admin will not display meaningless "0" even though work may be progressing.

Specified by:
isSupportsStatusCounts in interface Indexable

getIndexingOutputConfigPaths

public java.util.Set<java.lang.String> getIndexingOutputConfigPaths()
Return the set of IndexingOutputConfigs associated with this Indexable. May return an empty set, but should always return non-null.

Specified by:
getIndexingOutputConfigPaths in interface Indexable

isForceToBaseline

public boolean isForceToBaseline()
The method is called before starting partial indexing job for all Indexable to allow forcing the job to baseline indexing.

Specified by:
isForceToBaseline in interface Indexable
Returns:
true if the job should be forced to baseline.

createDefaultIndexInfo

protected atg.search.index.IndexInfo createDefaultIndexInfo()
Create default IndexInfo for indexing tasks that do no supply an IndexInfo. IndexInfo's siteIndexInfo is populated with sitesToIndex data.

Overrides:
createDefaultIndexInfo in class atg.repository.search.indexing.IndexingOutputConfig
Returns:
a default value

createTestIndexInfo

public atg.search.index.IndexInfo createTestIndexInfo()
                                               throws atg.repository.search.indexing.IndexingException
Overrides:
createTestIndexInfo in class atg.repository.search.indexing.IndexingOutputConfig
Throws:
atg.repository.search.indexing.IndexingException

createAdminServlet

protected javax.servlet.Servlet createAdminServlet()
Description copied from class: GenericRMIService
Creates and returns a new Servlet that will administer this service. By default, this creates a ServiceAdminServlet, but subclasses may create their own servlets.

Overrides:
createAdminServlet in class atg.repository.search.indexing.IndexingOutputConfig

createTestContext

public atg.repository.search.indexing.Context createTestContext()
                                                         throws atg.repository.search.indexing.IndexingException
Create a Context for testing or other non-indexing use.

Throws:
atg.repository.search.indexing.IndexingException

getTestRecordId

public java.lang.String getTestRecordId()

setTestRecordId

public void setTestRecordId(java.lang.String pId)
                     throws atg.repository.search.indexing.IndexingException
Throws:
atg.repository.search.indexing.IndexingException

generateTestRecords

public java.util.List<Record> generateTestRecords(java.lang.String pId)
                                           throws atg.repository.search.indexing.IndexingException
Generate test records. Works like generateTestDocument.

Throws:
atg.repository.search.indexing.IndexingException