public class SchemaExporter extends PerApplicationExporter
The schema is represented by a Records object that holds a Record-based representation of the schema, which is then uploaded via a RecordStoreDocumentSubmitter.
This class supports merging in supplemental/override information via the supplementalSchemaRecords property.
Created: November 16 2011
PerApplicationExporter.MinimalBulkLoaderResults, PerApplicationExporter.MinimalIncrementalLoaderResults, PerApplicationExporter.RecordsSubmittedPostProcessor<T extends PerApplicationExporter>
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTRIBUTE_DIMENSION_AUTOGEN
CAS Record property name for dimension autogen.
|
static java.lang.String |
ATTRIBUTE_DIMENSION_DISPLAY_ORDER
CAS Record property name for dimension display order.
|
static java.lang.String |
ATTRIBUTE_DIMENSION_MULTISELECT_TYPE
CAS Record property name to set for multiselect type.
|
static java.lang.String |
ATTRIBUTE_DIMENSION_RANGE_COMPARISON_TYPE
CAS Record property name to set for multiselect type.
|
static java.lang.String |
ATTRIBUTE_DISPLAY_NAME
CAS Record property name for attribute diplay name.
|
static java.lang.String |
ATTRIBUTE_NAME
CAS Record property name that names the Records
we use to represent the schema.
|
static java.lang.String |
ATTRIBUTE_PROPERTY_DATA_TYPE
CAS Record property name for property data type.
|
static java.lang.String |
ATTRIBUTE_PROPERTY_DERIVED_PROPERTY_FUNCTION
CAS Record property name property name to set for a text searchable
attribute.
|
static java.lang.String |
ATTRIBUTE_PROPERTY_DERIVED_PROPERTY_SOURCE
CAS Record property name property name to set for the derived
property source.
|
static java.lang.String |
ATTRIBUTE_ROLLUP_KEY
CAS Record property name property name to set for a text searchable
attribute.
|
static java.lang.String |
ATTRIBUTE_SEARCH_SEARCHABLE
CAS Record property name property name to set for a text searchable
attribute.
|
static java.lang.String |
ATTRIBUTE_SEARCH_WILDCARD
CAS Record property name property name to set for a wildcard searchable
attribute.
|
static java.lang.String |
ATTRIBUTE_SOURCE_NAME
CAS Record property name for attribute source name.
|
static java.lang.String |
ATTRIBUTE_TYPE
CAS Record property name for attribute type (that is, dimension or
property).
|
static java.lang.String |
CLASS_VERSION
Class version string
|
static java.lang.String |
RECORD_SPEC |
java.lang.String |
SCHEMA_CHECKSUM_CONFIG_STATE_PROPERTY_NAME
The property name of the ConfigState property holding
the property name.
|
java.lang.String |
SCHEMA_CHECKSUM_TASK_ATTRIBUTE_NAME_PREFIX
Prefix for an IndexingTask attribute to hold the schema checksum.
|
TEST_GENERATION_CONTEXT_ATTRIBUTE
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
SchemaExporter() |
Modifier and Type | Method and Description |
---|---|
protected void |
addBaselineSchemaRecords(Records pRecords,
java.util.Locale pLocale,
boolean pAddMeta)
Add the baseline schema records to the specified records object.
|
void |
addSchemaRecordsForProperties(java.util.List<atg.repository.search.indexing.specifier.OutputProperty> pOutputProperties,
Records pRecords,
java.util.Locale pLocale,
boolean pAddMeta)
Add the records that represent the passed in
output properties the specified Records object.
|
void |
addSchemaRecordsForProperties(java.util.List<atg.repository.search.indexing.specifier.OutputProperty> pOutputProperties,
Records pRecords,
java.util.Locale pLocale,
boolean pAddMeta,
boolean pAddGenerative)
Add the records that represent the passed in
output properties the specified Records object.
|
Records |
createBaselineSchemaRecords(java.util.Locale pLocale)
Create a baseline set of schema records for the specified locale.
|
Records |
createEmptyRecords()
Create an empty Records object with ATTRIBUTE_NAME already set
as the name property.
|
protected Records |
createExportRecords(EndecaContext pContext,
java.util.Locale pLocale)
Create the export records for the specified locale.
|
Records |
createMergedSchemaRecords(java.util.Locale pLocale)
Return the complete, merged schema records.
|
java.lang.String |
generateDebugBaselineSchemaAsXML()
Return the baseline (pre-supplemental merge) schema generated
from the IndexingOutputConfig as XML.
|
java.lang.String |
generateDebugMergedSchemaAsXML()
Return an XML represetation of the merged schema XML.
|
java.lang.String |
generateDebugSupplementalSchemaAsXML()
Return an XML represetation of the supplemental schema XML.
|
protected ConfigStatePersister |
getConfigStatePersister()
Get the configuration state persister.
|
protected java.lang.String |
getDimensionNameForProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Return the dimension name for the specified property.
|
DimensionNameProvider[] |
getDimensionNameProviders()
Returns property dimensionNameProviders.
|
java.lang.String |
getDisplayNameForMetaProperty(java.lang.String pPropertyName,
java.util.Locale pLocale)
Get the display name for the specified meta property.
|
protected java.lang.String |
getEndecaDataTypeForProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Return the endeca data type for the specified property.
|
MetaPropertiesHelper |
getMetaPropertiesHelper()
Return MetaPropertisHelper
|
java.lang.String[] |
getNonAutogenDimensionPropertyNames()
Returns property nonAutogenDimensionPropertyNames.
|
java.lang.String[] |
getPropertiesNamesToIgnore()
Returns property propertiesNamesToIgnore.
|
java.util.Map<java.lang.String,java.lang.String> |
getPropertyNameToDimensionName()
Returns property propertyNameToDimensionName.
|
java.lang.String |
getRecordIdName() |
java.util.List<SchemaExporter> |
getSchemaExporters() |
atg.xml.XMLFile |
getSupplementalSchemaRecords()
Returns property supplementalSchemaRecords.
|
protected java.lang.String |
getXmlOutputTitle()
Return the text string used as the title for the XML output in
the HTML admin.
|
boolean |
isAddNewSupplementalRecords()
Returns property addNewSupplementalRecords.
|
protected boolean |
isEndecaDimensionProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Return whether the specified property is an Endeca dimension property.
|
protected boolean |
isEndecaRollUpProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Return whether the specified property is an Endeca roll-up poperty.
|
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 |
isGenerateDisplayNames()
Returns property generateDisplayNames.
|
boolean |
isNeededForIncremental()
Whether this Indexable is needed for an incremental update.
|
boolean |
isOutputPropertyCollisionCheckEnabled() |
boolean |
isSkipPropertiesWithGenerativePropertyAccessors()
Returns property
skipPropertiesWithGenerativePropertyAccessors.
|
protected boolean |
isTextSearchable(atg.repository.search.indexing.specifier.OutputProperty pProperty)
Return whether the specified property should be text searchable
(full text indexed).
|
boolean |
mayNeedCleanup()
Whether this task may need cleanup.
|
void |
mergeSupplementalIntoSchemaRecords(Records pRecords,
boolean pAddNewRecords)
Merge any supplement schema information from the
supplementalSchemaRecords property into the specified records.
|
Records |
parseSupplementalRecords()
Parse supplemental records as specified by the supplementalSchemaRecords
property.
|
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.
|
void |
setAddNewSupplementalRecords(boolean pAddNewSupplementalRecords)
Sets property addNewSupplementalRecords.
|
void |
setDimensionNameProviders(DimensionNameProvider[] pDimensionNameProviders)
Sets property dimensionNameProviders.
|
void |
setForceToBaselineOnChange(boolean pForceToBaselineOnChange)
Sets property forceToBaselineOnChange
|
void |
setGenerateDisplayNames(boolean pGenerateDisplayNames)
Sets property generateDisplayNames.
|
void |
setIndexables(Indexable[] pIndexables)
This method takes an array of Indexable and allows this Indexable to
have reference to other Indexable's
|
void |
setMetaPropertiesHelper(MetaPropertiesHelper pMetaPropertiesHelper)
Sets MetaPropertiesHelper
|
void |
setNonAutogenDimensionPropertyNames(java.lang.String[] pNonAutogenDimensionPropertyNames)
Sets property nonAutogenDimensionPropertyNames.
|
void |
setOutputPropertyCollisionCheckEnabled(boolean pOutputPropertyCollisionCheckEnabled) |
void |
setPropertiesNamesToIgnore(java.lang.String[] pPropertiesNamesToIgnore)
Sets property propertiesNamesToIgnore.
|
void |
setPropertyNameToDimensionName(java.util.Map<java.lang.String,java.lang.String> pPropertyNameToDimensionName)
Sets property propertyNameToDimensionName.
|
void |
setRecordIdName(java.lang.String pRecordIdName) |
void |
setSchemaExporters(java.util.List<SchemaExporter> pSchemaExporters) |
void |
setSkipPropertiesWithGenerativePropertyAccessors(boolean pSkipPropertiesWithGenerativePropertyAccessors)
Sets property skipPropertiesWithGenerativePropertyAccessors.
|
void |
setSupplementalSchemaRecords(atg.xml.XMLFile pSupplementalSchemaRecords)
Sets property supplementalSchemaRecords.
|
boolean |
shouldIgnoreProperty(java.lang.String pPropertyName)
Whether we should ignore the specified property name when generating
records.
|
afterRecordSubmits, beforeSessionEnd, cancel, createAdminServlet, createContext, createExportRecordsAsXML, doStartService, export, exportRecords, getApplicationKeyFromContext, getDefaultLanguageForRecordStores, getDocumentSubmitter, getIndexingApplicationConfiguration, getIndexingOutputConfig, getIndexingOutputConfigPaths, getLocales, getRecordsSubmittedPostProcessors, initContext, isEchoRecordsToStdout, isSingleLanguageOverride, isSupportsStatusCounts, restoreDynamoRequestLocale, setDefaultLanguageForRecordStores, setDocumentSubmitter, setDynamoRequestLocale, setEchoRecordsToStdout, setIndexingApplicationConfiguration, setIndexingOutputConfig, setRecordsSubmittedPostProcessors
addLogListener, 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
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
public static final java.lang.String ATTRIBUTE_NAME
public static final java.lang.String ATTRIBUTE_SOURCE_NAME
public static final java.lang.String ATTRIBUTE_DISPLAY_NAME
public static final java.lang.String ATTRIBUTE_TYPE
public static final java.lang.String ATTRIBUTE_PROPERTY_DATA_TYPE
public static final java.lang.String ATTRIBUTE_DIMENSION_AUTOGEN
public static final java.lang.String ATTRIBUTE_DIMENSION_DISPLAY_ORDER
public static final java.lang.String ATTRIBUTE_DIMENSION_MULTISELECT_TYPE
public static final java.lang.String ATTRIBUTE_DIMENSION_RANGE_COMPARISON_TYPE
public static final java.lang.String ATTRIBUTE_SEARCH_SEARCHABLE
public static final java.lang.String ATTRIBUTE_PROPERTY_DERIVED_PROPERTY_SOURCE
public static final java.lang.String ATTRIBUTE_PROPERTY_DERIVED_PROPERTY_FUNCTION
public java.lang.String SCHEMA_CHECKSUM_TASK_ATTRIBUTE_NAME_PREFIX
public static final java.lang.String ATTRIBUTE_SEARCH_WILDCARD
public static final java.lang.String ATTRIBUTE_ROLLUP_KEY
public static final java.lang.String RECORD_SPEC
public final java.lang.String SCHEMA_CHECKSUM_CONFIG_STATE_PROPERTY_NAME
public void setSupplementalSchemaRecords(atg.xml.XMLFile pSupplementalSchemaRecords)
public atg.xml.XMLFile getSupplementalSchemaRecords()
public void setDimensionNameProviders(DimensionNameProvider[] pDimensionNameProviders)
public DimensionNameProvider[] getDimensionNameProviders()
public MetaPropertiesHelper getMetaPropertiesHelper()
public void setMetaPropertiesHelper(MetaPropertiesHelper pMetaPropertiesHelper)
pMetaPropertiesHelper
- MetaPropertiesHelperpublic void setPropertyNameToDimensionName(java.util.Map<java.lang.String,java.lang.String> pPropertyNameToDimensionName)
public java.util.Map<java.lang.String,java.lang.String> getPropertyNameToDimensionName()
public void setAddNewSupplementalRecords(boolean pAddNewSupplementalRecords)
public boolean isAddNewSupplementalRecords()
public void setSkipPropertiesWithGenerativePropertyAccessors(boolean pSkipPropertiesWithGenerativePropertyAccessors)
public boolean isSkipPropertiesWithGenerativePropertyAccessors()
public void setGenerateDisplayNames(boolean pGenerateDisplayNames)
public boolean isGenerateDisplayNames()
public void setPropertiesNamesToIgnore(java.lang.String[] pPropertiesNamesToIgnore)
public java.lang.String[] getPropertiesNamesToIgnore()
public void setNonAutogenDimensionPropertyNames(java.lang.String[] pNonAutogenDimensionPropertyNames)
public java.lang.String[] getNonAutogenDimensionPropertyNames()
public java.lang.String getRecordIdName()
public boolean isForceToBaselineOnChange()
public void setForceToBaselineOnChange(boolean pForceToBaselineOnChange)
public void setRecordIdName(java.lang.String pRecordIdName)
mIndexingOutputConfigs
- the mIndexingOutputConfigs to setpublic java.util.List<SchemaExporter> getSchemaExporters()
public void setSchemaExporters(java.util.List<SchemaExporter> pSchemaExporters)
mIndexingOutputConfigs
- the mIndexingOutputConfigs to setpublic boolean isOutputPropertyCollisionCheckEnabled()
public void setOutputPropertyCollisionCheckEnabled(boolean pOutputPropertyCollisionCheckEnabled)
pOutputPropertyCollisionCheckEnabled
- the outputPropertyCollisionCheckEnabled to setprotected Records createExportRecords(EndecaContext pContext, java.util.Locale pLocale)
createExportRecords
in class PerApplicationExporter
pContext
- the current indexing context.pLocale
- to locale for which to generate records.public java.lang.String generateDebugBaselineSchemaAsXML() throws java.io.IOException, atg.repository.search.indexing.XMLWriterException
java.io.IOException
atg.repository.search.indexing.XMLWriterException
public Records createEmptyRecords()
public Records createMergedSchemaRecords(java.util.Locale pLocale)
public Records createBaselineSchemaRecords(java.util.Locale pLocale)
pLocale
- the locale in which to export the schema records.public void mergeSupplementalIntoSchemaRecords(Records pRecords, boolean pAddNewRecords)
pRecords
- the records to merge the supplemental records into.pAddNewRecords
- whether to add new records if no corresponding
supplemental record exists.protected void addBaselineSchemaRecords(Records pRecords, java.util.Locale pLocale, boolean pAddMeta)
pRecords
- the Records object to add records to.pLocale
- the current locale.pAddMeta
- true specifies that records for meta properties
should be added, and false specifies that records for
text properties should be added.public void addSchemaRecordsForProperties(java.util.List<atg.repository.search.indexing.specifier.OutputProperty> pOutputProperties, Records pRecords, java.util.Locale pLocale, boolean pAddMeta)
pOutputProperties
- the output properties to add records for.pRecords
- the Records object to add records to.pLocale
- the current LocalepAddMeta
- true specifies that records for meta properties
should be added, and false specifies that records for
text properties should be added.public void addSchemaRecordsForProperties(java.util.List<atg.repository.search.indexing.specifier.OutputProperty> pOutputProperties, Records pRecords, java.util.Locale pLocale, boolean pAddMeta, boolean pAddGenerative)
pOutputProperties
- the output properties to add records for.pRecords
- the Records object to add records to.pLocale
- the current LocalepAddMeta
- true specifies that records for meta properties
should be added, and false specifies that records for
text properties should be added.pAddGenerative
- whether to force adding of generative properties.
if false, than isSkipPropertiesWithGenerativePropertyAccessors()
will be honored.public java.lang.String getDisplayNameForMetaProperty(java.lang.String pPropertyName, java.util.Locale pLocale)
pPropertyName
- the property name to get the display name for.protected java.lang.String getDimensionNameForProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
pProperty
- the property whose dimension name to return.protected boolean isEndecaDimensionProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
true
if the property is "storeAsDocset", "storeAsCollection",
or "storeAsMetaIndex."isEndecaDimensionProperty
in class PerApplicationExporter
protected boolean isEndecaRollUpProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
protected boolean isTextSearchable(atg.repository.search.indexing.specifier.OutputProperty pProperty)
pProperty
- the property to example to determine whether it should
be text searchable.public boolean shouldIgnoreProperty(java.lang.String pPropertyName)
protected java.lang.String getEndecaDataTypeForProperty(atg.repository.search.indexing.specifier.OutputProperty pProperty)
pProperty
- the output property whose endeca data type
should be returned.public java.lang.String generateDebugSupplementalSchemaAsXML()
public java.lang.String generateDebugMergedSchemaAsXML()
public Records parseSupplementalRecords()
public void setIndexables(Indexable[] pIndexables)
setIndexables
in interface atg.endeca.index.IndexableSetIndexables
setIndexables
in class PerApplicationExporter
pIndexables
- - array of Indexableprotected java.lang.String getXmlOutputTitle()
PerApplicationExporter
getXmlOutputTitle
in class PerApplicationExporter
public boolean isForceToBaseline()
PerApplicationExporter
isForceToBaseline
in interface Indexable
isForceToBaseline
in class PerApplicationExporter
true
if the job should be forced to baseline.public atg.repository.search.indexing.BulkLoaderResults performBaselineUpdate(IndexingTask pTask) throws IndexingException
Indexable
This is called "performBulkLoad" rather than "bulkLoad" so that MultiConfigLoader could implement it.
performBaselineUpdate
in interface Indexable
performBaselineUpdate
in class PerApplicationExporter
pTask
- the indexing task invoking the update. May be null
if called via another means.IndexingException
public boolean mayNeedCleanup()
Indexable
mayNeedCleanup
in interface Indexable
mayNeedCleanup
in class PerApplicationExporter
public void postIndexingCleanup(IndexingTask pTask, boolean pSuccess, atg.repository.search.indexing.LoaderResults pResults)
Indexable
postIndexingCleanup
in interface Indexable
postIndexingCleanup
in class PerApplicationExporter
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.public atg.repository.search.indexing.LoaderResults performPartialUpdate(IndexingTask pTask) throws IndexingException
Indexable
performPartialUpdate
in interface Indexable
performPartialUpdate
in class PerApplicationExporter
pTask
- the indexing task invoking the update. May be null
if called via another means.IndexingException
public boolean isNeededForIncremental()
Indexable
isNeededForIncremental
in interface Indexable
isNeededForIncremental
in class PerApplicationExporter
protected ConfigStatePersister getConfigStatePersister()