operator == SimpleSetPredicate.BooleanOperator.IS_IN || operator == SimpleSetPredicate.BooleanOperator.IS_NOT_IN); int featureNumber = featureNames.indexOf(simpleSetPredicate.getField().getValue()); Map<String,Integer> valueEncodingMap = categoricalValueEncodings.getValueEncodingMap(featureNumber);
@Override public VisitorAction visit(SimpleSetPredicate simpleSetPredicate){ process(simpleSetPredicate.getField()); return super.visit(simpleSetPredicate); }
@Override public VisitorAction visit(SimpleSetPredicate simpleSetPredicate){ process(simpleSetPredicate.getField()); return super.visit(simpleSetPredicate); }
private Predicate transform(SimpleSetPredicate simpleSetPredicate){ Array array = simpleSetPredicate.getArray(); String value = array.getValue(); List<String> tokens = ArrayUtil.parse(value, true); if(tokens.size() != 1){ return simpleSetPredicate; } value = tokens.get(0); SimpleSetPredicate.BooleanOperator booleanOperator = simpleSetPredicate.getBooleanOperator(); switch(booleanOperator){ case IS_IN: return createSimplePredicate(simpleSetPredicate.getField(), SimplePredicate.Operator.EQUAL, value); case IS_NOT_IN: return createSimplePredicate(simpleSetPredicate.getField(), SimplePredicate.Operator.NOT_EQUAL, value); default: break; } return simpleSetPredicate; }
@Override public ElementKey createKey(SimpleSetPredicate simpleSetPredicate){ Array array = simpleSetPredicate.getArray(); Object[] content = {simpleSetPredicate.getField(), simpleSetPredicate.getBooleanOperator(), ArrayUtil.getContent(array)}; return new ElementKey(content); } };
@Override public ElementKey createKey(SimpleSetPredicate simpleSetPredicate){ Array array = simpleSetPredicate.getArray(); Object[] content = {simpleSetPredicate.getField(), simpleSetPredicate.getBooleanOperator(), ArrayUtil.getContent(array)}; return new ElementKey(content); } };
@Override public ElementKey createKey(SimpleSetPredicate simpleSetPredicate){ Array array = simpleSetPredicate.getArray(); Object[] content = {simpleSetPredicate.getField(), simpleSetPredicate.getBooleanOperator(), ArrayUtil.getContent(array)}; return new ElementKey(content); } };
operator == SimpleSetPredicate.BooleanOperator.IS_IN || operator == SimpleSetPredicate.BooleanOperator.IS_NOT_IN); int featureNumber = featureNames.indexOf(simpleSetPredicate.getField().getValue()); Map<String,Integer> valueEncodingMap = categoricalValueEncodings.getValueEncodingMap(featureNumber);
static public Boolean evaluateSimpleSetPredicate(SimpleSetPredicate simpleSetPredicate, EvaluationContext context){ FieldName name = simpleSetPredicate.getField(); if(name == null){ throw new MissingAttributeException(simpleSetPredicate, PMMLAttributes.SIMPLESETPREDICATE_FIELD); } SimpleSetPredicate.BooleanOperator booleanOperator = simpleSetPredicate.getBooleanOperator(); if(booleanOperator == null){ throw new MissingAttributeException(simpleSetPredicate, PMMLAttributes.SIMPLESETPREDICATE_BOOLEANOPERATOR); } FieldValue value = context.evaluate(name); if(Objects.equals(FieldValues.MISSING_VALUE, value)){ return null; } Array array = simpleSetPredicate.getArray(); if(array == null){ throw new MissingElementException(simpleSetPredicate, PMMLElements.SIMPLESETPREDICATE_ARRAY); } switch(booleanOperator){ case IS_IN: return value.isIn(simpleSetPredicate); case IS_NOT_IN: return !value.isIn(simpleSetPredicate); default: throw new UnsupportedAttributeException(simpleSetPredicate, booleanOperator); } }