rulebook-core/src/main/java/com/deliveredtechnologies/rulebook/lang/RuleBookRuleBuilder.java
@SuppressWarnings("unchecked")
  public <T> RuleBookRuleWithFactTypeBuilder<T, U> withFactType(Class<T> factType) {
    Rule<T, U> rule = (Rule<T, U>)RuleBuilder.create(_ruleClass).withFactType(factType).build();
    _ruleBook.addRule(rule);
    return new RuleBookRuleWithFactTypeBuilder<>(rule);
  }
@SuppressWarnings("unchecked")
  public <T> RuleBookRuleWithFactTypeBuilder<T, U> withFactType(Class<T> factType) {
    Rule<T, U> rule = (Rule<T, U>)RuleBuilder.create(_ruleClass).withFactType(factType).build();
    _ruleBook.addRule(rule);
    return new RuleBookRuleWithFactTypeBuilder<>(rule);
  }
@ SuppressWarnings ( "unchecked" ) public < T > RuleBookRuleWithFactTypeBuilder < T , U > withFactType ( Class < T > factType ) { Rule < T , U > rule = ( Rule < T , U > ) RuleBuilder . create ( _ruleClass ) . withFactType ( factType ) . build ( ) ; _ruleBook . addRule ( rule ) ; return new RuleBookRuleWithFactTypeBuilder <> ( rule ) ; }
Specifies the fact type
@param factType  the type of object that facts are restricted to in the Rule.
@param <T>       the generic fact type
@return          RuleBookRuleWithFactTypeBuilder for building RuleBook Rules with a specific fact type
Specifies the fact type