com.ail.core.command
Class DroolsAccessor

java.lang.Object
  extended by com.ail.core.Type
      extended by com.ail.core.command.AbstractCommand
          extended by com.ail.core.command.Accessor
              extended by com.ail.core.command.DroolsAccessor
All Implemented Interfaces:
ConfigurationOwner, CoreUser, java.io.Serializable, java.lang.Cloneable

public class DroolsAccessor
extends Accessor
implements ConfigurationOwner

This Accessor supports the use of Drools decision tables as services. Drools (www.drools.org) is an open source rules engine which supports decision tables in the form of spreadsheets conforming to certain conventions. The usage pattern here is to have an instance of this Accessor for each decision table based ruleset. The Accessor expects to find a URL pointing at the decision table in it's Script parameter (generally this is set by configuration).

Version:
$Revision: 1.11 $
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.ail.core.Type
jXPathContext, NOT_PERSISTED
 
Constructor Summary
DroolsAccessor()
           
 
Method Summary
 void activate(Core core, Type typeSpec)
          Factory life cycle method.
 java.lang.Object clone()
          Clone this object.
 CommandArg getArgs()
          Get the argument set associated with this command.
 Configuration getConfiguration()
          Fetch the configuration of the entry point associated with this command.
 java.lang.String getConfigurationNamespace()
          Return the caller's configuration namespace.
 Core getCore()
           
 java.lang.String getExtend()
           
 java.lang.String getScript()
           
 java.security.Principal getSecurityPrincipal()
          Get the callers security principal.
 java.lang.String getUrl()
           
 Version getVersion()
          Fetch the version of the command (entry point) associated with this command.
 VersionEffectiveDate getVersionEffectiveDate()
          The Core uses this callback to determin which versions of artefacts it should use on the CoreUser's behalf.
 void invoke()
          Invoke the command associated with this command object.
static void mergeRulePackages(org.drools.lang.descr.PackageDescr subject, org.drools.lang.descr.PackageDescr donor)
          Merge the rule elements (rules, globals, functions, etc.) from donor into subject.
 void resetConfiguration()
          Factory reset.
 void setArgs(CommandArg args)
          Update this Command object's arguments with those taken from the command arg passed in.
 void setConfiguration(Configuration properties)
          Update the configuration of the entry point associated with this command.
 void setExtend(java.lang.String extend)
           
 void setScript(java.lang.String script)
           
 void setUrl(java.lang.String url)
           
 
Methods inherited from class com.ail.core.command.Accessor
getLoggingIndicator, getLoggingIndicatorAsString, setLoggingIndicator, setLoggingIndicatorAsString
 
Methods inherited from class com.ail.core.Type
addAttribute, deleteLock, deleteSerialVersion, fetchJXPathContext, getAttribute, getAttribute, getAttributeCount, getForeignSystemId, getLock, getSerialVersion, getSystemId, hasLock, hasSerialVersion, hasSystemId, isPersisted, markAsNotPersisted, mergeWithDataFrom, removeAttribute, removeAttribute, setAttribute, setForeignSystemId, setLock, setSerialVersion, setSystemId, xpathGet, xpathGet, xpathIterate, xpathSet
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DroolsAccessor

public DroolsAccessor()
Method Detail

activate

public void activate(Core core,
                     Type typeSpec)
              throws java.lang.Exception
Factory life cycle method. See AbstractFactory for details.

Parameters:
core -
Throws:
java.lang.Exception

setArgs

public void setArgs(CommandArg args)
Description copied from class: AbstractCommand
Update this Command object's arguments with those taken from the command arg passed in. This is in effect a bulk setter. This interface will be implemented by beans that have many more getters/setters to support their properties. The implementations of this method take 'that', and pull all the relevant properties into this.

Specified by:
setArgs in class AbstractCommand
Parameters:
args - Source for arguments

getArgs

public CommandArg getArgs()
Description copied from class: AbstractCommand
Get the argument set associated with this command.

Specified by:
getArgs in class AbstractCommand
Returns:
This objects arguments.

mergeRulePackages

public static void mergeRulePackages(org.drools.lang.descr.PackageDescr subject,
                                     org.drools.lang.descr.PackageDescr donor)
Merge the rule elements (rules, globals, functions, etc.) from donor into subject.

Parameters:
subject - Package to merge into
donor - Package to merge from

invoke

public void invoke()
            throws DroolsServiceException
Description copied from class: AbstractCommand
Invoke the command associated with this command object. Before invoke is called, the command object must be populated with all the information (parameters) needed to invoke the service via the command object's setters. Once invoke has been called, the object's getters are used to retrieve the results.

Specified by:
invoke in class AbstractCommand
Throws:
DroolsServiceException

getVersion

public Version getVersion()
Description copied from class: AbstractCommand
Fetch the version of the command (entry point) associated with this command. This is similar to the 'invoke' entry point in that control is passed to the entry point object. In this case to the getVersion() method.

Note: This method does not return the version of the command.

Specified by:
getVersion in class AbstractCommand
Returns:
The version of the entry point.

getConfiguration

public Configuration getConfiguration()
Description copied from class: AbstractCommand
Fetch the configuration of the entry point associated with this command. This is similar to invoke in that control is passed to the entry point object, in this case to the getConfiguration method. Note: This method does not return the configuration of the command object.

Specified by:
getConfiguration in interface ConfigurationOwner
Specified by:
getConfiguration in class AbstractCommand
Returns:
The entry point's configuration.

setConfiguration

public void setConfiguration(Configuration properties)
Description copied from class: AbstractCommand
Update the configuration of the entry point associated with this command. This is similar to the invoke method in that control is pass to the entry point object, in this case to its setConfiguration method. Note: This method does not set the configuration of the command object.

Specified by:
setConfiguration in interface ConfigurationOwner
Specified by:
setConfiguration in class AbstractCommand
Parameters:
properties - Properties to replace the current configuration.

setScript

public void setScript(java.lang.String script)

getUrl

public java.lang.String getUrl()

setUrl

public void setUrl(java.lang.String url)

getScript

public java.lang.String getScript()

getVersionEffectiveDate

public VersionEffectiveDate getVersionEffectiveDate()
Description copied from interface: CoreUser
The Core uses this callback to determin which versions of artefacts it should use on the CoreUser's behalf.

Specified by:
getVersionEffectiveDate in interface CoreUser
Returns:
The version date that the CoreUser is working at.

getSecurityPrincipal

public java.security.Principal getSecurityPrincipal()
Description copied from interface: CoreUser
Get the callers security principal.

Specified by:
getSecurityPrincipal in interface CoreUser
Returns:
The callers security principal

getConfigurationNamespace

public java.lang.String getConfigurationNamespace()
Return the caller's configuration namespace.

Specified by:
getConfigurationNamespace in interface CoreUser
Returns:
Caller's namespace

resetConfiguration

public void resetConfiguration()
Description copied from interface: ConfigurationOwner
Factory reset. Reset the configuration to the factory defaults.

Specified by:
resetConfiguration in interface ConfigurationOwner

getCore

public Core getCore()

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Clone this object. This clone method is used by all Type subclasses to handle deep cloning. For the factory to operate correctly it is essential that Types can be deep cloned, as it hangs onto prototyped instances by name and simply clones them when a request is made for an instance of a named type.

Overrides:
clone in class Type
Throws:
java.lang.CloneNotSupportedException - If the type cannot be deep cloned.

getExtend

public java.lang.String getExtend()

setExtend

public void setExtend(java.lang.String extend)