© 2005 BEA Systems, Inc.

com.bea.p13n.rules.advislets
Class RulesAdvisletImpl

java.lang.Object
  extended bycom.bea.p13n.advisor.AbstractAdvislet
      extended bycom.bea.p13n.rules.advislets.RulesAdvisletImpl
All Implemented Interfaces:
AdviceConstants, AdviceRequestConstants, Advislet, AdvisletChainElement

public class RulesAdvisletImpl
extends AbstractAdvislet

This class is the implementation class for a generic Advislet that handles rules based advice. It is designed to be extended by Advislets that wish to make use of the rules engine and provides a number of methods that can be overridden to change some of the default behaviour.

Required inputs to the Advislet are:

The output objects from rule evaluation are placed in a List in the Advice with the RESULTS key.


Field Summary
static String IGNORE_RULE_NAME
          The key name for the optional ignore rule name parameter.
static String IGNORE_RULESET_NOT_FOUND
          The key name for the optional ignore rule name parameter.
static String RULESET_NAME
          The key name for the optional rule set name parameter.
 
Fields inherited from class com.bea.p13n.advisor.AbstractAdvislet
advisletMetadata, advisor, parametersMap
 
Fields inherited from interface com.bea.p13n.advisor.AdviceRequestConstants
CATALOG_QUERY_WRAPPER, CONTENT_APPEND_QUERY_STRING, CONTENT_MANAGER, CONTENT_MANAGER_HOME, CONTENT_QUERY_CONTEXT_PARAMS, CONTENT_QUERY_MAX_ITEMS, CONTENT_QUERY_NODE, CONTENT_QUERY_SORT_BY, CONTENT_QUERY_STRING, CONTENT_SEARCH_PATHS, DATE, HTTP_REQUEST, HTTP_SESSION, NOW, RULES_FILTER_CLASS, RULES_FILTER_CLASS_NAME, RULES_INPUT_OBJECTS, RULES_RULENAME_TO_FIRE, RULES_RULESET_NAME, SHOPPING_CART, TIME, TIME_INSTANT, USER
 
Fields inherited from interface com.bea.p13n.advisor.AdviceConstants
RESULTS
 
Constructor Summary
RulesAdvisletImpl(Advisor advisor, Metadata metadata)
          Construct an instance of this object and bind it to its Advisor and Metadata instances.
 
Method Summary
protected  void addResults(Advice advice, Iterator iterator)
          Adds the contents of a given iterator to a given advice.
 Advice getAdvice(AdviceRequest request)
          Executes an AdviceRequest and returns the Advice object.s
protected  Object[] getInputObjects(Advice advice, AdviceRequest request)
          Returns the input objects for a given advice and advice request.
protected  ObjectFilter getObjectFilter(Advice advice, AdviceRequest request)
          Returns the object filter for a given advice and advice request.
 Object[] getRequiredAttributes()
          Returns an array of required attributes for the advislet.
protected  String getRuleNameToFire(Advice advice, AdviceRequest request)
          Returns the name of the rule that must be fired for a given advice and advice request.
protected  String getRuleSetName(Advice advice, AdviceRequest request)
          Returns the rule set name for the given advice and advice request.
protected  RulesManager getRulesManager(Advice advice, AdviceRequest request)
          Returns a RulesManager instance for a given advice and advice request.
 boolean initialize(Map parameters, Object parameterDocument)
          Initialize this instance from its XML configuration environment.
protected  void sendRuleEvent(AdviceRequest request, Advice advice)
          Generates a rule event for tracking listeners.
protected  AdviceRequest setupRequest(Advice advice, AdviceRequest request)
          Sets up a given advice request.
 
Methods inherited from class com.bea.p13n.advisor.AbstractAdvislet
getAdvisor, getMetadata, toString, validateAdviceRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

IGNORE_RULE_NAME

public static final String IGNORE_RULE_NAME
The key name for the optional ignore rule name parameter.

See Also:
Constant Field Values

IGNORE_RULESET_NOT_FOUND

public static final String IGNORE_RULESET_NOT_FOUND
The key name for the optional ignore rule name parameter.

See Also:
Constant Field Values

RULESET_NAME

public static final String RULESET_NAME
The key name for the optional rule set name parameter.

See Also:
Constant Field Values
Constructor Detail

RulesAdvisletImpl

public RulesAdvisletImpl(Advisor advisor,
                         Metadata metadata)
Construct an instance of this object and bind it to its Advisor and Metadata instances.

Method Detail

addResults

protected void addResults(Advice advice,
                          Iterator iterator)
                   throws AdvisorException
Adds the contents of a given iterator to a given advice.

Parameters:
advice - The target advice.
iterator - The source iterator.
Throws:
AdvisorException - On general Advisor exception.

getAdvice

public Advice getAdvice(AdviceRequest request)
                 throws IllegalArgumentException,
                        AdvisorException
Executes an AdviceRequest and returns the Advice object.s

Specified by:
getAdvice in interface Advislet
Overrides:
getAdvice in class AbstractAdvislet
Parameters:
request - the AdviceRequest containing the paramters for the request
Returns:
the Advice instance with the result of the Advisor.getAdvice call.
Throws:
IllegalArgumentException
AdvisorException

getInputObjects

protected Object[] getInputObjects(Advice advice,
                                   AdviceRequest request)
Returns the input objects for a given advice and advice request.

Parameters:
advice - The target advice.
request - The target request.
Returns:
The input objects.

getObjectFilter

protected ObjectFilter getObjectFilter(Advice advice,
                                       AdviceRequest request)
                                throws AdvisorException
Returns the object filter for a given advice and advice request.

Parameters:
advice - The current advice.
request - The current advice request.
Returns:
The object filter.
Throws:
AdvisorException - On general Advisor exception.

getRequiredAttributes

public Object[] getRequiredAttributes()
Description copied from interface: Advislet
Returns an array of required attributes for the advislet. The array contains pairs of items: even items are attribute names while odd items are the Class for the item. This information is used by the Advisor to ensure Advislets are not invoked with invalid parameters. Overide the validateAdviceRequest method to perform additional processing above and beyond attribute type checking.

Specified by:
getRequiredAttributes in interface Advislet
Overrides:
getRequiredAttributes in class AbstractAdvislet

getRuleNameToFire

protected String getRuleNameToFire(Advice advice,
                                   AdviceRequest request)
                            throws AdvisorException
Returns the name of the rule that must be fired for a given advice and advice request.

Parameters:
advice - The current advice.
request - The current advice request.
Returns:
The rule name.
Throws:
AdvisorException - On general Advisor exception.

getRuleSetName

protected String getRuleSetName(Advice advice,
                                AdviceRequest request)
                         throws AdvisorException
Returns the rule set name for the given advice and advice request.

Parameters:
advice - The current advice.
request - The current advice request.
Returns:
The rule set name.
Throws:
AdvisorException - On general Advisor exception.

getRulesManager

protected RulesManager getRulesManager(Advice advice,
                                       AdviceRequest request)
                                throws AdvisorException
Returns a RulesManager instance for a given advice and advice request.

Parameters:
advice - The current advice.
request - The current advice request.
Throws:
AdvisorException - On general Advisor exception.

initialize

public boolean initialize(Map parameters,
                          Object parameterDocument)
                   throws AdvisorException
Initialize this instance from its XML configuration environment.

Specified by:
initialize in interface AdvisletChainElement
Overrides:
initialize in class AbstractAdvislet
Parameters:
parameterDocument - the XML Document node for the configuration environment
parameters - A map containing key-value pairs.
Returns:
true if required initialization parameters were present.
Throws:
AdvisorException - If an error occurs during initialization process.

sendRuleEvent

protected void sendRuleEvent(AdviceRequest request,
                             Advice advice)
Generates a rule event for tracking listeners.

Parameters:
request - The current advice request.
advice - The current advice.

setupRequest

protected AdviceRequest setupRequest(Advice advice,
                                     AdviceRequest request)
                              throws AdvisorException
Sets up a given advice request.

Parameters:
advice - The current advice.
request - The current advice request.
Returns:
The initialized advice request.
Throws:
AdvisorException - On general Advisor exception.

© 2005 BEA Systems, Inc.

Copyright © 2005 BEA Systems, Inc. All Rights Reserved