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 interface
KnowledgeBaseImpl.ClassRegister
-
Field Summary
Fields Modifier and Type Field Description java.util.List<java.util.List<java.lang.String>>
jaxbClasses
protected static org.slf4j.Logger
logger
protected 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 void
addGlobal(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)
void
addPackages(java.util.Collection<? extends org.kie.api.definition.KiePackage> newPkgs)
Add aPackage
to the network.void
addProcess(org.kie.api.definition.process.Process process)
void
addReceiveNode(AsyncReceiveNode node)
void
addRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)
void
afterIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
void
beforeIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
org.drools.base.common.RuleBasePartitionId
createNewPartitionId()
SegmentMemory
createSegmentFromPrototype(ReteEvaluator reteEvaluator, LeftTupleSource tupleSource)
SegmentMemory
createSegmentFromPrototype(ReteEvaluator reteEvaluator, SegmentMemory.SegmentPrototype proto)
void
executeQueuedActions()
java.util.Set<EntryPointNode>
getAddedEntryNodeCache()
ClassFieldAccessorCache
getClassFieldAccessorCache()
org.kie.api.KieBaseConfiguration
getConfiguration()
java.lang.String
getContainerId()
java.util.Set<java.lang.String>
getEntryPointIds()
org.drools.base.rule.TypeDeclaration
getExactTypeDeclaration(java.lang.Class<?> clazz)
org.kie.api.definition.type.FactType
getFactType(java.lang.String packageName, java.lang.String typeName)
java.util.Map<java.lang.String,java.lang.reflect.Type>
getGlobals()
java.lang.String
getId()
KieBaseConfigurationImpl
getKieBaseConfiguration()
org.kie.api.definition.KiePackage
getKiePackage(java.lang.String packageName)
java.util.Collection<org.kie.api.definition.KiePackage>
getKiePackages()
int
getMemoryCount()
int
getNodeCount()
org.drools.base.rule.TypeDeclaration
getOrCreateExactTypeDeclaration(java.lang.Class<?> clazz)
org.drools.base.definitions.InternalKnowledgePackage
getPackage(java.lang.String name)
org.drools.base.definitions.InternalKnowledgePackage[]
getPackages()
java.util.Map<java.lang.String,org.drools.base.definitions.InternalKnowledgePackage>
getPackagesMap()
org.kie.api.definition.process.Process
getProcess(java.lang.String id)
java.util.Collection<org.kie.api.definition.process.Process>
getProcesses()
org.kie.api.definition.rule.Query
getQuery(java.lang.String packageName, java.lang.String queryName)
java.util.List<AsyncReceiveNode>
getReceiveNodes()
java.util.Set<EntryPointNode>
getRemovedEntryNodeCache()
org.kie.api.builder.ReleaseId
getResolvedReleaseId()
Rete
getRete()
Retrieve the Rete-OO network for thisRuleBase
.ReteooBuilder
getReteooBuilder()
java.lang.ClassLoader
getRootClassLoader()
org.kie.api.definition.rule.Rule
getRule(java.lang.String packageName, java.lang.String ruleName)
RuleBaseConfiguration
getRuleBaseConfiguration()
org.drools.base.ruleunit.RuleUnitDescriptionRegistry
getRuleUnitDescriptionRegistry()
SegmentMemory.SegmentPrototype
getSegmentPrototype(LeftTupleNode node)
SegmentMemory.SegmentPrototype
getSegmentPrototype(SegmentMemory segment)
SessionConfiguration
getSessionConfiguration()
org.drools.base.rule.TypeDeclaration
getTypeDeclaration(java.lang.Class<?> clazz)
java.util.Collection<org.drools.base.rule.TypeDeclaration>
getTypeDeclarations()
boolean
hasMultipleAgendaGroups()
boolean
hasSegmentPrototypes()
boolean
hasUnits()
void
invalidateSegmentPrototype(LeftTupleNode rootNode)
void
kBaseInternal_addPackages(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> clonedPkgs, java.util.Collection<InternalWorkingMemory> workingMemories)
void
kBaseInternal_addProcess(org.kie.api.definition.process.Process process)
void
kBaseInternal_addRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> wms)
java.util.concurrent.locks.ReentrantReadWriteLock
kBaseInternal_getLock()
void
kBaseInternal_lock()
void
kBaseInternal_removeFunction(org.drools.base.definitions.InternalKnowledgePackage pkg, java.lang.String functionName)
void
kBaseInternal_removePackage(org.drools.base.definitions.InternalKnowledgePackage pkg, java.util.Collection<InternalWorkingMemory> workingMemories)
void
kBaseInternal_removeProcess(java.lang.String id, org.kie.api.definition.process.Process process)
void
kBaseInternal_removeRule(org.drools.base.definitions.InternalKnowledgePackage pkg, org.drools.base.definitions.rule.impl.RuleImpl rule, java.util.Collection<InternalWorkingMemory> workingMemories)
void
kBaseInternal_removeRules(java.util.Collection<? extends org.kie.api.definition.rule.Rule> rules, java.util.Collection<InternalWorkingMemory> workingMemories)
boolean
kBaseInternal_tryWriteLock()
void
kBaseInternal_unlock()
void
kBaseInternal_writeLock()
void
kBaseInternal_writeUnlock()
FactHandleFactory
newFactHandleFactory()
FactHandleFactory
newFactHandleFactory(long id, long counter)
void
processAllTypesDeclaration(java.util.Collection<org.drools.base.definitions.InternalKnowledgePackage> pkgs)
protected void
processTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)
void
readLock()
void
readUnlock()
void
registerAddedEntryNodeCache(EntryPointNode node)
java.lang.Class<?>
registerAndLoadTypeDefinition(java.lang.String className, byte[] def)
static void
registerFunctionClassAndInnerClasses(java.lang.String functionClassName, JavaDialectRuntimeData runtime, KnowledgeBaseImpl.ClassRegister consumer)
void
registeRremovedEntryNodeCache(EntryPointNode node)
void
registerSegmentPrototype(LeftTupleNode tupleSource, SegmentMemory.SegmentPrototype smem)
void
registerTypeDeclaration(org.drools.base.rule.TypeDeclaration newDecl, org.drools.base.definitions.InternalKnowledgePackage newPkg)
void
removeFunction(java.lang.String packageName, java.lang.String functionName)
void
removeGlobal(java.lang.String identifier)
void
removeKiePackage(java.lang.String packageName)
boolean
removeObjectsGeneratedFromResource(org.kie.api.io.Resource resource, java.util.Collection<InternalWorkingMemory> workingMemories)
void
removeProcess(java.lang.String id)
void
removeQuery(java.lang.String packageName, java.lang.String ruleName)
void
removeRule(java.lang.String packageName, java.lang.String ruleName)
void
removeRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)
void
setContainerId(java.lang.String containerId)
void
setResolvedReleaseId(org.kie.api.builder.ReleaseId currentReleaseId)
protected void
setupRete()
-
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:
getSessionConfiguration
in interfaceInternalRuleBase
-
removeKiePackage
public void removeKiePackage(java.lang.String packageName)
- Specified by:
removeKiePackage
in 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:
getRule
in interfaceInternalRuleBase
-
getQuery
public org.kie.api.definition.rule.Query getQuery(java.lang.String packageName, java.lang.String queryName)
- Specified by:
getQuery
in interfaceInternalRuleBase
-
getKiePackages
public java.util.Collection<org.kie.api.definition.KiePackage> getKiePackages()
- Specified by:
getKiePackages
in interfaceInternalRuleBase
-
getKiePackage
public org.kie.api.definition.KiePackage getKiePackage(java.lang.String packageName)
- Specified by:
getKiePackage
in interfaceInternalRuleBase
-
getId
public java.lang.String getId()
- Specified by:
getId
in interfaceInternalRuleBase
- Returns:
- the id
-
newFactHandleFactory
public FactHandleFactory newFactHandleFactory()
- Specified by:
newFactHandleFactory
in interfaceInternalRuleBase
-
newFactHandleFactory
public FactHandleFactory newFactHandleFactory(long id, long counter)
- Specified by:
newFactHandleFactory
in interfaceInternalRuleBase
-
getProcesses
public java.util.Collection<org.kie.api.definition.process.Process> getProcesses()
- Specified by:
getProcesses
in interfaceInternalRuleBase
-
getPackages
public org.drools.base.definitions.InternalKnowledgePackage[] getPackages()
- Specified by:
getPackages
in interfaceInternalRuleBase
-
getPackagesMap
public java.util.Map<java.lang.String,org.drools.base.definitions.InternalKnowledgePackage> getPackagesMap()
- Specified by:
getPackagesMap
in interfaceInternalRuleBase
-
getGlobals
public java.util.Map<java.lang.String,java.lang.reflect.Type> getGlobals()
- Specified by:
getGlobals
in interfaceInternalRuleBase
-
kBaseInternal_lock
public void kBaseInternal_lock()
-
kBaseInternal_unlock
public void kBaseInternal_unlock()
-
readLock
public void readLock()
- Specified by:
readLock
in interfaceInternalRuleBase
-
readUnlock
public void readUnlock()
- Specified by:
readUnlock
in 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 aPackage
to the network. Iterates through thePackage
adding Each individualRule
to the network. Before update network each referencedWorkingMemory
is locked.- Specified by:
addPackages
in 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:
addPackage
in 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:
processAllTypesDeclaration
in interfaceInternalRuleBase
-
hasMultipleAgendaGroups
public boolean hasMultipleAgendaGroups()
- Specified by:
hasMultipleAgendaGroups
in 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:
registerTypeDeclaration
in 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:
registerAndLoadTypeDefinition
in interfaceInternalRuleBase
- Throws:
java.lang.ClassNotFoundException
-
addGlobal
public void addGlobal(java.lang.String identifier, java.lang.reflect.Type type)
- Specified by:
addGlobal
in interfaceInternalRuleBase
-
removeGlobal
public void removeGlobal(java.lang.String identifier)
- Specified by:
removeGlobal
in interfaceInternalRuleBase
-
setupRete
protected void setupRete()
-
registerAddedEntryNodeCache
public void registerAddedEntryNodeCache(EntryPointNode node)
- Specified by:
registerAddedEntryNodeCache
in interfaceInternalRuleBase
-
getAddedEntryNodeCache
public java.util.Set<EntryPointNode> getAddedEntryNodeCache()
- Specified by:
getAddedEntryNodeCache
in interfaceInternalRuleBase
-
registeRremovedEntryNodeCache
public void registeRremovedEntryNodeCache(EntryPointNode node)
- Specified by:
registeRremovedEntryNodeCache
in interfaceInternalRuleBase
-
getRemovedEntryNodeCache
public java.util.Set<EntryPointNode> getRemovedEntryNodeCache()
- Specified by:
getRemovedEntryNodeCache
in interfaceInternalRuleBase
-
getRete
public Rete getRete()
Retrieve the Rete-OO network for thisRuleBase
.- Specified by:
getRete
in interfaceInternalRuleBase
- Returns:
- The RETE-OO network.
-
getReteooBuilder
public ReteooBuilder getReteooBuilder()
- Specified by:
getReteooBuilder
in interfaceInternalRuleBase
-
getNodeCount
public int getNodeCount()
- Specified by:
getNodeCount
in interfaceInternalRuleBase
-
getMemoryCount
public int getMemoryCount()
- Specified by:
getMemoryCount
in interfaceInternalRuleBase
-
hasSegmentPrototypes
public boolean hasSegmentPrototypes()
- Specified by:
hasSegmentPrototypes
in interfaceInternalRuleBase
-
registerSegmentPrototype
public void registerSegmentPrototype(LeftTupleNode tupleSource, SegmentMemory.SegmentPrototype smem)
- Specified by:
registerSegmentPrototype
in interfaceInternalRuleBase
-
invalidateSegmentPrototype
public void invalidateSegmentPrototype(LeftTupleNode rootNode)
- Specified by:
invalidateSegmentPrototype
in interfaceInternalRuleBase
-
getSegmentPrototype
public SegmentMemory.SegmentPrototype getSegmentPrototype(LeftTupleNode node)
- Specified by:
getSegmentPrototype
in interfaceInternalRuleBase
-
createSegmentFromPrototype
public SegmentMemory createSegmentFromPrototype(ReteEvaluator reteEvaluator, LeftTupleSource tupleSource)
- Specified by:
createSegmentFromPrototype
in interfaceInternalRuleBase
-
createSegmentFromPrototype
public SegmentMemory createSegmentFromPrototype(ReteEvaluator reteEvaluator, SegmentMemory.SegmentPrototype proto)
- Specified by:
createSegmentFromPrototype
in interfaceInternalRuleBase
-
getSegmentPrototype
public SegmentMemory.SegmentPrototype getSegmentPrototype(SegmentMemory segment)
- Specified by:
getSegmentPrototype
in interfaceInternalRuleBase
-
getExactTypeDeclaration
public org.drools.base.rule.TypeDeclaration getExactTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getExactTypeDeclaration
in interfaceInternalRuleBase
-
getOrCreateExactTypeDeclaration
public org.drools.base.rule.TypeDeclaration getOrCreateExactTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getOrCreateExactTypeDeclaration
in interfaceInternalRuleBase
- Specified by:
getOrCreateExactTypeDeclaration
in interfaceorg.drools.base.RuleBase
-
getTypeDeclaration
public org.drools.base.rule.TypeDeclaration getTypeDeclaration(java.lang.Class<?> clazz)
- Specified by:
getTypeDeclaration
in interfaceInternalRuleBase
- Specified by:
getTypeDeclaration
in interfaceorg.drools.base.RuleBase
-
getTypeDeclarations
public java.util.Collection<org.drools.base.rule.TypeDeclaration> getTypeDeclarations()
- Specified by:
getTypeDeclarations
in interfaceInternalRuleBase
-
beforeIncrementalUpdate
public void beforeIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
- Specified by:
beforeIncrementalUpdate
in interfaceInternalRuleBase
-
afterIncrementalUpdate
public void afterIncrementalUpdate(KieBaseUpdate kieBaseUpdate)
- Specified by:
afterIncrementalUpdate
in interfaceInternalRuleBase
-
addRules
public void addRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules) throws org.drools.base.rule.InvalidPatternException
- Specified by:
addRules
in 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:
removeQuery
in interfaceInternalRuleBase
-
removeRules
public void removeRules(java.util.Collection<org.drools.base.definitions.rule.impl.RuleImpl> rules)
- Specified by:
removeRules
in interfaceInternalRuleBase
-
removeRule
public void removeRule(java.lang.String packageName, java.lang.String ruleName)
- Specified by:
removeRule
in 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:
removeFunction
in 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:
addProcess
in interfaceInternalRuleBase
-
kBaseInternal_addProcess
public void kBaseInternal_addProcess(org.kie.api.definition.process.Process process)
-
removeProcess
public void removeProcess(java.lang.String id)
- Specified by:
removeProcess
in 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:
getProcess
in interfaceInternalRuleBase
-
getPackage
public org.drools.base.definitions.InternalKnowledgePackage getPackage(java.lang.String name)
- Specified by:
getPackage
in interfaceInternalRuleBase
-
getRuleBaseConfiguration
public RuleBaseConfiguration getRuleBaseConfiguration()
- Specified by:
getRuleBaseConfiguration
in interfaceInternalRuleBase
-
getKieBaseConfiguration
public KieBaseConfigurationImpl getKieBaseConfiguration()
- Specified by:
getKieBaseConfiguration
in interfaceInternalRuleBase
-
getConfiguration
public org.kie.api.KieBaseConfiguration getConfiguration()
- Specified by:
getConfiguration
in interfaceInternalRuleBase
- Specified by:
getConfiguration
in interfaceorg.drools.base.RuleBase
-
getRootClassLoader
public java.lang.ClassLoader getRootClassLoader()
- Specified by:
getRootClassLoader
in interfaceInternalRuleBase
- Specified by:
getRootClassLoader
in interfaceorg.drools.base.RuleBase
-
executeQueuedActions
public void executeQueuedActions()
- Specified by:
executeQueuedActions
in interfaceInternalRuleBase
-
createNewPartitionId
public org.drools.base.common.RuleBasePartitionId createNewPartitionId()
- Specified by:
createNewPartitionId
in interfaceInternalRuleBase
-
getFactType
public org.kie.api.definition.type.FactType getFactType(java.lang.String packageName, java.lang.String typeName)
- Specified by:
getFactType
in interfaceInternalRuleBase
-
getClassFieldAccessorCache
public ClassFieldAccessorCache getClassFieldAccessorCache()
- Specified by:
getClassFieldAccessorCache
in interfaceInternalRuleBase
-
getEntryPointIds
public java.util.Set<java.lang.String> getEntryPointIds()
- Specified by:
getEntryPointIds
in interfaceInternalRuleBase
-
removeObjectsGeneratedFromResource
public boolean removeObjectsGeneratedFromResource(org.kie.api.io.Resource resource, java.util.Collection<InternalWorkingMemory> workingMemories)
- Specified by:
removeObjectsGeneratedFromResource
in interfaceInternalRuleBase
-
getResolvedReleaseId
public org.kie.api.builder.ReleaseId getResolvedReleaseId()
- Specified by:
getResolvedReleaseId
in interfaceInternalRuleBase
-
setResolvedReleaseId
public void setResolvedReleaseId(org.kie.api.builder.ReleaseId currentReleaseId)
- Specified by:
setResolvedReleaseId
in interfaceInternalRuleBase
-
getContainerId
public java.lang.String getContainerId()
- Specified by:
getContainerId
in interfaceInternalRuleBase
-
setContainerId
public void setContainerId(java.lang.String containerId)
- Specified by:
setContainerId
in interfaceInternalRuleBase
-
getRuleUnitDescriptionRegistry
public org.drools.base.ruleunit.RuleUnitDescriptionRegistry getRuleUnitDescriptionRegistry()
- Specified by:
getRuleUnitDescriptionRegistry
in interfaceInternalRuleBase
-
hasUnits
public boolean hasUnits()
- Specified by:
hasUnits
in interfaceInternalRuleBase
-
getReceiveNodes
public java.util.List<AsyncReceiveNode> getReceiveNodes()
- Specified by:
getReceiveNodes
in interfaceInternalRuleBase
-
addReceiveNode
public void addReceiveNode(AsyncReceiveNode node)
- Specified by:
addReceiveNode
in interfaceInternalRuleBase
-
-