@Override public DataType getResultDataType(DataType dataType){ if((DataType.INTEGER).equals(dataType)){ return DataType.DOUBLE; } return dataType; } };
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;
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; }
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; }
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); }
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");