public DataType getCommonDataType(DataType left, DataType right){ if((left).equals(right)){ if((DataType.DOUBLE).equals(left)){ if((DataType.FLOAT).equals(right) || (DataType.INTEGER).equals(right)){ return left; if((DataType.FLOAT).equals(left)){ if((DataType.DOUBLE).equals(right)){ return right; } else if((DataType.INTEGER).equals(right)){ return left; if((DataType.INTEGER).equals(left)){ if((DataType.DOUBLE).equals(right) || (DataType.FLOAT).equals(right)){ return right; throw new EvaluationException("No PMML data type for the intersection of PMML data types " + left.value() + " and " + right.value());
public static DataType fromValue(String v) { for (DataType c: DataType.values()) { if (c.value.equals(v)) { return c; } } throw new IllegalArgumentException(v); }
@Override public DataType getResultDataType(DataType dataType){ if((DataType.INTEGER).equals(dataType)){ return DataType.DOUBLE; } return dataType; } };
private MLModelField getModelField(Field dataField) { return new MLModelField(dataField.getName().getValue(), dataField.getDataType().toString()); }
static private String formatDataType(DataType dataType){ return (dataType != null ? dataType.value() : null); }
@Override public int hashCode(){ return (31 * (getOpType().hashCode() ^ getDataType().hashCode())) + getValue().hashCode(); }
static public DataType getDataType(Collection<?> values){ DataType result = null; for(Object value : values){ if(value == null){ continue; } DataType dataType = getDataType(value); if(result == null){ result = dataType; } else { if(!(result).equals(dataType)){ throw new TypeCheckException(result, value); } } } if(result == null){ result = DataType.STRING; } return result; }
private MLModelField getModelField(Field dataField) { return new MLModelField(dataField.getName().getValue(), dataField.getDataType().toString()); }
@Override public String toString() { return value(); }
static private Map<String, String> parseRevalue(FunctionExpression.Argument replaceArgument){ Map<String, String> result = new LinkedHashMap<>(); FunctionExpression vectorExpression = toVectorExpression(replaceArgument); List<FunctionExpression.Argument> objectArguments = vectorExpression.getArguments(); for(FunctionExpression.Argument objectArgument : objectArguments){ String from = objectArgument.getTag(); if(from == null){ throw new IllegalArgumentException(); } Constant constant = (Constant)objectArgument.getExpression(); if(constant.getDataType() != null && (DataType.STRING).equals(constant.getDataType())){ throw new IllegalArgumentException(); } String to = constant.getValue(); result.put(from, to); } return result; }
Byte right = dataTypeMap.get(this.evaluator.getDataField(activeField).getDataType().toString()); if (left != right) if (failOnTypeMatching) { String dataType = dataField.getDataType().toString(); if (dataField.getDataType() == null) { fieldSchemas.add(new Schema.FieldSchema(outputFieldAlias,DataType.BYTEARRAY)); } else if (dataTypeMap.containsKey(dataField.getDataType().toString())) { fieldSchemas.add(new Schema.FieldSchema(outputFieldAlias,dataTypeMap.get(dataField.getDataType().toString()))); } else { throw new RuntimeException("Column: "+outputFieldAlias+", PMML DataType "+dataField.getDataType().toString()+" is not currently supported.");
@Override public String toString() { return value(); }
public static DataType fromValue(String v) { for (DataType c: DataType.values()) { if (c.value.equals(v)) { return c; } } throw new IllegalArgumentException(v); }
public void addField(Field<?> field, List<String> categoryNames, List<String> categoryValues){ RExpEncoder encoder = getEncoder(); if(categoryNames.size() != categoryValues.size()){ throw new IllegalArgumentException(); } CategoricalFeature categoricalFeature; if((DataType.BOOLEAN).equals(field.getDataType()) && (BooleanFeature.VALUES).equals(categoryValues)){ categoricalFeature = new BooleanFeature(encoder, field); } else { categoricalFeature = new CategoricalFeature(encoder, field, categoryValues); } putFeature(field.getName(), categoricalFeature); for(int i = 0; i < categoryNames.size(); i++){ String categoryName = categoryNames.get(i); String categoryValue = categoryValues.get(i); BinaryFeature binaryFeature = new BinaryFeature(encoder, field, categoryValue); putFeature(FieldName.create((field.getName()).getValue() + categoryName), binaryFeature); } this.fields.add(field); }
@Override protected FieldValue checkArgument(FieldValue argument, int index, String alias){ if(Objects.equals(FieldValues.MISSING_VALUE, argument)){ return argument; } DataType dataType = argument.getDataType(); switch(dataType){ case INTEGER: case FLOAT: case DOUBLE: break; default: if(alias != null){ throw new FunctionException(this, "Expected a numeric \'" + alias + "\' value at position " + index + ", got " + dataType.value() + " value"); } else { throw new FunctionException(this, "Expected a numeric value at position " + index + ", got " + dataType.value() + " value"); } } return argument; } }
public FieldValue cast(TypeInfo typeInfo){ DataType dataType = typeInfo.getDataType(); OpType opType = typeInfo.getOpType(); if((dataType).equals(getDataType()) && (opType).equals(getOpType())){ return this; } return FieldValue.create(typeInfo, getValue()); }
public FieldValue cast(DataType dataType, OpType opType){ boolean compatible = true; if(dataType == null){ dataType = getDataType(); } else if(dataType != null && !(dataType).equals(getDataType())){ compatible = false; } // End if if(opType == null){ opType = getOpType(); } else if(opType != null && !(opType).equals(getOpType())){ compatible = false; } // End if if(compatible){ return this; } return FieldValue.create(dataType, opType, getValue()); }
if((DataType.BOOLEAN).equals(dataType)){ categories = Arrays.asList("false", "true");