use of com.serotonin.m2m2.rt.dataImage.types.BinaryValue in project ma-core-public by infiniteautomation.
the class PointValueDaoSQL method createDataValue.
DataValue createDataValue(ResultSet rs, int firstParameter) throws SQLException {
int dataType = rs.getInt(firstParameter);
DataValue value;
switch(dataType) {
case (DataTypes.NUMERIC):
value = new NumericValue(rs.getDouble(firstParameter + 1));
break;
case (DataTypes.BINARY):
value = new BinaryValue(rs.getDouble(firstParameter + 1) == 1);
break;
case (DataTypes.MULTISTATE):
value = new MultistateValue(rs.getInt(firstParameter + 1));
break;
case (DataTypes.ALPHANUMERIC):
String s = rs.getString(firstParameter + 2);
if (s == null)
s = rs.getString(firstParameter + 3);
value = new AlphanumericValue(s);
break;
case (DataTypes.IMAGE):
value = new ImageValue(Integer.parseInt(rs.getString(firstParameter + 2)), rs.getInt(firstParameter + 1));
break;
default:
value = null;
}
return value;
}
use of com.serotonin.m2m2.rt.dataImage.types.BinaryValue in project ma-core-public by infiniteautomation.
the class ScriptUtils method coerce.
/**
* Coerce an object into a DataValue
* @param input
* @param toDataTypeId
* @return
* @throws ResultTypeException
*/
public static DataValue coerce(Object input, int toDataTypeId) throws ResultTypeException {
DataValue value;
if (input instanceof DataValue)
return (DataValue) input;
if (input == null) {
if (toDataTypeId == DataTypes.BINARY)
value = new BinaryValue(false);
else if (toDataTypeId == DataTypes.MULTISTATE)
value = new MultistateValue(0);
else if (toDataTypeId == DataTypes.NUMERIC)
value = new NumericValue(0);
else if (toDataTypeId == DataTypes.ALPHANUMERIC)
value = new AlphanumericValue("");
else
value = null;
} else if (input instanceof AbstractPointWrapper) {
value = ((AbstractPointWrapper) input).getValueImpl();
if ((value != null) && (value.getDataType() != toDataTypeId))
return throwResultTypeException(value, toDataTypeId);
} else // See if the type matches.
if (toDataTypeId == DataTypes.BINARY && input instanceof Boolean)
value = new BinaryValue((Boolean) input);
else if (toDataTypeId == DataTypes.MULTISTATE) {
if (input instanceof Number)
value = new MultistateValue(((Number) input).intValue());
else if (input instanceof String) {
try {
value = new MultistateValue(Integer.parseInt((String) input));
} catch (NumberFormatException e) {
return throwResultTypeException(input, toDataTypeId);
}
} else
return throwResultTypeException(input, toDataTypeId);
} else if (toDataTypeId == DataTypes.NUMERIC) {
if (input instanceof Number)
value = new NumericValue(((Number) input).doubleValue());
else if (input instanceof NumericValue)
value = (NumericValue) input;
else if (input instanceof String) {
try {
value = new NumericValue(Double.parseDouble((String) input));
} catch (NumberFormatException e) {
return throwResultTypeException(input, toDataTypeId);
}
} else
return throwResultTypeException(input, toDataTypeId);
} else if (toDataTypeId == DataTypes.ALPHANUMERIC)
value = new AlphanumericValue(input.toString());
else
// If not, ditch it.
return throwResultTypeException(input, toDataTypeId);
return value;
}
Aggregations