@Override
  public Rule<T> when(Predicate<FactMap<T>> test) {
    _test = test;
    return this;
  }
@Override
  public Rule<T> when(Predicate<FactMap<T>> test) {
    _test = test;
    return this;
  }
@ Override public Rule < T > when ( Predicate < FactMap < T > > test ) { _test = test ; return this ; }
The when() method accepts a {@link Predicate} that returns true or false based on Facts.
@param test  the condition(s) to be evaluated against the Facts
@return      the current object
The when () method accepts a {