package policy.rule; import java.math.BigDecimal; import java.text.DecimalFormat; import foundation.dao.DataWriter; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import policy.OrderEvent; public abstract class RuleAction implements IJSONProvider{ protected RuleMeta meta; public RuleAction() { } public void setMeta(RuleMeta meta) { this.meta = meta; } public RuleMeta getMeta() { return meta; } public abstract void createBoard(OrderCalculator calculator, CheckResult result); public abstract boolean check(OrderCalculator calculator, OrderEvent event, DataWriter dataWriter); public static String formatRate(BigDecimal value) { if (value == null) { return "0%"; } value = value.multiply(BigDecimal.valueOf(100)); DecimalFormat decimalFormat = new DecimalFormat("00.00"); String result = decimalFormat.format(value); return result + "%"; } public static String formatMoney(BigDecimal value) { if (value == null) { return "¥0.00"; } DecimalFormat decimalFormat = new DecimalFormat("0.00"); String result = decimalFormat.format(value); return "¥" + result; } public static void main(String[] args) { BigDecimal value = BigDecimal.valueOf(1234.56789); System.out.println(formatMoney(value)); } public void writeJSON(IJSONWriter writer) { writer.beginObject(); writer.write("id", meta.getId()); writer.write("name", meta.getName()); writer.write("title", meta.getTitle()); writer.write("value", meta.getValue()); writer.write("unit", meta.getUnit()); writer.write("className", meta.getClassName()); writer.write("level", meta.getLevel().name()); writer.endObject(); } }