@Override public VisitorAction visit(TransformationDictionary transformationDictionary){ if(transformationDictionary.hasDerivedFields()){ this.globalDerivedFields.addAll(transformationDictionary.getDerivedFields()); } return super.visit(transformationDictionary); }
/** * Create an instance of {@link TransformationDictionary } * */ public TransformationDictionary createTransformationDictionary() { return new TransformationDictionary(); }
public TransformationDictionary addDefineFunctions(DefineFunction... defineFunctions) { getDefineFunctions().addAll(Arrays.asList(defineFunctions)); return this; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasDefineFunctions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getDefineFunctions()); } if ((status == VisitorAction.CONTINUE)&&hasDerivedFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getDerivedFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public PMMLObject popParent(){ PMMLObject parent = super.popParent(); if(parent instanceof Model){ Model model = (Model)parent; LocalTransformations localTransformations = model.getLocalTransformations(); if(localTransformations != null){ processLocalTransformations(localTransformations); if(!localTransformations.hasDerivedFields()){ model.setLocalTransformations(null); } } } else if(parent instanceof PMML){ PMML pmml = (PMML)parent; TransformationDictionary transformationDictionary = pmml.getTransformationDictionary(); if(transformationDictionary != null){ processTransformationDictionary(transformationDictionary); if(!transformationDictionary.hasDefineFunctions() && !transformationDictionary.hasDerivedFields()){ pmml.setTransformationDictionary(null); } } } return parent; }
public TransformationDictionary addDerivedFields(DerivedField... derivedFields) { getDerivedFields().addAll(Arrays.asList(derivedFields)); return this; }
assertTrue(transformationDictionary.hasDerivedFields()); assertFalse(transformationDictionary.hasDerivedFields());
@Test public void inspectFunctions(){ PMML pmml = createPMML(); assertVersionRange(pmml, Version.PMML_3_0, Version.PMML_4_3); Apply apply = new Apply() .setFunction("lowercase"); DefineFunction defineFunction = new DefineFunction("convert_case", OpType.CATEGORICAL, null) .addParameterFields(new ParameterField(FieldName.create("string"))) .setExpression(apply); TransformationDictionary transformationDictionary = new TransformationDictionary() .addDefineFunctions(defineFunction); pmml.setTransformationDictionary(transformationDictionary); assertVersionRange(pmml, Version.PMML_4_1, Version.PMML_4_3); apply.setFunction("uppercase"); assertVersionRange(pmml, Version.PMML_3_0, Version.PMML_4_3); apply.setFunction(null); assertVersionRange(pmml, Version.PMML_3_0, Version.PMML_3_0); }
@Override public TransformationDictionary addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasDefineFunctions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getDefineFunctions()); } if ((status == VisitorAction.CONTINUE)&&hasDerivedFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getDerivedFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public PMMLObject popParent(){ PMMLObject parent = super.popParent(); if(parent instanceof Model){ Model model = (Model)parent; LocalTransformations localTransformations = model.getLocalTransformations(); if(localTransformations != null){ processLocalTransformations(localTransformations); if(!localTransformations.hasDerivedFields()){ model.setLocalTransformations(null); } } } else if(parent instanceof PMML){ PMML pmml = (PMML)parent; TransformationDictionary transformationDictionary = pmml.getTransformationDictionary(); if(transformationDictionary != null){ processTransformationDictionary(transformationDictionary); if(!transformationDictionary.hasDefineFunctions() && !transformationDictionary.hasDerivedFields()){ pmml.setTransformationDictionary(null); } } } return parent; }
public TransformationDictionary addDerivedFields(DerivedField... derivedFields) { getDerivedFields().addAll(Arrays.asList(derivedFields)); return this; }
@Override public TransformationDictionary addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@Override public VisitorAction visit(TransformationDictionary transformationDictionary){ if(transformationDictionary.hasDerivedFields()){ this.globalDerivedFields.addAll(transformationDictionary.getDerivedFields()); } return super.visit(transformationDictionary); }
if(transformationDictionary != null && transformationDictionary.hasDerivedFields()){ this.derivedFields = CacheUtil.getValue(transformationDictionary, ModelEvaluator.derivedFieldCache); if(transformationDictionary != null && transformationDictionary.hasDefineFunctions()){ this.defineFunctions = CacheUtil.getValue(transformationDictionary, ModelEvaluator.defineFunctionCache);
@Override public Map<FieldName, DerivedField> load(TransformationDictionary transformationDictionary){ return IndexableUtil.buildMap(transformationDictionary.getDerivedFields()); } });
public TransformationDictionary addDefineFunctions(DefineFunction... defineFunctions) { getDefineFunctions().addAll(Arrays.asList(defineFunctions)); return this; }
/** * Create an instance of {@link TransformationDictionary } * */ public TransformationDictionary createTransformationDictionary() { return new TransformationDictionary(); }
private void processTransformationDictionary(TransformationDictionary transformationDictionary){ if(transformationDictionary.hasDerivedFields()){ List<DerivedField> derivedFields = transformationDictionary.getDerivedFields(); Set<DerivedField> activeDerivedFields = getActiveDerivedFields(new HashSet<>(derivedFields)); derivedFields.retainAll(activeDerivedFields); } }
@Override public VisitorAction visit(TransformationDictionary transformationDictionary){ checkFields(FieldNameUtil.create("x1_squared"), transformationDictionary.getDerivedFields()); return super.visit(transformationDictionary); } };