Class ModelUtils


  • public class ModelUtils
    extends java.lang.Object
    Class to provide common methods to interact with Model, to convert org.dmn.pmml objects to Kie ones, etc...
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.util.List<org.kie.pmml.api.models.Interval> convertDataFieldIntervals​(java.util.List<org.dmg.pmml.Interval> toConvert)  
      static java.util.List<java.lang.String> convertDataFieldValues​(java.util.List<org.dmg.pmml.Value> toConvert)  
      static org.kie.pmml.api.models.MiningField convertToKieMiningField​(org.dmg.pmml.MiningField toConvert, org.dmg.pmml.Field<?> field)
      Return a org.kie.pmml.api.models.MiningField out of a org.dmg.pmml.MiningField and relative org.dmg.pmml.DataField ones
      static java.util.List<org.kie.pmml.api.models.MiningField> convertToKieMiningFieldList​(org.dmg.pmml.MiningSchema toConvert, java.util.List<org.dmg.pmml.Field<?>> fields)
      Return a List<org.kie.pmml.api.models.MiningField&glt; out of a org.dmg.pmml .MiningSchema one
      static org.kie.pmml.api.models.OutputField convertToKieOutputField​(org.dmg.pmml.OutputField toConvert, org.dmg.pmml.Field<?> field)
      Return a org.kie.pmml.api.models.OutputField out of a org.dmg.pmml.OutputField one
      static java.util.List<org.kie.pmml.api.models.OutputField> convertToKieOutputFieldList​(java.util.List<org.dmg.pmml.OutputField> toConvert, java.util.List<org.dmg.pmml.Field<?>> fields)
      Return a List<org.kie.pmml.api.models.OutputField> out of a List<org.dmg.pmml.OutputField> one
      static java.util.List<org.kie.pmml.api.models.OutputField> convertToKieOutputFieldList​(org.dmg.pmml.Output toConvert, java.util.List<org.dmg.pmml.Field<?>> fields)
      Return a List<org.kie.pmml.api.models.OutputField> out of a org.dmg.pmml .Output one
      static org.kie.pmml.api.models.TargetField convertToKieTargetField​(org.dmg.pmml.Target toConvert)
      Return a org.kie.pmml.api.models.TargetField out of a org.dmg.pmml.Target
      static java.util.List<org.kie.pmml.api.models.TargetField> convertToKieTargetFieldList​(org.dmg.pmml.Targets toConvert)
      Return a List<org.kie.pmml.api.models.TargetField> out of a org.dmg.pmml .Targets
      static org.kie.pmml.api.models.TargetValue convertToKieTargetValue​(org.dmg.pmml.TargetValue toConvert)
      Return a org.kie.pmml.api.models.TargetValue out of a org.dmg.pmml .TargetValue
      static java.util.List<org.kie.pmml.api.models.TargetValue> convertToKieTargetValueList​(java.util.List<org.dmg.pmml.TargetValue> toConvert)
      Return a List<org.kie.pmml.api.models.TargetValue> out of a List<org.dmg.pmml.TargetValue>
      static java.lang.String getBoxedClassName​(org.dmg.pmml.DataType dataType)
      Retrieve the mapped class name of the given DataType, eventually boxed (for primitive ones).
      static java.lang.String getBoxedClassName​(org.dmg.pmml.ParameterField parameterField)
      Retrieve the mapped class name of the given ParameterField, eventually boxed (for primitive ones) It returns Object ParameterField.getDataType() is null
      static org.kie.pmml.api.enums.DATA_TYPE getDATA_TYPE​(java.util.List<org.dmg.pmml.Field<?>> fields, java.lang.String fieldName)
      DATA_TYPE of the given field
      static org.dmg.pmml.DataType getDataType​(java.util.List<org.dmg.pmml.Field<?>> fields, java.lang.String fieldName)
      DataType of the given field, first looked upon derivedFields and then in dataDictionary
      static java.util.List<org.dmg.pmml.DerivedField> getDerivedFields​(org.dmg.pmml.TransformationDictionary transformationDictionary, org.dmg.pmml.LocalTransformations localTransformations)
      Return List<DerivedField>s from the given TransformationDictionary and LocalTransformations
      static java.util.List<org.dmg.pmml.Field<?>> getFieldsFromDataDictionaryAndTransformationDictionary​(org.dmg.pmml.DataDictionary dataDictionary, org.dmg.pmml.TransformationDictionary transformationDictionary)  
      static java.util.List<org.dmg.pmml.Field<?>> getFieldsFromDataDictionaryTransformationDictionaryAndModel​(org.dmg.pmml.DataDictionary dataDictionary, org.dmg.pmml.TransformationDictionary transformationDictionary, org.dmg.pmml.Model model)  
      static java.util.List<java.lang.Object> getObjectsFromArray​(org.dmg.pmml.Array source)  
      static org.kie.pmml.api.enums.OP_TYPE getOpType​(java.util.List<org.dmg.pmml.Field<?>> fields, org.dmg.pmml.Model model, java.lang.String targetFieldName)
      OP_TYPE may be defined inside DataField, MiningField or both.
      static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromFields​(java.util.List<org.dmg.pmml.Field<?>> fields, java.lang.String fieldName)
      Return Optional<OP_TYPE> of field with given fieldName from DataDictionary
      static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromMiningFields​(org.dmg.pmml.MiningSchema miningSchema, java.lang.String fieldName)
      Return Optional<OP_TYPE> of field with given fieldName from MiningSchema
      static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromTargets​(org.dmg.pmml.Targets targets, java.lang.String fieldName)
      Return Optional<OP_TYPE> of field with given fieldName from Targets
      static java.lang.String getPrefixedName​(javax.xml.namespace.QName qName)  
      static java.util.Map<java.lang.String,​java.lang.Object> getRowDataMap​(org.dmg.pmml.Row source)  
      static java.util.Optional<java.lang.String> getTargetFieldName​(java.util.List<org.dmg.pmml.Field<?>> fields, org.dmg.pmml.Model model)
      Return an Optional with the name of the field whose usageType is TARGET or PREDICTED
      static java.util.List<org.kie.pmml.commons.model.tuples.KiePMMLNameOpType> getTargetFields​(java.util.List<org.dmg.pmml.Field<?>> fields, org.dmg.pmml.Model model)
      Return a List<KiePMMLNameOpType> of target fields Please note that only predicted/target MiningField are considered.
      static java.util.Map<java.lang.String,​org.kie.pmml.api.enums.DATA_TYPE> getTargetFieldsTypeMap​(java.util.List<org.dmg.pmml.Field<?>> fields, org.dmg.pmml.Model model)
      Returns a Map<String, DATA_TYPE> of target fields, where the key is the name of the field, and the value is the type of the field Please note that only predicted/target MiningField are considered.
      static org.kie.pmml.api.enums.DATA_TYPE getTargetFieldType​(java.util.List<org.dmg.pmml.Field<?>> fields, org.dmg.pmml.Model model)
      Return the DATA_TYPE of the field whose usageType is TARGET or PREDICTED.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getTargetFieldName

        public static java.util.Optional<java.lang.String> getTargetFieldName​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                              org.dmg.pmml.Model model)
        Return an Optional with the name of the field whose usageType is TARGET or PREDICTED

        While the xsd schema does not strictly enforce this, it seems that by convention majority of models has only one target.

        (see https://github.com/jpmml/jpmml-evaluator/issues/64 discussion)

        Parameters:
        fields -
        model -
        Returns:
      • getTargetFieldType

        public static org.kie.pmml.api.enums.DATA_TYPE getTargetFieldType​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                          org.dmg.pmml.Model model)
        Return the DATA_TYPE of the field whose usageType is TARGET or PREDICTED. It throws exception if none of such fields are found

        While the xsd schema does not strictly enforce this, it seems that by convention majority of models has only one target.

        (see https://github.com/jpmml/jpmml-evaluator/issues/64 discussion)

        Parameters:
        fields -
        model -
        Returns:
      • getTargetFields

        public static java.util.List<org.kie.pmml.commons.model.tuples.KiePMMLNameOpType> getTargetFields​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                                                          org.dmg.pmml.Model model)
        Return a List<KiePMMLNameOpType> of target fields Please note that only predicted/target MiningField are considered.
        Parameters:
        fields -
        model -
        Returns:
      • getTargetFieldsTypeMap

        public static java.util.Map<java.lang.String,​org.kie.pmml.api.enums.DATA_TYPE> getTargetFieldsTypeMap​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                                                                    org.dmg.pmml.Model model)
        Returns a Map<String, DATA_TYPE> of target fields, where the key is the name of the field, and the value is the type of the field Please note that only predicted/target MiningField are considered.
        Parameters:
        fields -
        model -
        Returns:
      • getOpType

        public static org.kie.pmml.api.enums.OP_TYPE getOpType​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                               org.dmg.pmml.Model model,
                                                               java.lang.String targetFieldName)
        OP_TYPE may be defined inside DataField, MiningField or both. In the latter case, MiningField override DataField definition
        Parameters:
        fields -
        model -
        targetFieldName -
        Returns:
      • getOpTypeFromFields

        public static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromFields​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                                             java.lang.String fieldName)
        Return Optional<OP_TYPE> of field with given fieldName from DataDictionary
        Parameters:
        fields -
        fieldName -
        Returns:
      • getOpTypeFromMiningFields

        public static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromMiningFields​(org.dmg.pmml.MiningSchema miningSchema,
                                                                                                   java.lang.String fieldName)
        Return Optional<OP_TYPE> of field with given fieldName from MiningSchema
        Parameters:
        miningSchema -
        fieldName -
        Returns:
      • getOpTypeFromTargets

        public static java.util.Optional<org.kie.pmml.api.enums.OP_TYPE> getOpTypeFromTargets​(org.dmg.pmml.Targets targets,
                                                                                              java.lang.String fieldName)
        Return Optional<OP_TYPE> of field with given fieldName from Targets
        Parameters:
        targets -
        fieldName -
        Returns:
      • getDataType

        public static org.dmg.pmml.DataType getDataType​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                        java.lang.String fieldName)
        DataType of the given field, first looked upon derivedFields and then in dataDictionary
        Parameters:
        fields -
        fieldName -
        Returns:
      • getDATA_TYPE

        public static org.kie.pmml.api.enums.DATA_TYPE getDATA_TYPE​(java.util.List<org.dmg.pmml.Field<?>> fields,
                                                                    java.lang.String fieldName)
        DATA_TYPE of the given field
        Parameters:
        fields -
        fieldName -
        Returns:
      • getDerivedFields

        public static java.util.List<org.dmg.pmml.DerivedField> getDerivedFields​(org.dmg.pmml.TransformationDictionary transformationDictionary,
                                                                                 org.dmg.pmml.LocalTransformations localTransformations)
        Return List<DerivedField>s from the given TransformationDictionary and LocalTransformations
        Parameters:
        transformationDictionary -
        localTransformations -
        Returns:
      • getObjectsFromArray

        public static java.util.List<java.lang.Object> getObjectsFromArray​(org.dmg.pmml.Array source)
      • convertToKieMiningFieldList

        public static java.util.List<org.kie.pmml.api.models.MiningField> convertToKieMiningFieldList​(org.dmg.pmml.MiningSchema toConvert,
                                                                                                      java.util.List<org.dmg.pmml.Field<?>> fields)
        Return a List<org.kie.pmml.api.models.MiningField&glt; out of a org.dmg.pmml .MiningSchema one
        Parameters:
        toConvert -
        fields -
        Returns:
      • convertToKieMiningField

        public static org.kie.pmml.api.models.MiningField convertToKieMiningField​(org.dmg.pmml.MiningField toConvert,
                                                                                  org.dmg.pmml.Field<?> field)
        Return a org.kie.pmml.api.models.MiningField out of a org.dmg.pmml.MiningField and relative org.dmg.pmml.DataField ones
        Parameters:
        toConvert -
        field -
        Returns:
      • convertToKieOutputFieldList

        public static java.util.List<org.kie.pmml.api.models.OutputField> convertToKieOutputFieldList​(org.dmg.pmml.Output toConvert,
                                                                                                      java.util.List<org.dmg.pmml.Field<?>> fields)
        Return a List<org.kie.pmml.api.models.OutputField> out of a org.dmg.pmml .Output one
        Parameters:
        toConvert -
        Returns:
      • convertToKieOutputFieldList

        public static java.util.List<org.kie.pmml.api.models.OutputField> convertToKieOutputFieldList​(java.util.List<org.dmg.pmml.OutputField> toConvert,
                                                                                                      java.util.List<org.dmg.pmml.Field<?>> fields)
        Return a List<org.kie.pmml.api.models.OutputField> out of a List<org.dmg.pmml.OutputField> one
        Parameters:
        toConvert -
        Returns:
      • convertToKieOutputField

        public static org.kie.pmml.api.models.OutputField convertToKieOutputField​(org.dmg.pmml.OutputField toConvert,
                                                                                  org.dmg.pmml.Field<?> field)
        Return a org.kie.pmml.api.models.OutputField out of a org.dmg.pmml.OutputField one
        Parameters:
        toConvert -
        field - - this may be null
        Returns:
      • convertToKieTargetFieldList

        public static java.util.List<org.kie.pmml.api.models.TargetField> convertToKieTargetFieldList​(org.dmg.pmml.Targets toConvert)
        Return a List<org.kie.pmml.api.models.TargetField> out of a org.dmg.pmml .Targets
        Parameters:
        toConvert -
        Returns:
      • convertToKieTargetField

        public static org.kie.pmml.api.models.TargetField convertToKieTargetField​(org.dmg.pmml.Target toConvert)
        Return a org.kie.pmml.api.models.TargetField out of a org.dmg.pmml.Target
        Parameters:
        toConvert -
        Returns:
      • convertToKieTargetValueList

        public static java.util.List<org.kie.pmml.api.models.TargetValue> convertToKieTargetValueList​(java.util.List<org.dmg.pmml.TargetValue> toConvert)
        Return a List<org.kie.pmml.api.models.TargetValue> out of a List<org.dmg.pmml.TargetValue>
        Parameters:
        toConvert -
        Returns:
      • convertToKieTargetValue

        public static org.kie.pmml.api.models.TargetValue convertToKieTargetValue​(org.dmg.pmml.TargetValue toConvert)
        Return a org.kie.pmml.api.models.TargetValue out of a org.dmg.pmml .TargetValue
        Parameters:
        toConvert -
        Returns:
      • getBoxedClassName

        public static java.lang.String getBoxedClassName​(org.dmg.pmml.ParameterField parameterField)
        Retrieve the mapped class name of the given ParameterField, eventually boxed (for primitive ones) It returns Object ParameterField.getDataType() is null
        Parameters:
        parameterField -
        Returns:
      • getBoxedClassName

        public static java.lang.String getBoxedClassName​(org.dmg.pmml.DataType dataType)
        Retrieve the mapped class name of the given DataType, eventually boxed (for primitive ones). It returns Object if null
        Parameters:
        dataType -
        Returns:
      • getFieldsFromDataDictionaryAndTransformationDictionary

        public static java.util.List<org.dmg.pmml.Field<?>> getFieldsFromDataDictionaryAndTransformationDictionary​(org.dmg.pmml.DataDictionary dataDictionary,
                                                                                                                   org.dmg.pmml.TransformationDictionary transformationDictionary)
      • getFieldsFromDataDictionaryTransformationDictionaryAndModel

        public static java.util.List<org.dmg.pmml.Field<?>> getFieldsFromDataDictionaryTransformationDictionaryAndModel​(org.dmg.pmml.DataDictionary dataDictionary,
                                                                                                                        org.dmg.pmml.TransformationDictionary transformationDictionary,
                                                                                                                        org.dmg.pmml.Model model)
      • convertDataFieldValues

        public static java.util.List<java.lang.String> convertDataFieldValues​(java.util.List<org.dmg.pmml.Value> toConvert)
      • convertDataFieldIntervals

        public static java.util.List<org.kie.pmml.api.models.Interval> convertDataFieldIntervals​(java.util.List<org.dmg.pmml.Interval> toConvert)
      • getRowDataMap

        public static java.util.Map<java.lang.String,​java.lang.Object> getRowDataMap​(org.dmg.pmml.Row source)
      • getPrefixedName

        public static java.lang.String getPrefixedName​(javax.xml.namespace.QName qName)