Example #1
0
  @SuppressWarnings(value = {"unchecked"})
  private static Object getRuleFeature(
      HasRuleValues hasRuleValues,
      AssociationRule associationRule,
      PMMLObject element,
      OutputField.RuleFeature ruleFeature) {

    switch (ruleFeature) {
      case ANTECEDENT:
        return getItemValues(hasRuleValues, associationRule.getAntecedent());
      case CONSEQUENT:
        return getItemValues(hasRuleValues, associationRule.getConsequent());
      case RULE:
        {
          Joiner joiner = Joiner.on(',');

          StringBuilder sb = new StringBuilder();

          String left = joiner.join(getItemValues(hasRuleValues, associationRule.getAntecedent()));
          sb.append('{').append(left).append('}');

          sb.append("->");

          String right = joiner.join(getItemValues(hasRuleValues, associationRule.getConsequent()));
          sb.append('{').append(right).append('}');

          return sb.toString();
        }
      case RULE_ID:
        {
          HasEntityRegistry<AssociationRule> hasEntityRegistry =
              (HasEntityRegistry<AssociationRule>) hasRuleValues;

          return EntityUtil.getId(associationRule, hasEntityRegistry);
        }
      case CONFIDENCE:
        return associationRule.getConfidence();
      case SUPPORT:
        return associationRule.getSupport();
      case LIFT:
        return associationRule.getLift();
      case LEVERAGE:
        return associationRule.getLeverage();
      case AFFINITY:
        return associationRule.getAffinity();
      default:
        throw new UnsupportedFeatureException(element, ruleFeature);
    }
  }