com.ibm.websphere.brb.implementor
Class RuleOR

java.lang.Object
  |
  +--com.ibm.websphere.brb.implementor.RuleOR
All Implemented Interfaces:
RuleImplementor

public class RuleOR
extends java.lang.Object
implements RuleImplementor

Combination rule comprised of two or more constraint-type rules which are all fired and their results or'd together. The dependent rules may return either ConstaintReturn or java.lang.Boolean. Note that the algorithm does not short-circuit evaluation when the first true result is encountered. All dependent rules are triggered regardless of the results.

When triggering a dependent rule, if more than one rule is found with the same name, then all rules with that name will be triggered and their results will be ored together.


Field Summary
protected  java.lang.String[] dependentRules
           
 
Constructor Summary
RuleOR()
          Parameterless constructor for RuleOR.
 
Method Summary
 java.lang.Object fire(TriggerPoint tp, java.lang.Object target, IRuleCopy rule, java.lang.Object[] parms)
          Fires all dependent rules, or'ing the ConstraintReturn results together.
 java.lang.String getDescription()
          The programmer's description of what the algorithm does.
 void init(java.lang.Object[] parms, java.lang.String[] dependentRules, java.lang.String userDefinedData, IRuleCopy rule)
          Initializes with persistent parameters used by this rule.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dependentRules

protected java.lang.String[] dependentRules
Constructor Detail

RuleOR

public RuleOR()
Parameterless constructor for RuleOR.
Method Detail

fire

public java.lang.Object fire(TriggerPoint tp,
                             java.lang.Object target,
                             IRuleCopy rule,
                             java.lang.Object[] parms)
                      throws BusinessRuleBeansException
Fires all dependent rules, or'ing the ConstraintReturn results together. The dependent rules may return either ConstraintReturn or java.lang.Boolean. A true ConstraintReturn is returned if any one of the dependent rules return true. Otherwise a false ConstraintReturn is returned holding information about each of the dependent rules that returned a failing ConstraintReturn. Note that the algorithm does not short-circuit evaluation when the first true result is encountered. All dependent rules are triggered regardless of the results.

When triggering a dependent rule, if more than one rule is found with the same name, then all rules with that name will be triggered and their results will be ored together.

Specified by:
fire in interface RuleImplementor
Following copied from interface: com.ibm.websphere.brb.RuleImplementor
Parameters:
tp - the trigger point which is firing this rule implementor.
target - the target object of the trigger point
rule - the rule that the implementor is running on behalf of
firingParams - the firing parameters, i.e. those parameters that are passed to the BRBeans framework at the trigger point
Returns:
The result of firing the rule implementor. Implementors that carry out classifications must return a single String. Implementors which check constraints should generally return a ConstraintReturn, especially if the results are to be combined and returned by the BRBeans framework.
Throws:
com.ibm.brb.BusinessRuleBeansException - Thrown when an error condition is associated with the fired Rule implementation.

getDescription

public java.lang.String getDescription()
The programmer's description of what the algorithm does.
Specified by:
getDescription in interface RuleImplementor
Following copied from interface: com.ibm.websphere.brb.RuleImplementor
Returns:
A description of this rule implementor.

init

public void init(java.lang.Object[] parms,
                 java.lang.String[] dependentRules,
                 java.lang.String userDefinedData,
                 IRuleCopy rule)
          throws BusinessRuleBeansException
Initializes with persistent parameters used by this rule. This rule has two or more dependent rules whose IDs are provided and retained.
Specified by:
init in interface RuleImplementor
Following copied from interface: com.ibm.websphere.brb.RuleImplementor
Parameters:
initParams - the parameters needed to initialize this RuleImplementor
dependentRules - the names of the dependent rules to this rule; if there are none, null is passed
userDefinedData - userDefinedData property from the Rule
rule - the Rule on whose behalf the rule implementor is running