package si.ijs.acs.objectexplorer.engine.BACI.converters; import si.ijs.acs.objectexplorer.engine.BACI.BACIConverterSupport; import si.ijs.acs.objectexplorer.engine.DataType; import si.ijs.acs.objectexplorer.engine.BACI.BACIDataType; /** * Implementation of BACI double property linear converter, <pre>cx + n</pre>. */ public class BACIDoubleLinearConverter extends BACIConverterSupport { /** * Coeficient. */ protected double c; /** * Offset. */ protected double n; /** * Constructor * @param c coeficient. * @param n offset. */ public BACIDoubleLinearConverter(double c, double n) { super(); this.c = c; this.n = n; } /** * @see si.ijs.acs.objectexplorer.engine.BACI.BACIConverterSupport#convertPropertyValue(java.lang.Object) */ public Object convertPropertyValue(Object value) { return new Double(c * ((Double)value).doubleValue() + n); } /** * @see si.ijs.acs.objectexplorer.engine.BACI.BACIConverterSupport#inverseConvertPropertyValue(java.lang.Object) */ public Object inverseConvertPropertyValue(Object value) { return new Double((((Double)value).doubleValue() - n) / c); } /** * @see si.ijs.acs.objectexplorer.engine.BACI.BACIConverterSupport#getConvertedPropertyValueUnits(String) */ public String getConvertedPropertyValueUnits(String units) { StringBuffer retVal = new StringBuffer(64); if (c != 0.0) { retVal.append(String.valueOf(c)); retVal.append('*'); } retVal.append(units); if (n != 0.0) { retVal.append('+'); retVal.append(String.valueOf(n)); } return retVal.toString(); } /** * @see si.ijs.acs.objectexplorer.engine.Converter#getDescription() */ public String getDescription() { return "Double BACI property linear converter."; } /** * @see si.ijs.acs.objectexplorer.engine.BACI.BACIConverterSupport#getInverseConvertPropertyParameterType() */ public DataType getInverseConvertPropertyParameterType() { return new BACIDataType(double.class); } }