Class DefaultCommerceRuleEngineCache
- java.lang.Object
-
- de.hybris.platform.ruleengine.cache.impl.DefaultRuleEngineCache
-
- de.hybris.platform.ruleengineservices.cache.impl.DefaultCommerceRuleEngineCache
-
- All Implemented Interfaces:
RuleEngineCache,CommerceRuleEngineCache
public class DefaultCommerceRuleEngineCache extends DefaultRuleEngineCache implements CommerceRuleEngineCache
DefaultCommerceRuleEngineCache is the default implementation for caching fact templates. ThegetRaoCacheCreators()are used by this cache's cache builders (createKIEModuleCacheBuilder(DroolsKIEModuleModel)) to create "facts templates" during the initialization of a module. ThegetRaoProviders()are used to generate copies of the cached "fact templates" (seegetCachedFacts(DroolsKIEBaseModel)). Note: During theaddKIEModuleCache(KIEModuleCacheBuilder)a check (seecheckFactTemplates(Map)) is done to ensure that for each created fact template there is a registeredRAOProvider(matched by its class) that can create a copy of the fact template. This check can be disabled (via setting thedefaultCommerceRuleEngineCache.checkRAOProvidersForCacheproperty to false). If the check is disabled and a fact template has no corresponding RAOProvider to create a copy, it will simply be inserted directly as a fact into the rule evaluation context. This can be useful if a fact template doesn't require to have a copy created for each rule evaluation (e.g. if the fact template is not modified by any rules during rule evaluation). Out of the box two fact template types are implemented:RuleConfigurationRRDobjects which represent a rule and track/control its execution andRuleGroupExecutionRRDobjects which represent rule groups and track/control their execution.
-
-
Field Summary
Fields Modifier and Type Field Description protected static RAOProvider<java.lang.Object>identityRAOProviderthe identity rao provider returns a singleton set of the given fact template.-
Fields inherited from class de.hybris.platform.ruleengine.cache.impl.DefaultRuleEngineCache
kieBaseCacheKeyGenerator, kieModuleCacheKeyGenerator
-
-
Constructor Summary
Constructors Constructor Description DefaultCommerceRuleEngineCache()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddKIEModuleCache(KIEModuleCacheBuilder cacheBuilder)adds the given cache builder to the global globals cache.protected voidcheckFactTemplates(java.util.Map<java.lang.Object,java.util.Collection<java.lang.Object>> factTemplates)checks that for each given fact template class there is an RAOProvider registered.KIEModuleCacheBuildercreateKIEModuleCacheBuilder(DroolsKIEModuleModel kieModule)creates a RuleEngineKIEModuleCacheBuilder object for the given kieModule.java.util.Collection<java.lang.Object>getCachedFacts(DroolsKIEBaseModel kieBase)returns the facts registered for the given kieBase.protected java.util.Collection<java.lang.Object>getFactTemplateCacheForKieBase(DroolsKIEBaseModel kieBase)returns the fact templates for the given kie base.protected java.util.Optional<java.util.Map<java.lang.Object,java.util.Collection<java.lang.Object>>>getFactTemplateCacheForKIEModule(DroolsKIEModuleModel kieModule)returns the optional fact templates for the given kie moduleprotected java.util.List<RAOProvider>getRaoCacheCreators()protected java.util.Optional<RAOProvider>getRaoProvider(java.lang.Object factTemplate)returns the optional rao provider based on the given fact template's classprotected java.util.Map<java.lang.Class,RAOProvider>getRaoProviders()voidsetRaoCacheCreators(java.util.List<RAOProvider> raoCacheCreators)voidsetRaoProviders(java.util.Map<java.lang.Class,RAOProvider> raoProviders)-
Methods inherited from class de.hybris.platform.ruleengine.cache.impl.DefaultRuleEngineCache
getConfigurationService, getGlobalsCacheForKIEModule, getGlobalsForKIEBase, getKieBaseCacheKeyGenerator, getKieModuleCacheKeyGenerator, getRuleGlobalsBeanProvider, setConfigurationService, setKieBaseCacheKeyGenerator, setKieModuleCacheKeyGenerator, setRuleGlobalsBeanProvider
-
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.ruleengine.cache.RuleEngineCache
getGlobalsForKIEBase
-
-
-
-
Field Detail
-
identityRAOProvider
protected static final RAOProvider<java.lang.Object> identityRAOProvider
the identity rao provider returns a singleton set of the given fact template. This is used as a default rao provider if none is registered for the class of the given fact template.
-
-
Method Detail
-
createKIEModuleCacheBuilder
public KIEModuleCacheBuilder createKIEModuleCacheBuilder(DroolsKIEModuleModel kieModule)
Description copied from interface:RuleEngineCachecreates a RuleEngineKIEModuleCacheBuilder object for the given kieModule.- Specified by:
createKIEModuleCacheBuilderin interfaceRuleEngineCache- Overrides:
createKIEModuleCacheBuilderin classDefaultRuleEngineCache- Returns:
- a newly instantiated cache builder for the given kieModule
-
addKIEModuleCache
public void addKIEModuleCache(KIEModuleCacheBuilder cacheBuilder)
Description copied from interface:RuleEngineCacheadds the given cache builder to the global globals cache.- Specified by:
addKIEModuleCachein interfaceRuleEngineCache- Overrides:
addKIEModuleCachein classDefaultRuleEngineCache- Parameters:
cacheBuilder- the cache builder for which to add the cache
-
getCachedFacts
public java.util.Collection<java.lang.Object> getCachedFacts(DroolsKIEBaseModel kieBase)
Description copied from interface:CommerceRuleEngineCachereturns the facts registered for the given kieBase.- Specified by:
getCachedFactsin interfaceCommerceRuleEngineCache- Returns:
- a collection of facts derived from the cached fact templates
-
checkFactTemplates
protected void checkFactTemplates(java.util.Map<java.lang.Object,java.util.Collection<java.lang.Object>> factTemplates)
checks that for each given fact template class there is an RAOProvider registered.- Parameters:
factTemplates- the collection of fact templates to check
-
getFactTemplateCacheForKieBase
protected java.util.Collection<java.lang.Object> getFactTemplateCacheForKieBase(DroolsKIEBaseModel kieBase)
returns the fact templates for the given kie base.
-
getFactTemplateCacheForKIEModule
protected java.util.Optional<java.util.Map<java.lang.Object,java.util.Collection<java.lang.Object>>> getFactTemplateCacheForKIEModule(DroolsKIEModuleModel kieModule)
returns the optional fact templates for the given kie module
-
getRaoProvider
protected java.util.Optional<RAOProvider> getRaoProvider(java.lang.Object factTemplate)
returns the optional rao provider based on the given fact template's class
-
getRaoProviders
protected java.util.Map<java.lang.Class,RAOProvider> getRaoProviders()
-
setRaoProviders
public void setRaoProviders(java.util.Map<java.lang.Class,RAOProvider> raoProviders)
-
getRaoCacheCreators
protected java.util.List<RAOProvider> getRaoCacheCreators()
-
setRaoCacheCreators
public void setRaoCacheCreators(java.util.List<RAOProvider> raoCacheCreators)
-
-