Drools :: Compiler 6.2.0.Final

org.drools.compiler.builder.impl
Class KnowledgeBuilderImpl

java.lang.Object
  extended by org.drools.compiler.builder.impl.KnowledgeBuilderImpl
All Implemented Interfaces:
org.kie.internal.builder.KnowledgeBuilder, org.kie.internal.builder.ProcessBuilder, org.kie.internal.builder.RuleBuilder

public class KnowledgeBuilderImpl
extends Object
implements org.kie.internal.builder.KnowledgeBuilder


Nested Class Summary
static interface KnowledgeBuilderImpl.AssetFilter
           
static class KnowledgeBuilderImpl.MissingPackageNameException
           
static class KnowledgeBuilderImpl.PackageMergeException
           
 
Field Summary
protected  org.drools.core.type.DateFormats dateFormats
           
protected static org.slf4j.Logger logger
           
static RuleBuilder ruleBuilder
           
 
Constructor Summary
KnowledgeBuilderImpl()
          Use this when package is starting from scratch.
KnowledgeBuilderImpl(org.drools.core.impl.InternalKnowledgeBase kBase)
           
KnowledgeBuilderImpl(org.drools.core.impl.InternalKnowledgeBase kBase, KnowledgeBuilderConfigurationImpl configuration)
           
KnowledgeBuilderImpl(org.drools.core.definitions.InternalKnowledgePackage pkg)
          This will allow you to merge rules into this pre existing package.
KnowledgeBuilderImpl(org.drools.core.definitions.InternalKnowledgePackage pkg, KnowledgeBuilderConfigurationImpl configuration)
           
KnowledgeBuilderImpl(KnowledgeBuilderConfigurationImpl configuration)
          Pass a specific configuration for the PackageBuilder PackageBuilderConfiguration is not thread safe and it also contains state.
 
Method Summary
 void add(org.kie.api.io.Resource resource, org.kie.api.io.ResourceType type)
           
 void add(org.kie.api.io.Resource resource, org.kie.api.io.ResourceType type, org.kie.api.io.ResourceConfiguration configuration)
           
 void addDsl(org.kie.api.io.Resource resource)
           
 void addKnowledgeResource(org.kie.api.io.Resource resource, org.kie.api.io.ResourceType type, org.kie.api.io.ResourceConfiguration configuration)
           
 void addPackage(org.drools.core.definitions.InternalKnowledgePackage newPkg)
           
 void addPackage(PackageDescr packageDescr)
          This adds a package from a Descr/AST This will also trigger a compile, if there are any generated classes to compile of course.
 void addPackageFromDecisionTable(org.kie.api.io.Resource resource, org.kie.api.io.ResourceConfiguration configuration)
           
 void addPackageFromDrl(Reader reader)
          Load a rule package from DRL source.
 void addPackageFromDrl(Reader source, Reader dsl)
          Load a rule package from DRL source using the supplied DSL configuration.
 void addPackageFromDrl(Reader reader, org.kie.api.io.Resource sourceResource)
          Load a rule package from DRL source and associate all loaded artifacts with the given resource.
 void addPackageFromDrl(org.kie.api.io.Resource resource)
           
 void addPackageFromDslr(org.kie.api.io.Resource resource)
           
 void addPackageFromPMML(org.kie.api.io.Resource resource, org.kie.api.io.ResourceType type, org.kie.api.io.ResourceConfiguration configuration)
           
 void addPackageFromScoreCard(org.kie.api.io.Resource resource, org.kie.api.io.ResourceConfiguration configuration)
           
 void addPackageFromXml(Reader reader)
          Load a rule package from XML source.
 void addPackageFromXml(org.kie.api.io.Resource resource)
           
 void addProcessFromXml(Reader processSource)
           
 void addProcessFromXml(org.kie.api.io.Resource resource)
           
 void addRuleFlow(Reader processSource)
          Add a ruleflow (.rfm) asset to this package.
 org.kie.internal.builder.CompositeKnowledgeBuilder batch()
           
 void compileAll()
           
 void completePackageUpdate()
           
 org.drools.core.rule.TypeDeclaration getAndRegisterTypeDeclaration(Class<?> cls, String packageName)
           
 KnowledgeBuilderImpl.AssetFilter getAssetFilter()
           
 KnowledgeBuilderConfigurationImpl getBuilderConfiguration()
          Return the PackageBuilderConfiguration for this PackageBuilder session
 org.drools.core.type.DateFormats getDateFormats()
           
 String getDefaultDialect()
           
 DefaultExpander getDslExpander()
          Returns an expander for DSLs (only if there is a DSL configured for this package).
 PackageBuilderErrors getErrors()
           
 Map<String,Class<?>> getGlobals()
           
 Collection<org.kie.internal.definition.KnowledgePackage> getKnowledgePackages()
           
 org.drools.core.definitions.InternalKnowledgePackage getPackage()
           
 List<PackageDescr> getPackageDescrs(String packageName)
           
 Collection<String> getPackageNames()
           
 Map<String,PackageRegistry> getPackageRegistry()
           
 PackageRegistry getPackageRegistry(String name)
           
 org.drools.core.definitions.InternalKnowledgePackage[] getPackages()
           
 org.kie.internal.builder.KnowledgeBuilderResults getResults(org.kie.internal.builder.ResultSeverity... problemTypes)
           
 ClassLoader getRootClassLoader()
           
 org.drools.core.rule.TypeDeclaration getTypeDeclaration(Class<?> cls)
           
 List<DroolsWarning> getWarnings()
           
 boolean hasErrors()
          This will return true if there were errors in the package building and compiling phase
 boolean hasInfo()
           
 boolean hasResults(org.kie.internal.builder.ResultSeverity... problemTypes)
           
 boolean hasWarnings()
           
 boolean isClassInUse(String className)
           
 org.kie.internal.KnowledgeBase newKnowledgeBase()
           
 org.kie.internal.KnowledgeBase newKnowledgeBase(org.kie.api.KieBaseConfiguration conf)
           
 PackageRegistry newPackage(PackageDescr packageDescr)
           
 void normalizeRuleAnnotations(PackageDescr packageDescr)
           
 void normalizeTypeDeclarationAnnotations(PackageDescr packageDescr)
           
 void registerBuildResource(org.kie.api.io.Resource resource, org.kie.api.io.ResourceType type)
           
 void registerBuildResources(List<org.kie.api.io.Resource> resources)
           
 void reloadAll()
           
 boolean removeObjectsGeneratedFromResource(org.kie.api.io.Resource resource)
           
protected  void resetErrors()
          Reset the error list.
protected  void resetProblems()
           
protected  void resetWarnings()
           
 void rewireClassObjectTypes(Collection<String> packages)
           
 void setAllRuntimesDirty(Collection<String> packages)
           
 void setAssetFilter(KnowledgeBuilderImpl.AssetFilter assetFilter)
           
 void startPackageUpdate()
           
 void undo()
           
 void updateResults()
           
 void updateResults(List<org.kie.internal.builder.KnowledgeBuilderResult> results)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected static final transient org.slf4j.Logger logger

ruleBuilder

public static final RuleBuilder ruleBuilder

dateFormats

protected org.drools.core.type.DateFormats dateFormats
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.


KnowledgeBuilderImpl

public KnowledgeBuilderImpl(org.drools.core.definitions.InternalKnowledgePackage pkg,
                            KnowledgeBuilderConfigurationImpl configuration)

KnowledgeBuilderImpl

public KnowledgeBuilderImpl(org.drools.core.impl.InternalKnowledgeBase kBase,
                            KnowledgeBuilderConfigurationImpl configuration)
Method Detail

addPackageFromDrl

public void addPackageFromDrl(Reader reader)
                       throws DroolsParserException,
                              IOException
Load a rule package from DRL source.

Throws:
DroolsParserException
IOException

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

addPackageFromDecisionTable

public void addPackageFromDecisionTable(org.kie.api.io.Resource resource,
                                        org.kie.api.io.ResourceConfiguration configuration)
                                 throws DroolsParserException,
                                        IOException
Throws:
DroolsParserException
IOException

addPackageFromScoreCard

public void addPackageFromScoreCard(org.kie.api.io.Resource resource,
                                    org.kie.api.io.ResourceConfiguration configuration)
                             throws DroolsParserException,
                                    IOException
Throws:
DroolsParserException
IOException

addPackageFromDrl

public void addPackageFromDrl(org.kie.api.io.Resource resource)
                       throws DroolsParserException,
                              IOException
Throws:
DroolsParserException
IOException

addPackageFromXml

public void addPackageFromXml(Reader reader)
                       throws DroolsParserException,
                              IOException
Load a rule package from XML source.

Parameters:
reader -
Throws:
DroolsParserException
IOException

addPackageFromXml

public void addPackageFromXml(org.kie.api.io.Resource resource)
                       throws DroolsParserException,
                              IOException
Throws:
DroolsParserException
IOException

addPackageFromDrl

public void addPackageFromDrl(Reader source,
                              Reader dsl)
                       throws DroolsParserException,
                              IOException
Load a rule package from DRL source using the supplied DSL configuration.

Parameters:
source - The source of the rules.
dsl - The source of the domain specific language configuration.
Throws:
DroolsParserException
IOException

addPackageFromDslr

public void addPackageFromDslr(org.kie.api.io.Resource resource)
                        throws DroolsParserException,
                               IOException
Throws:
DroolsParserException
IOException

addDsl

public void addDsl(org.kie.api.io.Resource resource)
            throws IOException
Throws:
IOException

addRuleFlow

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


addProcessFromXml

public void addProcessFromXml(org.kie.api.io.Resource resource)

addProcessFromXml

public void addProcessFromXml(Reader processSource)

addKnowledgeResource

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

addPackageFromPMML

public void addPackageFromPMML(org.kie.api.io.Resource resource,
                               org.kie.api.io.ResourceType type,
                               org.kie.api.io.ResourceConfiguration configuration)
                        throws Exception
Throws:
Exception

addPackage

public void addPackage(PackageDescr packageDescr)
This adds a package from a Descr/AST This will also trigger a compile, if there are any generated classes to compile of course.


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)

newPackage

public PackageRegistry newPackage(PackageDescr packageDescr)

getAndRegisterTypeDeclaration

public org.drools.core.rule.TypeDeclaration getAndRegisterTypeDeclaration(Class<?> cls,
                                                                          String packageName)

getPackage

public org.drools.core.definitions.InternalKnowledgePackage getPackage()
Returns:
The compiled package. The package may contain errors, which you can report on by calling getErrors or printErrors. If you try to add an invalid package (or rule) to a RuleBase, you will get a runtime exception. Compiled packages are serializable.

getPackages

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

getBuilderConfiguration

public KnowledgeBuilderConfigurationImpl getBuilderConfiguration()
Return the PackageBuilderConfiguration for this PackageBuilder session

Returns:
The PackageBuilderConfiguration

getPackageRegistry

public PackageRegistry getPackageRegistry(String name)

getPackageRegistry

public Map<String,PackageRegistry> getPackageRegistry()

getDateFormats

public org.drools.core.type.DateFormats getDateFormats()

getPackageNames

public Collection<String> getPackageNames()

getPackageDescrs

public List<PackageDescr> getPackageDescrs(String packageName)

getDslExpander

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


getGlobals

public Map<String,Class<?>> getGlobals()

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()

getWarnings

public List<DroolsWarning> getWarnings()

getErrors

public PackageBuilderErrors getErrors()
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

protected 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

protected void resetWarnings()

resetProblems

protected void resetProblems()

getDefaultDialect

public String getDefaultDialect()

getRootClassLoader

public ClassLoader getRootClassLoader()

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

removeObjectsGeneratedFromResource

public boolean removeObjectsGeneratedFromResource(org.kie.api.io.Resource resource)

startPackageUpdate

public void startPackageUpdate()

completePackageUpdate

public void completePackageUpdate()

setAllRuntimesDirty

public void setAllRuntimesDirty(Collection<String> packages)

rewireClassObjectTypes

public void rewireClassObjectTypes(Collection<String> packages)

isClassInUse

public boolean isClassInUse(String className)

getAssetFilter

public KnowledgeBuilderImpl.AssetFilter getAssetFilter()

setAssetFilter

public void setAssetFilter(KnowledgeBuilderImpl.AssetFilter assetFilter)

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.internal.definition.KnowledgePackage> getKnowledgePackages()
Specified by:
getKnowledgePackages in interface org.kie.internal.builder.KnowledgeBuilder

newKnowledgeBase

public org.kie.internal.KnowledgeBase newKnowledgeBase()
Specified by:
newKnowledgeBase in interface org.kie.internal.builder.KnowledgeBuilder

newKnowledgeBase

public org.kie.internal.KnowledgeBase newKnowledgeBase(org.kie.api.KieBaseConfiguration conf)

getTypeDeclaration

public org.drools.core.rule.TypeDeclaration getTypeDeclaration(Class<?> cls)

normalizeTypeDeclarationAnnotations

public void normalizeTypeDeclarationAnnotations(PackageDescr packageDescr)

normalizeRuleAnnotations

public void normalizeRuleAnnotations(PackageDescr packageDescr)

Drools :: Compiler 6.2.0.Final

Copyright © 2001-2015 JBoss by Red Hat. All Rights Reserved.