Package org.drools.core.impl
Class KnowledgeBaseImpl
- java.lang.Object
-
- org.drools.core.impl.KnowledgeBaseImpl
-
- All Implemented Interfaces:
org.drools.base.RuleBase,InternalRuleBase
public class KnowledgeBaseImpl extends java.lang.Object implements InternalRuleBase
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceKnowledgeBaseImpl.ClassRegister
-
Field Summary
Fields Modifier and Type Field Description java.util.List<java.util.List<java.lang.String>>jaxbClassesprotected static org.slf4j.Loggerloggerprotected java.util.Map<java.lang.String,org.drools.base.definitions.InternalKnowledgePackage>pkgs
-
Constructor Summary
Constructors Constructor Description KnowledgeBaseImpl()KnowledgeBaseImpl(java.lang.String id, org.kie.internal.conf.CompositeBaseConfiguration config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddGlobal(java.lang.String identifier, java.lang.reflect.Type type)java.util.concurrent.Future<org.kie.api.definition.KiePackage>addPackage(org.kie.api.definition.KiePackage newPkg)voidaddPackages(java.util.Collection<? extends org.kie.api.definition.KiePackage> newPkgs)Add aPackageto the network.voidaddProcess(org.kie.api.definition.process.Process process)voidaddReceiveNode(AsyncReceiveNode node)voidaddRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)voidafterIncrementalUpdate(KieBaseUpdate kieBaseUpdate)voidbeforeIncrementalUpdate(KieBaseUpdate kieBaseUpdate)org.drools.base.common.RuleBasePartitionIdcreateNewPartitionId()SegmentMemorycreateSegmentFromPrototype(ReteEvaluator reteEvaluator, LeftTupleSource tupleSource)SegmentMemorycreateSegmentFromPrototype(ReteEvaluator reteEvaluator, SegmentMemory.SegmentPrototype proto)voidexecuteQueuedActions()java.util.Set<EntryPointNode>getAddedEntryNodeCache()ClassFieldAccessorCachegetClassFieldAccessorCache()org.kie.api.KieBaseConfigurationgetConfiguration()java.lang.StringgetContainerId()java.util.Set<java.lang.String>getEntryPointIds()org.drools.base.rule.TypeDeclarationgetExactTypeDeclaration(java.lang.Class<?> clazz)org.kie.api.definition.type.FactTypegetFactType(java.lang.String packageName, java.lang.String typeName)java.util.Map<java.lang.String,java.lang.reflect.Type>getGlobals()java.lang.StringgetId()KieBaseConfigurationImplgetKieBaseConfiguration()org.kie.api.definition.KiePackagegetKiePackage(java.lang.String packageName)java.util.Collection<org.kie.api.definition.KiePackage>getKiePackages()intgetMemoryCount()intgetNodeCount()org.drools.base.rule.TypeDeclarationgetOrCreateExactTypeDeclaration(java.lang.Class<?> clazz)org.drools.base.definitions.InternalKnowledgePackagegetPackage(java.lang.String name)org.drools.base.definitions.InternalKnowledgePackage[]getPackages()java.util.Map<java.lang.String,org.drools.base.definitions.InternalKnowledgePackage>getPackagesMap()intgetParallelEvaluationSlotsCount()org.kie.api.definition.process.ProcessgetProcess(java.lang.String id)java.util.Collection<org.kie.api.definition.process.Process>getProcesses()org.kie.api.definition.rule.QuerygetQuery(java.lang.String packageName, java.lang.String queryName)java.util.List<AsyncReceiveNode>getReceiveNodes()java.util.Set<EntryPointNode>getRemovedEntryNodeCache()org.kie.api.builder.ReleaseIdgetResolvedReleaseId()RetegetRete()Retrieve the Rete-OO network for thisRuleBase.ReteooBuildergetReteooBuilder()java.lang.ClassLoadergetRootClassLoader()org.kie.api.definition.rule.RulegetRule(java.lang.String packageName, java.lang.String ruleName)RuleBaseConfigurationgetRuleBaseConfiguration()org.drools.base.ruleunit.RuleUnitDescriptionRegistrygetRuleUnitDescriptionRegistry()SegmentMemory.SegmentPrototypegetSegmentPrototype(LeftTupleNode node)SegmentMemory.SegmentPrototypegetSegmentPrototype(SegmentMemory segment)SessionConfigurationgetSessionConfiguration()org.drools.base.rule.TypeDeclarationgetTypeDeclaration(java.lang.Class<?> clazz)java.util.Collection<org.drools.base.rule.TypeDeclaration>getTypeDeclarations()booleanhasMultipleAgendaGroups()booleanhasSegmentPrototypes()booleanhasUnits()voidinvalidateSegmentPrototype(LeftTupleNode rootNode)booleanisPartitioned()voidkBaseInternal_addPackages(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> clonedPkgs, java.util.Collection<InternalWorkingMemory> workingMemories)voidkBaseInternal_addProcess(org.kie.api.definition.process.Process process)voidkBaseInternal_addRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> wms)java.util.concurrent.locks.ReentrantReadWriteLockkBaseInternal_getLock()voidkBaseInternal_lock()voidkBaseInternal_removeFunction(org.drools.base.definitions.InternalKnowledgePackage pkg, java.lang.String functionName)voidkBaseInternal_removePackage(org.drools.base.definitions.InternalKnowledgePackage pkg, java.util.Collection<InternalWorkingMemory> workingMemories)voidkBaseInternal_removeProcess(java.lang.String id, org.kie.api.definition.process.Process process)voidkBaseInternal_removeRule(org.drools.base.definitions.InternalKnowledgePackage pkg, org.drools.base.definitions.rule.impl.RuleImpl rule, java.util.Collection<InternalWorkingMemory> workingMemories)voidkBaseInternal_removeRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> workingMemories)booleankBaseInternal_tryWriteLock()voidkBaseInternal_unlock()voidkBaseInternal_writeLock()voidkBaseInternal_writeUnlock()FactHandleFactorynewFactHandleFactory()FactHandleFactorynewFactHandleFactory(long id, long counter)voidprocessAllTypesDeclaration(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> pkgs)protected voidprocessTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)voidreadLock()voidreadUnlock()voidregisterAddedEntryNodeCache(EntryPointNode node)java.lang.Class<?>registerAndLoadTypeDefinition(java.lang.String className, byte[] def)static voidregisterFunctionClassAndInnerClasses(java.lang.String functionClassName, JavaDialectRuntimeData runtime, KnowledgeBaseImpl.ClassRegister consumer)voidregisteRremovedEntryNodeCache(EntryPointNode node)voidregisterSegmentPrototype(LeftTupleNode tupleSource, SegmentMemory.SegmentPrototype smem)voidregisterTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)voidremoveFunction(java.lang.String packageName, java.lang.String functionName)voidremoveGlobal(java.lang.String identifier)voidremoveKiePackage(java.lang.String packageName)booleanremoveObjectsGeneratedFromResource(org.kie.api.io.Resource resource, java.util.Collection<InternalWorkingMemory> workingMemories)voidremoveProcess(java.lang.String id)voidremoveQuery(java.lang.String packageName, java.lang.String ruleName)voidremoveRule(java.lang.String packageName, java.lang.String ruleName)voidremoveRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)voidsetContainerId(java.lang.String containerId)voidsetResolvedReleaseId(org.kie.api.builder.ReleaseId currentReleaseId)protected voidsetupRete()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.drools.core.impl.InternalRuleBase
getWorkingMemoryCounter
-
-
-
-
Method Detail
-
getSessionConfiguration
public SessionConfiguration getSessionConfiguration()
- Specified by:
getSessionConfigurationin interfaceInternalRuleBase
-
removeKiePackage
public void removeKiePackage(java.lang.String packageName)
- Specified by:
removeKiePackagein interfaceInternalRuleBase
-
kBaseInternal_removePackage
public void kBaseInternal_removePackage(org.drools.base.definitions.InternalKnowledgePackage pkg, java.util.Collection<InternalWorkingMemory> workingMemories)
-
getRule
public org.kie.api.definition.rule.Rule getRule(java.lang.String packageName, java.lang.String ruleName)- Specified by:
getRulein interfaceInternalRuleBase
-
getQuery
public org.kie.api.definition.rule.Query getQuery(java.lang.String packageName, java.lang.String queryName)- Specified by:
getQueryin interfaceInternalRuleBase
-
getKiePackages
public java.util.Collection<org.kie.api.definition.KiePackage> getKiePackages()
- Specified by:
getKiePackagesin interfaceInternalRuleBase
-
getKiePackage
public org.kie.api.definition.KiePackage getKiePackage(java.lang.String packageName)
- Specified by:
getKiePackagein interfaceInternalRuleBase
-
getId
public java.lang.String getId()
- Specified by:
getIdin interfaceInternalRuleBase- Returns:
- the id
-
newFactHandleFactory
public FactHandleFactory newFactHandleFactory()
- Specified by:
newFactHandleFactoryin interfaceInternalRuleBase
-
newFactHandleFactory
public FactHandleFactory newFactHandleFactory(long id, long counter)
- Specified by:
newFactHandleFactoryin interfaceInternalRuleBase
-
getProcesses
public java.util.Collection<org.kie.api.definition.process.Process> getProcesses()
- Specified by:
getProcessesin interfaceInternalRuleBase
-
getPackages
public org.drools.base.definitions.InternalKnowledgePackage[] getPackages()
- Specified by:
getPackagesin interfaceInternalRuleBase
-
getPackagesMap
public java.util.Map<java.lang.String,org.drools.base.definitions.InternalKnowledgePackage> getPackagesMap()
- Specified by:
getPackagesMapin interfaceInternalRuleBase
-
getGlobals
public java.util.Map<java.lang.String,java.lang.reflect.Type> getGlobals()
- Specified by:
getGlobalsin interfaceInternalRuleBase
-
kBaseInternal_lock
public void kBaseInternal_lock()
-
kBaseInternal_unlock
public void kBaseInternal_unlock()
-
readLock
public void readLock()
- Specified by:
readLockin interfaceInternalRuleBase
-
readUnlock
public void readUnlock()
- Specified by:
readUnlockin interfaceInternalRuleBase
-
kBaseInternal_getLock
public java.util.concurrent.locks.ReentrantReadWriteLock kBaseInternal_getLock()
-
kBaseInternal_writeLock
public void kBaseInternal_writeLock()
-
kBaseInternal_tryWriteLock
public boolean kBaseInternal_tryWriteLock()
-
kBaseInternal_writeUnlock
public void kBaseInternal_writeUnlock()
-
addPackages
public void addPackages(java.util.Collection<? extends org.kie.api.definition.KiePackage> newPkgs)
Add aPackageto the network. Iterates through thePackageadding Each individualRuleto the network. Before update network each referencedWorkingMemoryis locked.- Specified by:
addPackagesin interfaceInternalRuleBase- Parameters:
newPkgs- The package to add.
-
addPackage
public java.util.concurrent.Future<org.kie.api.definition.KiePackage> addPackage(org.kie.api.definition.KiePackage newPkg)
- Specified by:
addPackagein interfaceInternalRuleBase
-
kBaseInternal_addPackages
public void kBaseInternal_addPackages(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> clonedPkgs, java.util.Collection<InternalWorkingMemory> workingMemories)
-
processAllTypesDeclaration
public void processAllTypesDeclaration(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> pkgs)
- Specified by:
processAllTypesDeclarationin interfaceInternalRuleBase
-
hasMultipleAgendaGroups
public boolean hasMultipleAgendaGroups()
- Specified by:
hasMultipleAgendaGroupsin interfaceInternalRuleBase
-
registerFunctionClassAndInnerClasses
public static void registerFunctionClassAndInnerClasses(java.lang.String functionClassName, JavaDialectRuntimeData runtime, KnowledgeBaseImpl.ClassRegister consumer) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
registerTypeDeclaration
public void registerTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)- Specified by:
registerTypeDeclarationin interfaceInternalRuleBase
-
processTypeDeclaration
protected void processTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)
-
registerAndLoadTypeDefinition
public java.lang.Class<?> registerAndLoadTypeDefinition(java.lang.String className, byte[] def) throws java.lang.ClassNotFoundException- Specified by:
registerAndLoadTypeDefinitionin interfaceInternalRuleBase- Throws:
java.lang.ClassNotFoundException
-
addGlobal
public void addGlobal(java.lang.String identifier, java.lang.reflect.Type type)- Specified by:
addGlobalin interfaceInternalRuleBase
-
removeGlobal
public void removeGlobal(java.lang.String identifier)
- Specified by:
removeGlobalin interfaceInternalRuleBase
-
setupRete
protected void setupRete()
-
registerAddedEntryNodeCache
public void registerAddedEntryNodeCache(EntryPointNode node)
- Specified by:
registerAddedEntryNodeCachein interfaceInternalRuleBase
-
getAddedEntryNodeCache
public java.util.Set<EntryPointNode> getAddedEntryNodeCache()
- Specified by:
getAddedEntryNodeCachein interfaceInternalRuleBase
-
registeRremovedEntryNodeCache
public void registeRremovedEntryNodeCache(EntryPointNode node)
- Specified by:
registeRremovedEntryNodeCachein interfaceInternalRuleBase
-
getRemovedEntryNodeCache
public java.util.Set<EntryPointNode> getRemovedEntryNodeCache()
- Specified by:
getRemovedEntryNodeCachein interfaceInternalRuleBase
-
getRete
public Rete getRete()
Retrieve the Rete-OO network for thisRuleBase.- Specified by:
getRetein interfaceInternalRuleBase- Returns:
- The RETE-OO network.
-
getReteooBuilder
public ReteooBuilder getReteooBuilder()
- Specified by:
getReteooBuilderin interfaceInternalRuleBase
-
getNodeCount
public int getNodeCount()
- Specified by:
getNodeCountin interfaceInternalRuleBase
-
getMemoryCount
public int getMemoryCount()
- Specified by:
getMemoryCountin interfaceInternalRuleBase
-
hasSegmentPrototypes
public boolean hasSegmentPrototypes()
- Specified by:
hasSegmentPrototypesin interfaceInternalRuleBase
-
registerSegmentPrototype
public void registerSegmentPrototype(LeftTupleNode tupleSource, SegmentMemory.SegmentPrototype smem)
- Specified by:
registerSegmentPrototypein interfaceInternalRuleBase
-
invalidateSegmentPrototype
public void invalidateSegmentPrototype(LeftTupleNode rootNode)
- Specified by:
invalidateSegmentPrototypein interfaceInternalRuleBase
-
getSegmentPrototype
public SegmentMemory.SegmentPrototype getSegmentPrototype(LeftTupleNode node)
- Specified by:
getSegmentPrototypein interfaceInternalRuleBase
-
createSegmentFromPrototype
public SegmentMemory createSegmentFromPrototype(ReteEvaluator reteEvaluator, LeftTupleSource tupleSource)
- Specified by:
createSegmentFromPrototypein interfaceInternalRuleBase
-
createSegmentFromPrototype
public SegmentMemory createSegmentFromPrototype(ReteEvaluator reteEvaluator, SegmentMemory.SegmentPrototype proto)
- Specified by:
createSegmentFromPrototypein interfaceInternalRuleBase
-
getSegmentPrototype
public SegmentMemory.SegmentPrototype getSegmentPrototype(SegmentMemory segment)
- Specified by:
getSegmentPrototypein interfaceInternalRuleBase
-
getExactTypeDeclaration
public org.drools.base.rule.TypeDeclaration getExactTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getExactTypeDeclarationin interfaceInternalRuleBase
-
getOrCreateExactTypeDeclaration
public org.drools.base.rule.TypeDeclaration getOrCreateExactTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getOrCreateExactTypeDeclarationin interfaceInternalRuleBase- Specified by:
getOrCreateExactTypeDeclarationin interfaceorg.drools.base.RuleBase
-
getTypeDeclaration
public org.drools.base.rule.TypeDeclaration getTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getTypeDeclarationin interfaceInternalRuleBase- Specified by:
getTypeDeclarationin interfaceorg.drools.base.RuleBase
-
getTypeDeclarations
public java.util.Collection<org.drools.base.rule.TypeDeclaration> getTypeDeclarations()
- Specified by:
getTypeDeclarationsin interfaceInternalRuleBase
-
beforeIncrementalUpdate
public void beforeIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
- Specified by:
beforeIncrementalUpdatein interfaceInternalRuleBase
-
afterIncrementalUpdate
public void afterIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
- Specified by:
afterIncrementalUpdatein interfaceInternalRuleBase
-
addRules
public void addRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules) throws org.drools.base.rule.InvalidPatternException- Specified by:
addRulesin interfaceInternalRuleBase- Throws:
org.drools.base.rule.InvalidPatternException
-
kBaseInternal_addRules
public void kBaseInternal_addRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> wms)
-
removeQuery
public void removeQuery(java.lang.String packageName, java.lang.String ruleName)- Specified by:
removeQueryin interfaceInternalRuleBase
-
removeRules
public void removeRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)
- Specified by:
removeRulesin interfaceInternalRuleBase
-
removeRule
public void removeRule(java.lang.String packageName, java.lang.String ruleName)- Specified by:
removeRulein interfaceInternalRuleBase
-
kBaseInternal_removeRule
public void kBaseInternal_removeRule(org.drools.base.definitions.InternalKnowledgePackage pkg, org.drools.base.definitions.rule.impl.RuleImpl rule, java.util.Collection<InternalWorkingMemory> workingMemories)
-
kBaseInternal_removeRules
public void kBaseInternal_removeRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> workingMemories)
-
removeFunction
public void removeFunction(java.lang.String packageName, java.lang.String functionName)- Specified by:
removeFunctionin interfaceInternalRuleBase
-
kBaseInternal_removeFunction
public void kBaseInternal_removeFunction(org.drools.base.definitions.InternalKnowledgePackage pkg, java.lang.String functionName)
-
addProcess
public void addProcess(org.kie.api.definition.process.Process process)
- Specified by:
addProcessin interfaceInternalRuleBase
-
kBaseInternal_addProcess
public void kBaseInternal_addProcess(org.kie.api.definition.process.Process process)
-
removeProcess
public void removeProcess(java.lang.String id)
- Specified by:
removeProcessin interfaceInternalRuleBase
-
kBaseInternal_removeProcess
public void kBaseInternal_removeProcess(java.lang.String id, org.kie.api.definition.process.Process process)
-
getProcess
public org.kie.api.definition.process.Process getProcess(java.lang.String id)
- Specified by:
getProcessin interfaceInternalRuleBase
-
getPackage
public org.drools.base.definitions.InternalKnowledgePackage getPackage(java.lang.String name)
- Specified by:
getPackagein interfaceInternalRuleBase
-
getRuleBaseConfiguration
public RuleBaseConfiguration getRuleBaseConfiguration()
- Specified by:
getRuleBaseConfigurationin interfaceInternalRuleBase
-
getKieBaseConfiguration
public KieBaseConfigurationImpl getKieBaseConfiguration()
- Specified by:
getKieBaseConfigurationin interfaceInternalRuleBase
-
getConfiguration
public org.kie.api.KieBaseConfiguration getConfiguration()
- Specified by:
getConfigurationin interfaceInternalRuleBase- Specified by:
getConfigurationin interfaceorg.drools.base.RuleBase
-
getRootClassLoader
public java.lang.ClassLoader getRootClassLoader()
- Specified by:
getRootClassLoaderin interfaceInternalRuleBase- Specified by:
getRootClassLoaderin interfaceorg.drools.base.RuleBase
-
executeQueuedActions
public void executeQueuedActions()
- Specified by:
executeQueuedActionsin interfaceInternalRuleBase
-
createNewPartitionId
public org.drools.base.common.RuleBasePartitionId createNewPartitionId()
- Specified by:
createNewPartitionIdin interfaceInternalRuleBase
-
isPartitioned
public boolean isPartitioned()
- Specified by:
isPartitionedin interfaceInternalRuleBase
-
getParallelEvaluationSlotsCount
public int getParallelEvaluationSlotsCount()
- Specified by:
getParallelEvaluationSlotsCountin interfaceInternalRuleBase
-
getFactType
public org.kie.api.definition.type.FactType getFactType(java.lang.String packageName, java.lang.String typeName)- Specified by:
getFactTypein interfaceInternalRuleBase
-
getClassFieldAccessorCache
public ClassFieldAccessorCache getClassFieldAccessorCache()
- Specified by:
getClassFieldAccessorCachein interfaceInternalRuleBase
-
getEntryPointIds
public java.util.Set<java.lang.String> getEntryPointIds()
- Specified by:
getEntryPointIdsin interfaceInternalRuleBase
-
removeObjectsGeneratedFromResource
public boolean removeObjectsGeneratedFromResource(org.kie.api.io.Resource resource, java.util.Collection<InternalWorkingMemory> workingMemories)- Specified by:
removeObjectsGeneratedFromResourcein interfaceInternalRuleBase
-
getResolvedReleaseId
public org.kie.api.builder.ReleaseId getResolvedReleaseId()
- Specified by:
getResolvedReleaseIdin interfaceInternalRuleBase
-
setResolvedReleaseId
public void setResolvedReleaseId(org.kie.api.builder.ReleaseId currentReleaseId)
- Specified by:
setResolvedReleaseIdin interfaceInternalRuleBase
-
getContainerId
public java.lang.String getContainerId()
- Specified by:
getContainerIdin interfaceInternalRuleBase
-
setContainerId
public void setContainerId(java.lang.String containerId)
- Specified by:
setContainerIdin interfaceInternalRuleBase
-
getRuleUnitDescriptionRegistry
public org.drools.base.ruleunit.RuleUnitDescriptionRegistry getRuleUnitDescriptionRegistry()
- Specified by:
getRuleUnitDescriptionRegistryin interfaceInternalRuleBase
-
hasUnits
public boolean hasUnits()
- Specified by:
hasUnitsin interfaceInternalRuleBase
-
getReceiveNodes
public java.util.List<AsyncReceiveNode> getReceiveNodes()
- Specified by:
getReceiveNodesin interfaceInternalRuleBase
-
addReceiveNode
public void addReceiveNode(AsyncReceiveNode node)
- Specified by:
addReceiveNodein interfaceInternalRuleBase
-
-