Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2005 BEA Systems, Inc.
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, 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.

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

Copyright © 2005 BEA Systems, Inc. All Rights Reserved