Class KnowledgeBuilderImpl

    • Field Detail

      • logger

        protected static final transient org.slf4j.Logger logger
    • Constructor Detail

      • KnowledgeBuilderImpl

        public KnowledgeBuilderImpl()
        Use this when package is starting from scratch.
      • KnowledgeBuilderImpl

        public KnowledgeBuilderImpl​(org.drools.core.definitions.InternalKnowledgePackage pkg)
        This will allow you to merge rules into this pre existing package.
      • KnowledgeBuilderImpl

        public KnowledgeBuilderImpl​(org.drools.core.impl.InternalKnowledgeBase kBase)
      • KnowledgeBuilderImpl

        public KnowledgeBuilderImpl​(KnowledgeBuilderConfigurationImpl configuration)
        Pass a specific configuration for the PackageBuilder

        PackageBuilderConfiguration 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.

    • Method Detail

      • getReleaseId

        public org.kie.api.builder.ReleaseId getReleaseId()
      • setReleaseId

        public void setReleaseId​(org.kie.api.builder.ReleaseId releaseId)
      • createBuildContext

        protected BuildContext createBuildContext()
      • setBuildContext

        public void setBuildContext​(BuildContext buildContext)
      • addPackageFromDrl

        public void addPackageFromDrl​(Reader reader,
                                      org.kie.api.io.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:
        DroolsParserException
        IOException
      • createDumpDrlFile

        public static File createDumpDrlFile​(File dumpDir,
                                             String fileName,
                                             String extension)
      • addRuleFlow

        public void addRuleFlow​(Reader processSource)
        Add a ruleflow (.rfm) asset to this package.
      • addProcessFromXml

        @Deprecated
        public void addProcessFromXml​(org.kie.api.io.Resource resource)
        Deprecated.
      • addProcessFromXml

        @Deprecated
        public void addProcessFromXml​(Reader processSource)
        Deprecated.
      • addKnowledgeResource

        public void addKnowledgeResource​(org.kie.api.io.Resource resource,
                                         org.kie.api.io.ResourceType type,
                                         org.kie.api.io.ResourceConfiguration configuration)
      • addPackage

        public void addPackage​(PackageDescr packageDescr)
        Adds a package from a Descr/AST also triggering its compilation and the generation of the corresponding rete/phreak network
        Specified by:
        addPackage in interface InternalKnowledgeBuilder
      • wireAllRules

        protected void wireAllRules()
      • processKieBaseTypes

        protected void processKieBaseTypes()
      • compileRete

        protected void compileRete​(PackageDescr packageDescr)
      • addBuilderResult

        public void addBuilderResult​(org.kie.internal.builder.KnowledgeBuilderResult result)
      • computeIfAbsent

        public <T extends org.kie.api.internal.io.ResourceTypePackage<?>> T computeIfAbsent​(org.kie.api.io.ResourceType resourceType,
                                                                                            String namespace,
                                                                                            Function<? super org.kie.api.io.ResourceType,​T> mappingFunction)
        Specified by:
        computeIfAbsent in interface org.kie.internal.builder.AssemblerContext
      • registerPackage

        public void registerPackage​(PackageDescr packageDescr)
      • updateResults

        public void updateResults()
      • updateResults

        public void updateResults​(List<org.kie.internal.builder.KnowledgeBuilderResult> results)
      • compileAll

        public void compileAll()
      • reloadAll

        public void reloadAll()
      • addPackage

        public void addPackage​(org.drools.core.definitions.InternalKnowledgePackage newPkg)
      • validateUniqueRuleNames

        protected void validateUniqueRuleNames​(PackageDescr packageDescr)
      • getPackages

        public org.drools.core.definitions.InternalKnowledgePackage[] getPackages()
      • getDslExpander

        public DefaultExpander getDslExpander()
        Returns an expander for DSLs (only if there is a DSL configured for this package).
      • addGlobal

        public void addGlobal​(String name,
                              Class<?> type)
      • hasErrors

        public boolean hasErrors()
        This will return true if there were errors in the package building and compiling phase
        Specified by:
        hasErrors in interface org.kie.internal.builder.KnowledgeBuilder
      • getResults

        public org.kie.internal.builder.KnowledgeBuilderResults getResults​(org.kie.internal.builder.ResultSeverity... problemTypes)
        Specified by:
        getResults in interface org.kie.internal.builder.KnowledgeBuilder
      • hasResults

        public boolean hasResults​(org.kie.internal.builder.ResultSeverity... problemTypes)
        Specified by:
        hasResults in interface org.kie.internal.builder.KnowledgeBuilder
      • hasWarnings

        public boolean hasWarnings()
      • hasInfo

        public boolean hasInfo()
      • reportError

        public void reportError​(org.kie.internal.builder.KnowledgeBuilderError error)
        Specified by:
        reportError in interface org.kie.internal.builder.AssemblerContext
      • getErrors

        public PackageBuilderErrors getErrors()
        Specified by:
        getErrors in interface DroolsAssemblerContext
        Specified by:
        getErrors in interface org.kie.internal.builder.KnowledgeBuilder
        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()
      • registerBuildResource

        public void registerBuildResource​(org.kie.api.io.Resource resource,
                                          org.kie.api.io.ResourceType type)
      • registerBuildResources

        public void registerBuildResources​(List<org.kie.api.io.Resource> resources)
      • undo

        public void undo()
        Specified by:
        undo in interface org.kie.internal.builder.KnowledgeBuilder
      • add

        public void add​(org.kie.api.io.Resource resource,
                        org.kie.api.io.ResourceType type)
        Specified by:
        add in interface org.kie.internal.builder.KnowledgeBuilder
      • batch

        public org.kie.internal.builder.CompositeKnowledgeBuilder batch()
        Specified by:
        batch in interface org.kie.internal.builder.KnowledgeBuilder
      • add

        public void add​(org.kie.api.io.Resource resource,
                        org.kie.api.io.ResourceType type,
                        org.kie.api.io.ResourceConfiguration configuration)
        Specified by:
        add in interface org.kie.internal.builder.KnowledgeBuilder
      • getKnowledgePackages

        public Collection<org.kie.api.definition.KiePackage> getKnowledgePackages()
        Specified by:
        getKnowledgePackages in interface org.kie.internal.builder.KnowledgeBuilder
      • newKieBase

        public org.kie.api.KieBase newKieBase()
        Specified by:
        newKieBase in interface org.kie.internal.builder.KnowledgeBuilder
      • newKnowledgeBase

        public org.kie.api.KieBase newKnowledgeBase​(org.kie.api.KieBaseConfiguration conf)
      • normalizeTypeDeclarationAnnotations

        public void normalizeTypeDeclarationAnnotations​(PackageDescr packageDescr,
                                                        org.drools.core.addon.TypeResolver typeResolver)
      • normalizeRuleAnnotations

        public void normalizeRuleAnnotations​(PackageDescr packageDescr,
                                             org.drools.core.addon.TypeResolver typeResolver)
      • normalizeAnnotations

        protected void normalizeAnnotations​(AnnotatedBaseDescr annotationsContainer,
                                            org.drools.core.addon.TypeResolver typeResolver,
                                            boolean isStrict)
      • getCachedOrCreate

        public <T> T getCachedOrCreate​(String key,
                                       Supplier<T> creator)
      • doFirstBuildStep

        protected void doFirstBuildStep​(Collection<CompositePackageDescr> packages)
        Performs the actual building of rules, but may be empty in subclasses
      • doSecondBuildStep

        protected void doSecondBuildStep​(Collection<CompositePackageDescr> packages)
        Used by subclasses that need to perform the build after the assemblers