com.bea.p13n.rules.advislets
Class RulesAdvisletImpl

java.lang.Object
  extended by com.bea.p13n.advisor.AbstractAdvislet
      extended by com.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_QUERY_VERSIONED_CONTENT, CONTENT_SEARCH_PATHS, CONTEXT_HANDLER, 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

RULESET_NAME

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

See Also
Constants Summary

IGNORE_RULE_NAME

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

See Also
Constants Summary

IGNORE_RULESET_NOT_FOUND

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

See Also
Constants Summary
Constructor Detail

RulesAdvisletImpl

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

Parameters
advisor - The Advisor instance.
metadata - The Metadata instance.
Method Detail

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
paramters - the configuration paramters
parameterDocument - the XML Document node for the configuration environment
Returns
true if required initialization parameters were present.
Throws
AdvisorException - If an error occurs during initialization process.

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 - thrown if the adviceRequest parameter is null or if it is an unsupported type.
AdvisorException - thrown on an error when processing the request.

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.

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.

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.

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.

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.

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.

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
Returns
an array that contains the attributes required by the Advislet.

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.

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.


Copyright © 2000, 2008, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.