package tundra; // -----( IS Java Code Template v1.2 // -----( CREATED: 2017-05-07 10:55:49 EST // -----( ON-HOST: 192.168.66.129 import com.wm.data.*; import com.wm.util.Values; import com.wm.app.b2b.server.Service; import com.wm.app.b2b.server.ServiceException; // --- <<IS-START-IMPORTS>> --- import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; import permafrost.tundra.data.IDataHelper; import permafrost.tundra.math.BigDecimalHelper; import permafrost.tundra.measure.MeasureHelper; import permafrost.tundra.measure.UnitHelper; // --- <<IS-END-IMPORTS>> --- public final class measure { // ---( internal utility methods )--- final static measure _instance = new measure(); static measure _newInstance() { return new measure(); } static measure _cast(Object o) { return (measure)o; } // ---( server methods )--- public static final void convert (IData pipeline) throws ServiceException { // --- <<IS-START(convert)>> --- // @subtype unknown // @sigtype java 3.5 // [i] field:0:optional $value // [i] field:0:required $unit.input {"t","kg","g","lb","oz","km","m","cm","mm","mi","yd","ft","in"} // [i] field:0:required $unit.output {"t","kg","g","lb","oz","km","m","cm","mm","mi","yd","ft","in"} // [i] field:0:optional $precision // [i] field:0:optional $rounding {"HALF_UP","CEILING","DOWN","FLOOR","HALF_DOWN","HALF_EVEN","UNNECESSARY","UP"} // [o] field:0:optional $result IDataCursor cursor = pipeline.getCursor(); try { BigDecimal value = IDataHelper.get(cursor, "$value", BigDecimal.class); String inputUnit = IDataHelper.get(cursor, "$unit.input", String.class); String outputUnit = IDataHelper.get(cursor, "$unit.output", String.class); int precision = IDataHelper.getOrDefault(cursor, "$precision", Integer.class, -1); RoundingMode rounding = IDataHelper.get(cursor, "$rounding", RoundingMode.class); if (value != null) { IDataHelper.put(cursor, "$result", BigDecimalHelper.round(MeasureHelper.convert(value, UnitHelper.parse(inputUnit), UnitHelper.parse(outputUnit), MathContext.DECIMAL128), precision, rounding), String.class); } } finally { cursor.destroy(); } // --- <<IS-END>> --- } }