public Amount copy() { return new Amount(value, currency, issuer, isNative, unbounded); }
public Amount newIssuer(AccountID issuer) { return new Amount(value, currency, issuer); }
@Deprecated private static Amount fromXrpString(String valueString) { BigDecimal val = new BigDecimal(valueString); return new Amount(val); }
public static Amount fromIOUString(String val) { String[] split = val.split("/"); if (split.length == 1) { throw new RuntimeException("IOU string must be in the form number/currencyString or number/currencyString/issuerString"); } else if (split.length == 2) { return new Amount(new BigDecimal(split[0]), split[1]); } else { return new Amount(new BigDecimal(split[0]), split[1], split[2]); } }
@Override public Amount fromJSONObject(JSONObject jsonObject) { String valueString = jsonObject.getString("value"); String issuerString = jsonObject.getString("issuer"); String currencyString = jsonObject.getString("currency"); return new Amount(new BigDecimal(valueString), currencyString, issuerString); } }
private Amount newValue(BigDecimal newValue, boolean round, boolean unbounded) { if (round) { newValue = roundValue(newValue, isNative); } return new Amount(newValue, currency, issuer, isNative, unbounded); }
public Amount amount(Number value) { return new Amount(BigDecimal.valueOf(value.doubleValue()), currency, issuer, isNative()); }
public Amount amount(BigDecimal value) { return new Amount(value, currency, issuer, isNative()); }
public static Amount fromDropString(String val) { BigDecimal drops = new BigDecimal(val).scaleByPowerOfTen(-6); checkDropsValueWhole(val); return new Amount(drops); }
public static AccountLine fromJSON(AccountID orientedTo, JSONObject line) { AccountLine l = new AccountLine(); AccountID peer = AccountID.fromAddress(line.getString("account")); BigDecimal balance = new BigDecimal(line.getString("balance")); BigDecimal limit = new BigDecimal(line.getString("limit")); BigDecimal limit_peer = new BigDecimal(line.getString("limit_peer")); l.currency = Currency.fromString(line.getString("currency")); l.balance = new Amount(balance, l.currency, peer); l.limit = new Amount(limit, l.currency, peer); l.limit_peer = new Amount(limit_peer, l.currency, orientedTo); l.freeze = line.optBoolean("freeze", false); l.freeze_peer = line.optBoolean("freeze_peer", false); l.authorized = line.optBoolean("authorized", false); l.authorized_peer = line.optBoolean("authorized_peer", false); l.no_ripple = line.optBoolean("no_ripple", false); l.no_ripple_peer = line.optBoolean("no_ripple_peer", false); l.quality_in = line.optInt("quality_in", 0); l.quality_out = line.optInt("quality_out", 0); return l; }
@Override public Amount fromParser(BinaryParser parser, Integer hint) { BigDecimal value; byte[] mantissa = parser.read(8); byte b1 = mantissa[0], b2 = mantissa[1]; boolean isIOU = (b1 & 0x80) != 0; boolean isPositive = (b1 & 0x40) != 0; int sign = isPositive ? 1 : -1; if (isIOU) { mantissa[0] = 0; Currency curr = Currency.translate.fromParser(parser); AccountID issuer = AccountID.translate.fromParser(parser); int exponent = ((b1 & 0x3F) << 2) + ((b2 & 0xff) >> 6) - 97; mantissa[1] &= 0x3F; value = new BigDecimal(new BigInteger(sign, mantissa), -exponent); return new Amount(value, curr, issuer, false); } else { mantissa[0] &= 0x3F; value = xrpFromDropsMantissa(mantissa, sign); return new Amount(value); } }
destinationAmount = new Amount(destAmountValue, destAmountCurrency, dest);