org.drools.agent.impl
Class KnowledgeAgentImpl

java.lang.Object
  extended by org.drools.agent.impl.KnowledgeAgentImpl
All Implemented Interfaces:
org.drools.agent.KnowledgeAgent, org.drools.event.io.ResourceChangeListener

public class KnowledgeAgentImpl
extends Object
implements org.drools.agent.KnowledgeAgent, org.drools.event.io.ResourceChangeListener

Drools Implementation of the KnowledgeAgent interface. Implements itself as a ResourceChangeListener as well so it can act as an agent service to provide incremental of the KnowledgeBase which connects to this or entirely new rebuilds for new KnowledgeBases.


Nested Class Summary
static class KnowledgeAgentImpl.ChangeSetNotificationDetector
          A class to monitor and handle ChangeSets fired by the ResourceChangeNotifier on a separate service (or process).
static class KnowledgeAgentImpl.ChangeSetState
          Keeps state information during the 'state' of a ChangeSet alteration so past information can be kept along the way.
 
Nested classes/interfaces inherited from interface org.drools.agent.KnowledgeAgent
org.drools.agent.KnowledgeAgent.ResourceStatus
 
Constructor Summary
KnowledgeAgentImpl(String name, org.drools.KnowledgeBase kbase, org.drools.agent.KnowledgeAgentConfiguration configuration, org.drools.builder.KnowledgeBuilderConfiguration builderConfiguration)
          Default constructor for KnowledgeAgentImpl
 
Method Summary
 boolean addDefinitionMapping(org.drools.io.Resource resource, org.drools.definition.KnowledgeDefinition definition, boolean notify)
          Add an resource/definition entry to registeredResources.
 void addEventListener(org.drools.event.knowledgeagent.KnowledgeAgentEventListener listener)
           
 boolean addResourceMapping(org.drools.io.Resource resource, boolean notify)
           
 void applyChangeSet(org.drools.ChangeSet changeSet)
           
 void applyChangeSet(org.drools.io.Resource resource)
           
 void autoBuildResourceMapping()
          This indexes the rules, flows, type declarations, etc against their respective URLs if they have any, to allow more fine grained removal and not just removing of an entire package
 void buildKnowledgeBase(KnowledgeAgentImpl.ChangeSetState changeSetState)
          Rebuilds and creates a new KnowledgeBase for this KnowledgeAgent when called based on the ChangeSet that comes in and if newInstance is set to true.
 void dispose()
           
protected  void finalize()
           
 org.drools.ChangeSet getChangeSet(org.drools.io.Resource resource)
          Returns a ChangeSet based on a resource with a resource type of ChangeSet.
 org.drools.KnowledgeBase getKnowledgeBase()
           
 String getName()
           
 Set<org.drools.io.Resource> getResourceDirectories()
           
 boolean isNewInstance()
           
 boolean isUseKBaseClassLoaderForCompiling()
           
 void monitorResourceChangeEvents(boolean monitor)
          Kicks off the monitoring service for handling ResourceChangeEvents on a separate process.
 org.drools.runtime.StatelessKnowledgeSession newStatelessKnowledgeSession()
           
 org.drools.runtime.StatelessKnowledgeSession newStatelessKnowledgeSession(org.drools.runtime.KnowledgeSessionConfiguration conf)
           
 void processChangeSet(org.drools.ChangeSet changeSet, KnowledgeAgentImpl.ChangeSetState changeSetState)
          Processes a changeSet.
 void processChangeSet(org.drools.io.Resource resource, KnowledgeAgentImpl.ChangeSetState changeSetState)
           
 void removeEventListener(org.drools.event.knowledgeagent.KnowledgeAgentEventListener listener)
           
 Set<org.drools.definition.KnowledgeDefinition> removeResourceMapping(org.drools.io.Resource resource, boolean unsubscribe)
           
 void resourcesChanged(org.drools.ChangeSet changeSet)
           
 void setSystemEventListener(org.drools.SystemEventListener listener)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KnowledgeAgentImpl

public KnowledgeAgentImpl(String name,
                          org.drools.KnowledgeBase kbase,
                          org.drools.agent.KnowledgeAgentConfiguration configuration,
                          org.drools.builder.KnowledgeBuilderConfiguration builderConfiguration)
Default constructor for KnowledgeAgentImpl

Parameters:
name -
kbase -
configuration -
Method Detail

setSystemEventListener

public void setSystemEventListener(org.drools.SystemEventListener listener)
Specified by:
setSystemEventListener in interface org.drools.agent.KnowledgeAgent

getResourceDirectories

public Set<org.drools.io.Resource> getResourceDirectories()

isNewInstance

public boolean isNewInstance()

isUseKBaseClassLoaderForCompiling

public boolean isUseKBaseClassLoaderForCompiling()

applyChangeSet

public void applyChangeSet(org.drools.io.Resource resource)
Specified by:
applyChangeSet in interface org.drools.agent.KnowledgeAgent

applyChangeSet

public void applyChangeSet(org.drools.ChangeSet changeSet)
Specified by:
applyChangeSet in interface org.drools.agent.KnowledgeAgent

processChangeSet

public void processChangeSet(org.drools.io.Resource resource,
                             KnowledgeAgentImpl.ChangeSetState changeSetState)

processChangeSet

public void processChangeSet(org.drools.ChangeSet changeSet,
                             KnowledgeAgentImpl.ChangeSetState changeSetState)
Processes a changeSet. If KnowledgeAgentImpl.ChangeSetState.incrementalBuild is set to true, this method fill the lists and Maps of changeSetState.

Parameters:
changeSet -
changeSetState -

getChangeSet

public org.drools.ChangeSet getChangeSet(org.drools.io.Resource resource)
Returns a ChangeSet based on a resource with a resource type of ChangeSet.

Parameters:
resource - A resource with the type set to ChangeSet
Returns:
A ChangeSet that can be processed by this Agent.

autoBuildResourceMapping

public void autoBuildResourceMapping()
This indexes the rules, flows, type declarations, etc against their respective URLs if they have any, to allow more fine grained removal and not just removing of an entire package


getKnowledgeBase

public org.drools.KnowledgeBase getKnowledgeBase()
Specified by:
getKnowledgeBase in interface org.drools.agent.KnowledgeAgent

newStatelessKnowledgeSession

public org.drools.runtime.StatelessKnowledgeSession newStatelessKnowledgeSession()
Specified by:
newStatelessKnowledgeSession in interface org.drools.agent.KnowledgeAgent

newStatelessKnowledgeSession

public org.drools.runtime.StatelessKnowledgeSession newStatelessKnowledgeSession(org.drools.runtime.KnowledgeSessionConfiguration conf)
Specified by:
newStatelessKnowledgeSession in interface org.drools.agent.KnowledgeAgent

resourcesChanged

public void resourcesChanged(org.drools.ChangeSet changeSet)
Specified by:
resourcesChanged in interface org.drools.event.io.ResourceChangeListener

buildKnowledgeBase

public void buildKnowledgeBase(KnowledgeAgentImpl.ChangeSetState changeSetState)
Rebuilds and creates a new KnowledgeBase for this KnowledgeAgent when called based on the ChangeSet that comes in and if newInstance is set to true. If incremental building or KnowledgeBase updates is on, then this will attempt to update the KnowledgeBase instead.

Parameters:
changeSetState - The state that the ChangeSet performed

getName

public String getName()
Specified by:
getName in interface org.drools.agent.KnowledgeAgent

monitorResourceChangeEvents

public void monitorResourceChangeEvents(boolean monitor)
Kicks off the monitoring service for handling ResourceChangeEvents on a separate process.

Specified by:
monitorResourceChangeEvents in interface org.drools.agent.KnowledgeAgent

addResourceMapping

public boolean addResourceMapping(org.drools.io.Resource resource,
                                  boolean notify)
Parameters:
resource -
notify -
Returns:

addDefinitionMapping

public boolean addDefinitionMapping(org.drools.io.Resource resource,
                                    org.drools.definition.KnowledgeDefinition definition,
                                    boolean notify)
Add an resource/definition entry to registeredResources. Optionaly it adds a listener to the resource added.

Parameters:
resource -
definition -
notify -
Returns:
if the resource/definition didn't exist in registeredResources.

removeResourceMapping

public Set<org.drools.definition.KnowledgeDefinition> removeResourceMapping(org.drools.io.Resource resource,
                                                                            boolean unsubscribe)

addEventListener

public void addEventListener(org.drools.event.knowledgeagent.KnowledgeAgentEventListener listener)
Specified by:
addEventListener in interface org.drools.agent.KnowledgeAgent

removeEventListener

public void removeEventListener(org.drools.event.knowledgeagent.KnowledgeAgentEventListener listener)
Specified by:
removeEventListener in interface org.drools.agent.KnowledgeAgent

dispose

public void dispose()
Specified by:
dispose in interface org.drools.agent.KnowledgeAgent

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable


Copyright © 2001-2013 JBoss Inc.. All Rights Reserved.