Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright © 2006 BEA Systems, Inc. All Rights Reserved
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.p13n.rules.advislets
Class RulesAdvisletImpl

    java.lang.Object
      com.bea.p13n.advisor.AbstractAdvislet
          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 `Advislet`s 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:

- `RULES_FILTER_CLASS_NAME` - the name of an `ObjectFilter` class that should be used to filter the objects returned by the `RulesManager`.
- `RULES_INPUT_OBJECTS` - a `Collection` of input objects to be passed to the `RulesManager`.

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, 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.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006 BEA Systems, Inc. All Rights Reserved