Class BaseConfigurationProviderSSCImpl
- java.lang.Object
-
- de.hybris.platform.sap.productconfig.runtime.ssc.impl.BaseConfigurationProviderSSCImpl
-
- All Implemented Interfaces:
ConfigurationProvider
- Direct Known Subclasses:
CommonConfigurationProviderSSCImpl
public abstract class BaseConfigurationProviderSSCImpl extends java.lang.Object implements ConfigurationProvider
Base class for the default implementation of theConfigurationProvider.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classBaseConfigurationProviderSSCImpl.ExternalConfigurationParser
-
Constructor Summary
Constructors Constructor Description BaseConfigurationProviderSSCImpl()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddCsticValue(com.sap.custdev.projects.fbs.slc.cfg.client.ICsticHeader csticHeader, com.sap.custdev.projects.fbs.slc.cfg.client.ICsticValueData[] csticValues, int i, CharacteristicValue value)protected voidadjustCsticAuthor(CsticModel csticModel, boolean containesValueSetByUser)protected intcalculateStaticDomainLength(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, java.lang.String configId, java.lang.String instanceId, java.lang.String csticName)protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[]callSSCtoFindKBs(KBKey kbKey, java.lang.String kbDateString)protected java.lang.StringcreateConfig(KBKey kbKey, com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session)protected java.lang.StringcreateConfigFromExternalSource(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, Configuration extConfig)ConfigModelcreateConfigurationFromExternalSource(Configuration extConfig)Creates a configuration from the configuration in external format which can be provided from outside, e.g.ConfigModelcreateConfigurationFromExternalSource(KBKey kbKey, java.lang.String extConfig)Creates a configuration from an XML string containing the configuration in external format.ConfigModelcreateDefaultConfiguration(KBKey kbKey)Creates a default configuration for the required knowledge base.com.sap.custdev.projects.fbs.slc.cfg.IConfigSessioncreateSession(KBKey kbKey)Creates sessionprotected com.sap.custdev.projects.fbs.slc.cfg.IConfigSessioncreateSSCSession()protected java.lang.StringextractConfigurationFromXml(java.lang.String extConfiguration)KBKeyextractKbKey(java.lang.String productCode, java.lang.String externalConfig)extracts the KBKey from the external configurationprotected abstract ConfigModelfillConfigModel(java.lang.String qualifiedId)protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseDatafindKBInList(KBKey kbKey, com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[] allKBVersions)protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[]findKBs(KBKey kbKey, boolean considerDate)protected ConfigModelFactorygetConfigModelFactory()ConfigurationUpdateAdaptergetConfigurationUpdateAdapter()SolvableConflictAdaptergetConflictAdapter()protected ConfigurationContextAndPricingWrappergetContextAndPricingWrapper()protected SSCEnginePopertiesInitializergetEnginePropertiesInitializer()protected java.lang.StringgetFormattedDate(KBKey kbKey)protected I18NServicegetI18NService()java.util.Map<java.lang.String,com.sap.custdev.projects.fbs.slc.cfg.IConfigSession>getSessionMap()protected TextConvertergetTextConverter()protected SSCTimergetTimer()protected java.util.List<java.lang.String>getValuesPreviouslyAssigned(com.sap.custdev.projects.fbs.slc.cfg.client.ICsticData csticData)protected java.util.List<java.lang.String>getValuesToBeAssigned(CsticModel csticModel)protected voidholdConfigSession(java.lang.String qualifiedId, com.sap.custdev.projects.fbs.slc.cfg.IConfigSession configSession)protected java.lang.StringinitializeConfigurationFromExternalSource(Configuration extConfig)protected java.lang.StringinitializeDefaultConfiguration(KBKey kbKey)booleanisKbForDateExists(java.lang.String productCode, java.util.Date kbDate)booleanisKbVersionExists(KBKey kbKey)booleanisKbVersionValid(KBKey kbKey)protected booleanisNotProvided(java.lang.String attribute)protected com.sap.custdev.projects.fbs.slc.cfg.client.ICsticData[]prepareCsticDataArrayFromExternalSource(Configuration extConfig)protected voidpreparePricingContext(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, java.lang.String configId, KBKey kbKey)voidreleaseSession(java.lang.String sessionId)Releases the configuration sessions identified by the provided ID and all associated resources.protected com.sap.custdev.projects.fbs.slc.cfg.IConfigSessionretrieveConfigSession(java.lang.String qualifiedId)ConfigModelretrieveConfigurationModel(java.lang.String qualifiedConfigId)Retrieve the current state of the configuration model for the requestedconfigId.java.lang.StringretrieveExternalConfiguration(java.lang.String qualifiedId)Retrieve the current state of the configuration for the requestedconfigIdas an XML string containing the configuration in external format.protected java.lang.StringretrievePlainConfigId(java.lang.String qualifiedId)protected voidretrievePrice(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, ConfigModel configModel)protected java.lang.StringretrieveQualifiedId(java.lang.String sessionId, java.lang.String configId)protected java.lang.StringretrieveSessionId(java.lang.String qualifiedId)voidsetConfigModelFactory(ConfigModelFactory configModelFactory)voidsetConfigurationSessionContainer(ConfigurationSessionContainer configurationSessionContainer)voidsetConfigurationUpdateAdapter(ConfigurationUpdateAdapter configurationUpdateAdapter)voidsetConflictAdapter(SolvableConflictAdapter conflictAdapter)voidsetContextAndPricingWrapper(ConfigurationContextAndPricingWrapper contextAndPricingWrapper)voidsetEnginePropertiesInitializer(SSCEnginePopertiesInitializer enginePropertiesInitializer)protected voidsetExternalContext(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, Configuration extConfig)voidsetI18NService(I18NService i18nService)voidsetTextConverter(TextConverter textConverter)booleanupdateConfiguration(ConfigModel configModel)Checks the configuration model for changes since the last update and will send only the changes to the configuration engine, if any.protected voidupdateProductCode(ConfigModel configModel, java.lang.String productCode)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.hybris.platform.sap.productconfig.runtime.interf.ConfigurationProvider
changeConfiguration, isConfigureVariantSupported, isKbVersionExists, releaseSession, retrieveConfigurationFromVariant, retrieveConfigurationModel
-
-
-
-
Field Detail
-
TYPE_MARA
protected static final java.lang.String TYPE_MARA
- See Also:
- Constant Field Values
-
CONFIG
protected static final java.lang.String CONFIG
- See Also:
- Constant Field Values
-
-
Method Detail
-
setConfigurationSessionContainer
public void setConfigurationSessionContainer(ConfigurationSessionContainer configurationSessionContainer)
- Parameters:
configurationSessionContainer- configuration session container
-
createDefaultConfiguration
public ConfigModel createDefaultConfiguration(KBKey kbKey)
Description copied from interface:ConfigurationProviderCreates a default configuration for the required knowledge base. The knowledge base (KB) can be identified e.g. via the product code or via the KB name, version and logical system.- Specified by:
createDefaultConfigurationin interfaceConfigurationProvider- Parameters:
kbKey- Information needed to identify a knowledge base- Returns:
- The configurable product with default configuration
-
updateConfiguration
public boolean updateConfiguration(ConfigModel configModel)
Description copied from interface:ConfigurationProviderChecks the configuration model for changes since the last update and will send only the changes to the configuration engine, if any.- Specified by:
updateConfigurationin interfaceConfigurationProvider- Parameters:
configModel- Updated model- Returns:
true, only if it was necessary to send an update to the configuration engine
-
getValuesToBeAssigned
protected java.util.List<java.lang.String> getValuesToBeAssigned(CsticModel csticModel)
-
getValuesPreviouslyAssigned
protected java.util.List<java.lang.String> getValuesPreviouslyAssigned(com.sap.custdev.projects.fbs.slc.cfg.client.ICsticData csticData)
-
retrieveConfigurationModel
public ConfigModel retrieveConfigurationModel(java.lang.String qualifiedConfigId)
Description copied from interface:ConfigurationProviderRetrieve the current state of the configuration model for the requestedconfigId.- Specified by:
retrieveConfigurationModelin interfaceConfigurationProvider- Parameters:
qualifiedConfigId- Unique configuration ID- Returns:
- The actual configuration
-
retrieveExternalConfiguration
public java.lang.String retrieveExternalConfiguration(java.lang.String qualifiedId)
Description copied from interface:ConfigurationProviderRetrieve the current state of the configuration for the requestedconfigIdas an XML string containing the configuration in external format.- Specified by:
retrieveExternalConfigurationin interfaceConfigurationProvider- Parameters:
qualifiedId-- Returns:
- String external configuration as XML
-
initializeDefaultConfiguration
protected java.lang.String initializeDefaultConfiguration(KBKey kbKey)
-
createConfig
protected java.lang.String createConfig(KBKey kbKey, com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
getFormattedDate
protected java.lang.String getFormattedDate(KBKey kbKey)
-
fillConfigModel
protected abstract ConfigModel fillConfigModel(java.lang.String qualifiedId)
-
calculateStaticDomainLength
protected int calculateStaticDomainLength(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, java.lang.String configId, java.lang.String instanceId, java.lang.String csticName) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
adjustCsticAuthor
protected void adjustCsticAuthor(CsticModel csticModel, boolean containesValueSetByUser)
- Parameters:
csticModel-containesValueSetByUser-
-
retrieveQualifiedId
protected java.lang.String retrieveQualifiedId(java.lang.String sessionId, java.lang.String configId)
-
retrievePlainConfigId
protected java.lang.String retrievePlainConfigId(java.lang.String qualifiedId)
-
retrieveSessionId
protected java.lang.String retrieveSessionId(java.lang.String qualifiedId)
-
holdConfigSession
protected void holdConfigSession(java.lang.String qualifiedId, com.sap.custdev.projects.fbs.slc.cfg.IConfigSession configSession)
-
retrieveConfigSession
protected com.sap.custdev.projects.fbs.slc.cfg.IConfigSession retrieveConfigSession(java.lang.String qualifiedId)
-
setContextAndPricingWrapper
public void setContextAndPricingWrapper(ConfigurationContextAndPricingWrapper contextAndPricingWrapper)
- Parameters:
contextAndPricingWrapper- configuration context and pricing wrapper
-
preparePricingContext
protected void preparePricingContext(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, java.lang.String configId, KBKey kbKey) throws com.sap.custdev.projects.fbs.slc.cfg.ipintegration.InteractivePricingException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.ipintegration.InteractivePricingException
-
retrievePrice
protected void retrievePrice(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, ConfigModel configModel) throws com.sap.custdev.projects.fbs.slc.cfg.ipintegration.InteractivePricingException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.ipintegration.InteractivePricingException
-
createSession
public com.sap.custdev.projects.fbs.slc.cfg.IConfigSession createSession(KBKey kbKey) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
Creates session- Parameters:
kbKey- Not used in default implementation but provided since subclasses can make use of it.- Returns:
- config session
- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
createSSCSession
protected com.sap.custdev.projects.fbs.slc.cfg.IConfigSession createSSCSession() throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
createConfigurationFromExternalSource
public ConfigModel createConfigurationFromExternalSource(Configuration extConfig)
Description copied from interface:ConfigurationProviderCreates a configuration from the configuration in external format which can be provided from outside, e.g. from the configuration prepared in the back end.
This API does _not_ force the KB related attributes to be existing. In case only the product ID is provided, a matching KB version is determined.- Specified by:
createConfigurationFromExternalSourcein interfaceConfigurationProvider- Parameters:
extConfig- External configuration in external format- Returns:
- Configuration model
-
updateProductCode
protected void updateProductCode(ConfigModel configModel, java.lang.String productCode)
-
initializeConfigurationFromExternalSource
protected java.lang.String initializeConfigurationFromExternalSource(Configuration extConfig)
-
setExternalContext
protected void setExternalContext(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, Configuration extConfig) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
isNotProvided
protected boolean isNotProvided(java.lang.String attribute)
-
createConfigFromExternalSource
protected java.lang.String createConfigFromExternalSource(com.sap.custdev.projects.fbs.slc.cfg.IConfigSession session, Configuration extConfig) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
prepareCsticDataArrayFromExternalSource
protected com.sap.custdev.projects.fbs.slc.cfg.client.ICsticData[] prepareCsticDataArrayFromExternalSource(Configuration extConfig)
-
addCsticValue
protected void addCsticValue(com.sap.custdev.projects.fbs.slc.cfg.client.ICsticHeader csticHeader, com.sap.custdev.projects.fbs.slc.cfg.client.ICsticValueData[] csticValues, int i, CharacteristicValue value)
-
createConfigurationFromExternalSource
public ConfigModel createConfigurationFromExternalSource(KBKey kbKey, java.lang.String extConfig)
Description copied from interface:ConfigurationProviderCreates a configuration from an XML string containing the configuration in external format.
This API requires the KB related attributes as part of the external configuration to be available, they are directly forwarded to the configuration engine.- Specified by:
createConfigurationFromExternalSourcein interfaceConfigurationProvider- Parameters:
kbKey- Information needed to create a knowledge baseextConfig- External configuration as XML string- Returns:
- Configuration model
-
releaseSession
public void releaseSession(java.lang.String sessionId)
Description copied from interface:ConfigurationProviderReleases the configuration sessions identified by the provided ID and all associated resources. Accessing the session afterwards is not possible anymore.- Specified by:
releaseSessionin interfaceConfigurationProvider- Parameters:
sessionId- session id
-
getSessionMap
public java.util.Map<java.lang.String,com.sap.custdev.projects.fbs.slc.cfg.IConfigSession> getSessionMap()
- Returns:
- sessionMap
-
getContextAndPricingWrapper
protected ConfigurationContextAndPricingWrapper getContextAndPricingWrapper()
- Returns:
- contextAndPricingWrapper
-
setConfigModelFactory
public void setConfigModelFactory(ConfigModelFactory configModelFactory)
- Parameters:
configModelFactory-
-
getConfigModelFactory
protected ConfigModelFactory getConfigModelFactory()
- Returns:
- configModelFactory
-
getTextConverter
protected TextConverter getTextConverter()
- Returns:
- textConverter
-
setTextConverter
public void setTextConverter(TextConverter textConverter)
- Parameters:
textConverter-
-
getTimer
protected SSCTimer getTimer()
- Returns:
- timer
-
getConfigurationUpdateAdapter
public ConfigurationUpdateAdapter getConfigurationUpdateAdapter()
- Returns:
- the configurationUpdateAdapter
-
setConfigurationUpdateAdapter
public void setConfigurationUpdateAdapter(ConfigurationUpdateAdapter configurationUpdateAdapter)
- Parameters:
configurationUpdateAdapter- the configurationUpdateAdapter to set
-
getI18NService
protected I18NService getI18NService()
- Returns:
- i18NService
-
setI18NService
public void setI18NService(I18NService i18nService)
- Parameters:
i18nService-
-
getConflictAdapter
public SolvableConflictAdapter getConflictAdapter()
- Returns:
- the conflictAdapter
-
setConflictAdapter
public void setConflictAdapter(SolvableConflictAdapter conflictAdapter)
- Parameters:
conflictAdapter- the conflictAdapter to set
-
isKbForDateExists
public boolean isKbForDateExists(java.lang.String productCode, java.util.Date kbDate)- Specified by:
isKbForDateExistsin interfaceConfigurationProvider- Returns:
trueonly if a valid KBVersion exists for the given product and date.
-
isKbVersionExists
public boolean isKbVersionExists(KBKey kbKey)
- Specified by:
isKbVersionExistsin interfaceConfigurationProvider- Returns:
- returns
trueonly if the KB version identified by the the given KBKey is known by the underlying configuration engine.
-
isKbVersionValid
public boolean isKbVersionValid(KBKey kbKey)
- Specified by:
isKbVersionValidin interfaceConfigurationProvider- Returns:
- returns
trueonly if the KB version identified by the the given KBKey is known by the underlying configuration engine and if it is still valid on the given date.
-
extractKbKey
public KBKey extractKbKey(java.lang.String productCode, java.lang.String externalConfig)
Description copied from interface:ConfigurationProviderextracts the KBKey from the external configuration- Specified by:
extractKbKeyin interfaceConfigurationProvider- Returns:
- returns the kBKey of the given external config
-
findKBs
protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[] findKBs(KBKey kbKey, boolean considerDate)
-
callSSCtoFindKBs
protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[] callSSCtoFindKBs(KBKey kbKey, java.lang.String kbDateString) throws com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
- Throws:
com.sap.custdev.projects.fbs.slc.cfg.exception.IpcCommandException
-
findKBInList
protected com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData findKBInList(KBKey kbKey, com.sap.custdev.projects.fbs.slc.cfg.client.IKnowledgeBaseData[] allKBVersions)
-
extractConfigurationFromXml
protected java.lang.String extractConfigurationFromXml(java.lang.String extConfiguration)
-
getEnginePropertiesInitializer
protected SSCEnginePopertiesInitializer getEnginePropertiesInitializer()
-
setEnginePropertiesInitializer
public void setEnginePropertiesInitializer(SSCEnginePopertiesInitializer enginePropertiesInitializer)
- Parameters:
enginePropertiesInitializer- engine property initializer
-
-