Package org.drools.compiler.builder.impl
Class KnowledgeBuilderImpl
java.lang.Object
org.drools.compiler.builder.impl.KnowledgeBuilderImpl
- All Implemented Interfaces:
DroolsAssemblerContext,BuilderConfigurationProvider,BuildResultCollector,GlobalVariableContext,InternalKnowledgeBaseProvider,RootClassLoaderProvider,TypeDeclarationContext,TypeDeclarationManager,InternalKnowledgeBuilder,PackageRegistryManager,AssemblerContext,KnowledgeBuilder,ProcessBuilder,RuleBuilder
public class KnowledgeBuilderImpl
extends Object
implements InternalKnowledgeBuilder, TypeDeclarationContext, BuildResultCollector, GlobalVariableContext
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.drools.compiler.builder.InternalKnowledgeBuilder
InternalKnowledgeBuilder.Empty, InternalKnowledgeBuilder.ResourceRemovalResult -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionUse this when package is starting from scratch.This will allow you to merge rules into this pre existing package.KnowledgeBuilderImpl(InternalKnowledgePackage pkg, KnowledgeBuilderConfiguration configuration) KnowledgeBuilderImpl(InternalKnowledgeBase kBase, KnowledgeBuilderConfiguration configuration) KnowledgeBuilderImpl(KnowledgeBuilderConfiguration configuration) Pass a specific configuration for the PackageBuilder -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(Resource resource, ResourceType type) voidadd(Resource resource, ResourceType type, ResourceConfiguration configuration) voidvoidvoidvoidaddKnowledgeResource(Resource resource, ResourceType type, ResourceConfiguration configuration) voidaddPackage(InternalKnowledgePackage newPkg) final voidaddPackage(PackageDescr packageDescr) Adds a package from a Descr/AST also triggering its compilation and the generation of the corresponding rete/phreak networkvoidaddPackageFromDrl(Reader reader) Load a rule package from DRL source.voidaddPackageFromDrl(Reader reader, Resource sourceResource) Load a rule package from DRL source and associate all loaded artifacts with the given resource.protected voidaddPackageWithResource(PackageDescr packageDescr, Resource resource) voidaddProcessFromXml(Reader processSource) Deprecated.voidaddProcessFromXml(Resource resource) Deprecated.voidaddRuleFlow(Reader processSource) Add a ruleflow (.rfm) asset to this package.batch()final voidbuildPackages(Collection<CompositePackageDescr> packages) voidvoid<T extends ResourceTypePackage<?>>
TcomputeIfAbsent(ResourceType resourceType, String namespace, Function<? super ResourceType, T> mappingFunction) protected BuildContextstatic FilecreateDumpDrlFile(File dumpDir, String fileName, String extension) protected voiddoFirstBuildStep(Collection<CompositePackageDescr> packages) Performs the actual building of rules, but may be empty in subclassesprotected voiddoSecondBuildStep(Collection<CompositePackageDescr> packages) Used by subclasses that need to perform the build after the assemblersbooleanfilterAccepts(ResourceChange.Type type, String namespace, String name) getAndRegisterTypeDeclaration(Class<?> cls, String packageName) protected AssetFilterReturn the PackageBuilderConfiguration for this PackageBuilder sessionprotected BuildResultCollector<T> TgetCachedOrCreate(String key, Supplier<T> creator) Returns an expander for DSLs (only if there is a DSL configured for this package).protected GlobalVariableContextgetOrCreatePackageRegistry(PackageDescr packageDescr) getPackage(String name) getPackageDescrs(String packageName) getPackageRegistry(String name) protected PackageRegistryManagergetResults(ResultSeverity... problemTypes) Return the knowledge builder results for the listed severities.getTypeDeclaration(Class<?> cls) getTypeDeclaration(ObjectType objectType) booleanThis will return true if there were errors in the package building and compiling phasebooleanhasInfo()booleanhasResults(ResultSeverity... problemTypes) booleanprotected voidvoidregisterBuildResource(Resource resource, ResourceType type) voidregisterBuildResources(List<Resource> resources) voidregisterPackage(PackageDescr packageDescr) voidremoveObjectsGeneratedFromResource(Resource resource) voidreportError(KnowledgeBuilderError error) voidReset the error list.voidvoidvoidvoidsetAssetFilter(AssetFilter assetFilter) voidsetBuildContext(BuildContext buildContext) voidsetReleaseId(ReleaseId releaseId) voidundo()voidvoidupdateResults(List<KnowledgeBuilderResult> results) protected voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.drools.compiler.builder.impl.BuildResultCollector
add, addAll, getAllResults
-
Field Details
-
logger
protected static final transient org.slf4j.Logger logger
-
-
Constructor Details
-
KnowledgeBuilderImpl
public KnowledgeBuilderImpl()Use this when package is starting from scratch. -
KnowledgeBuilderImpl
This will allow you to merge rules into this pre existing package. -
KnowledgeBuilderImpl
-
KnowledgeBuilderImpl
public KnowledgeBuilderImpl(InternalKnowledgeBase kBase, KnowledgeBuilderConfiguration configuration) -
KnowledgeBuilderImpl
Pass a specific configuration for the PackageBuilderPackageBuilderConfiguration is not thread safe and it also contains state. Once it is created and used in one or more PackageBuilders it should be considered immutable. Do not modify its properties while it is being used by a PackageBuilder.
-
KnowledgeBuilderImpl
public KnowledgeBuilderImpl(InternalKnowledgePackage pkg, KnowledgeBuilderConfiguration configuration)
-
-
Method Details
-
getReleaseId
-
setReleaseId
-
getBuildContext
-
createBuildContext
-
setBuildContext
-
getKnowledgeBase
- Specified by:
getKnowledgeBasein interfaceInternalKnowledgeBaseProvider
-
getTypeBuilder
- Specified by:
getTypeBuilderin interfaceTypeDeclarationContext
-
addPackageFromDrl
Load a rule package from DRL source.- Throws:
DroolsParserExceptionIOException
-
addPackageFromDrl
public void addPackageFromDrl(Reader reader, Resource sourceResource) throws DroolsParserException, IOException Load a rule package from DRL source and associate all loaded artifacts with the given resource.- Parameters:
reader-sourceResource- the source resource for the read artifacts- Throws:
DroolsParserExceptionIOException
-
createDumpDrlFile
-
addDsl
- Throws:
IOException
-
addRuleFlow
Add a ruleflow (.rfm) asset to this package. -
addProcessFromXml
Deprecated. -
getProcessBuilder
-
addProcessFromXml
Deprecated. -
addKnowledgeResource
public void addKnowledgeResource(Resource resource, ResourceType type, ResourceConfiguration configuration) -
addPackage
Adds a package from a Descr/AST also triggering its compilation and the generation of the corresponding rete/phreak network- Specified by:
addPackagein interfaceInternalKnowledgeBuilder
-
addPackageWithResource
-
wireAllRules
protected void wireAllRules() -
processKieBaseTypes
protected void processKieBaseTypes() -
addBuilderResult
- Specified by:
addBuilderResultin interfaceBuildResultCollector
-
getBuildResultCollector
-
computeIfAbsent
public <T extends ResourceTypePackage<?>> T computeIfAbsent(ResourceType resourceType, String namespace, Function<? super ResourceType, T> mappingFunction) - Specified by:
computeIfAbsentin interfaceAssemblerContext
-
getOrCreatePackageRegistry
- Specified by:
getOrCreatePackageRegistryin interfacePackageRegistryManager
-
registerPackage
-
getPackageRegistryManager
-
filterAccepts
- Specified by:
filterAcceptsin interfaceTypeDeclarationContext
-
updateResults
public void updateResults() -
updateResults
-
compileAll
public void compileAll() -
reloadAll
public void reloadAll() -
addPackage
-
getAndRegisterTypeDeclaration
- Specified by:
getAndRegisterTypeDeclarationin interfaceDroolsAssemblerContext- Specified by:
getAndRegisterTypeDeclarationin interfaceTypeDeclarationManager
-
getPackages
-
getBuilderConfiguration
Return the PackageBuilderConfiguration for this PackageBuilder session- Specified by:
getBuilderConfigurationin interfaceBuilderConfigurationProvider- Returns:
- The PackageBuilderConfiguration
-
getPackageRegistry
- Specified by:
getPackageRegistryin interfaceDroolsAssemblerContext- Specified by:
getPackageRegistryin interfacePackageRegistryManager
-
getPackage
- Specified by:
getPackagein interfaceInternalKnowledgeBuilder
-
getPackageRegistry
- Specified by:
getPackageRegistryin interfacePackageRegistryManager
-
getPackageNames
- Specified by:
getPackageNamesin interfacePackageRegistryManager
-
getPackageDescrs
- Specified by:
getPackageDescrsin interfaceDroolsAssemblerContext- Specified by:
getPackageDescrsin interfaceTypeDeclarationContext
-
getDslExpander
Returns an expander for DSLs (only if there is a DSL configured for this package). -
getGlobals
- Specified by:
getGlobalsin interfaceDroolsAssemblerContext- Specified by:
getGlobalsin interfaceGlobalVariableContext
-
addGlobal
- Specified by:
addGlobalin interfaceGlobalVariableContext
-
getGlobalVariableContext
-
hasErrors
public boolean hasErrors()This will return true if there were errors in the package building and compiling phase- Specified by:
hasErrorsin interfaceBuildResultCollector- Specified by:
hasErrorsin interfaceKnowledgeBuilder
-
getResults
Description copied from interface:BuildResultCollectorReturn the knowledge builder results for the listed severities.- Specified by:
getResultsin interfaceBuildResultCollector- Specified by:
getResultsin interfaceKnowledgeBuilder
-
hasResults
- Specified by:
hasResultsin interfaceBuildResultCollector- Specified by:
hasResultsin interfaceKnowledgeBuilder
-
hasWarnings
public boolean hasWarnings() -
hasInfo
public boolean hasInfo() -
getWarnings
-
reportError
- Specified by:
reportErrorin interfaceAssemblerContext
-
getErrors
- Specified by:
getErrorsin interfaceDroolsAssemblerContext- Specified by:
getErrorsin interfaceKnowledgeBuilder- Returns:
- A list of Error objects that resulted from building and compiling the package.
-
resetErrors
public void resetErrors()Reset the error list. This is useful when incrementally building packages. Care should be used when building this, if you clear this when there were errors on items that a rule depends on (eg functions), then you will get spurious errors which will not be that helpful. -
resetWarnings
public void resetWarnings() -
resetProblems
public void resetProblems() -
getRootClassLoader
- Specified by:
getRootClassLoaderin interfaceRootClassLoaderProvider
-
registerBuildResource
-
registerBuildResources
-
undo
public void undo()- Specified by:
undoin interfaceKnowledgeBuilder
-
removeObjectsGeneratedFromResource
public InternalKnowledgeBuilder.ResourceRemovalResult removeObjectsGeneratedFromResource(Resource resource) - Specified by:
removeObjectsGeneratedFromResourcein interfaceInternalKnowledgeBuilder
-
rewireAllClassObjectTypes
public void rewireAllClassObjectTypes()- Specified by:
rewireAllClassObjectTypesin interfaceInternalKnowledgeBuilder
-
setAssetFilter
-
getAssetFilter
-
add
- Specified by:
addin interfaceKnowledgeBuilder
-
batch
- Specified by:
batchin interfaceKnowledgeBuilder
-
add
- Specified by:
addin interfaceKnowledgeBuilder
-
getKnowledgePackages
- Specified by:
getKnowledgePackagesin interfaceKnowledgeBuilder
-
newKieBase
- Specified by:
newKieBasein interfaceKnowledgeBuilder
-
newKnowledgeBase
-
getTypeDeclaration
- Specified by:
getTypeDeclarationin interfaceDroolsAssemblerContext- Specified by:
getTypeDeclarationin interfaceTypeDeclarationManager
-
getTypeDeclaration
- Specified by:
getTypeDeclarationin interfaceDroolsAssemblerContext- Specified by:
getTypeDeclarationin interfaceTypeDeclarationManager
-
getCachedOrCreate
-
buildPackages
-
doFirstBuildStep
Performs the actual building of rules, but may be empty in subclasses -
doSecondBuildStep
Used by subclasses that need to perform the build after the assemblers -
buildPackagesWithoutRules
-