package org.ripple.power.txns.data; import org.json.JSONObject; import org.ripple.power.config.LSystem; import org.ripple.power.hft.TradeType; import org.ripple.power.txns.Const; public class Offer { public int flags; public int seq; public Take taker_gets = new Take(); public Take taker_pays = new Take(); public boolean Closed; private double _amount; private double _amountXrp; public Offer() { } public Offer(boolean closed) { Closed = closed; } public TradeType getType() { return taker_gets.currency.equalsIgnoreCase(LSystem.nativeCurrency) ? TradeType.SELL : TradeType.BUY; } public double getAmountXrp() { if (_amountXrp == 0) { String value = TradeType.BUY == getType() ? taker_pays.value : taker_gets.value; double valNumber = Double.parseDouble(value); _amountXrp = valNumber / Const.DROPS_IN_XRP; } return _amountXrp; } public double getAmount() { if (_amount == 0) { String value = TradeType.BUY == getType() ? taker_gets.value : taker_pays.value; _amount = Double.parseDouble(value); } return _amount; } public double getPrice() { return getAmount() / getAmountXrp(); } public String getCurrency() { return taker_gets.currency.equalsIgnoreCase(LSystem.nativeCurrency) ? taker_pays.currency : taker_gets.currency; } public void from(JSONObject obj) { if (obj != null) { this.flags = obj.optInt("flags"); this.taker_gets.from(obj.opt("taker_gets")); this.taker_pays.from(obj.opt("taker_pays")); this.seq = obj.optInt("seq"); } } }