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 from source code control system.
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()
           
 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.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<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 getIdOutputPropertyName()
          Returns property idOutputPropertyName.
 java.util.Set<java.lang.String> getIndexingOutputConfigPaths()
          Return the set of IndexingOutputConfigs associated with this Indexable.
 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.
 ProcessingPropertiesCallback[] getProcessingPropertiesCallbacks()
          Returns property processingPropertiesCallbacks.
 java.lang.String[] getReplaceWithTypePrefixes()
          Returns property replaceWithTypePrefixes.
 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.LinkedHashMap<java.lang.String,java.lang.String> getSuffixReplacementMap()
          Returns property suffixReplacementMap.
 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 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 setIdOutputPropertyName(java.lang.String pIdOutputPropertyName)
          Sets property idOutputPropertyName.
 void setLoggingDebugPropertyMerging(boolean pLoggingDebugPropertyMerging)
          Sets property loggingDebugPropertyMerging.
 void setPrefixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pPrefixReplacementMap)
          Sets property prefixReplacementMap.
 void setProcessingPropertiesCallbacks(ProcessingPropertiesCallback[] pProcessingPropertiesCallbacks)
          Sets property processingPropertiesCallbacks.
 void setReplaceWithTypePrefixes(java.lang.String[] pReplaceWithTypePrefixes)
          Sets property replaceWithTypePrefixes.
 void setSiteIDsToIndex(java.lang.String[] pSiteIDsToIndex)
          Sets property siteIDsToIndex.
 void setSuffixReplacementMap(java.util.LinkedHashMap<java.lang.String,java.lang.String> pSuffixReplacementMap)
          Sets property suffixReplacementMap.
 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, 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, 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, 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, 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 final java.lang.String CLASS_VERSION
Class version string from source code control system.

See Also:
Constant Field Values

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.


setProcessingPropertiesCallbacks

public void setProcessingPropertiesCallbacks(ProcessingPropertiesCallback[] pProcessingPropertiesCallbacks)
Sets property processingPropertiesCallbacks. Array of processing properties callback listeners.


getProcessingPropertiesCallbacks

public ProcessingPropertiesCallback[] getProcessingPropertiesCallbacks()
Returns property processingPropertiesCallbacks. Array of processing properties callback listeners.


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.


getSitesToIndex

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

Throws:
RepositoryException

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

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

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