/** * Creates an {@link DefaultCashRounding} for rounding * {@link MonetaryAmount} instances given a currency. * * @param currency The currency, which determines the required precision. As * {@link RoundingMode}, by default, {@link RoundingMode#HALF_UP} * is used. */ DefaultCashRounding(CurrencyUnit currency, RoundingMode roundingMode, int minimalMinors) { this(currency.getDefaultFractionDigits(), roundingMode, minimalMinors); }
/** * Creates an {@link DefaultRounding} for rounding {@link MonetaryAmount} * instances given a currency. * * @param currency The currency, which determines the required precision. As * {@link RoundingMode}, by default, {@link RoundingMode#HALF_UP} * is used. */ DefaultRounding(CurrencyUnit currency, RoundingMode roundingMode) { this(currency.getDefaultFractionDigits(), roundingMode); }
@Override public FastMoney fromNonNullValue(Long val) { BigDecimal minorVal = BigDecimal.valueOf(val, currencyUnit.getDefaultFractionDigits()); return FastMoney.of(minorVal, currencyUnit); }
@Override public Money fromNonNullValue(Long val) { BigDecimal minorVal = BigDecimal.valueOf(val, currencyUnit.getDefaultFractionDigits()); return Money.of(minorVal, currencyUnit); }
@Override public Money fromNonNullValue(Long val) { BigDecimal minorVal = BigDecimal.valueOf(val, currencyUnit.getDefaultFractionDigits()); return Money.of(minorVal, currencyUnit); }
@Override protected FastMoney fromConvertedColumns(Object[] convertedColumns) { CurrencyUnit currencyUnitPart = (CurrencyUnit) convertedColumns[0]; Long amountMinorPart = (Long) convertedColumns[1]; BigDecimal majorVal = BigDecimal.valueOf(amountMinorPart, currencyUnitPart.getDefaultFractionDigits()); return FastMoney.of(majorVal, currencyUnitPart); }
@Override public FastMoney fromNonNullValue(Long val) { BigDecimal minorVal = BigDecimal.valueOf(val, currencyUnit.getDefaultFractionDigits()); return FastMoney.of(minorVal, currencyUnit); }
@Override protected FastMoney fromConvertedColumns(Object[] convertedColumns) { CurrencyUnit currencyUnitPart = (CurrencyUnit) convertedColumns[0]; Long amountMinorPart = (Long) convertedColumns[1]; BigDecimal majorVal = BigDecimal.valueOf(amountMinorPart, currencyUnitPart.getDefaultFractionDigits()); return FastMoney.of(majorVal, currencyUnitPart); }
@Override protected Money fromConvertedColumns(Object[] convertedColumns) { CurrencyUnit currencyUnitPart = (CurrencyUnit) convertedColumns[0]; Long amountMinorPart = (Long) convertedColumns[1]; BigDecimal majorVal = BigDecimal.valueOf(amountMinorPart, currencyUnitPart.getDefaultFractionDigits()); return Money.of(majorVal, currencyUnitPart); }
public static void printDetails(CurrencyUnit cu) { if (cu == null) { System.out.println("N/A"); } else { System.out.println("CurrencyUnit '" + cu.toString() + "':\n" + " Class : " + cu.getClass().getName() + "\n" + " Currency Code : " + cu.getCurrencyCode() + "\n" + " Num.Code : " + cu.getNumericCode() + "\n" + " DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" + " Context : " + cu.getContext()); } }
public static void printDetails(String title, CurrencyUnit cu) { if (cu == null) { System.out.println(title + " -> N/A"); } else { System.out.println(title + " -> CurrencyUnit '" + cu.toString() + "':\n" + " Class : " + cu.getClass().getName() + "\n" + " Currency Code : " + cu.getCurrencyCode() + "\n" + " Num.Code : " + cu.getNumericCode() + "\n" + " DefaultFraction Digits: " + cu.getDefaultFractionDigits() + "\n" + " Context : " + cu.getContext()); } }
@Override public BigDecimal write(@Nonnull final MonetaryAmount amount) { final BigDecimal decimal = amount.getNumber().numberValueExact(BigDecimal.class); final int defaultFractionDigits = amount.getCurrency().getDefaultFractionDigits(); final int scale = Math.max(decimal.scale(), defaultFractionDigits); return decimal.setScale(scale, RoundingMode.UNNECESSARY); }
@Override public BigDecimal write(@Nonnull final MonetaryAmount amount) { final BigDecimal decimal = amount.getNumber().numberValueExact(BigDecimal.class); final int defaultFractionDigits = amount.getCurrency().getDefaultFractionDigits(); final int scale = Math.max(decimal.scale(), defaultFractionDigits); return decimal.setScale(scale, RoundingMode.UNNECESSARY); }
@Override public Long toNonNullValue(MonetaryAmount value) { if (!currencyUnit.equals(value.getCurrency())) { throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrency()); } BigDecimal val = value.getNumber().numberValue(BigDecimal.class); return val.movePointRight(currencyUnit.getDefaultFractionDigits()).longValue(); }
@Override public Long toNonNullValue(MonetaryAmount value) { if (!currencyUnit.equals(value.getCurrency())) { throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrency()); } BigDecimal val = value.getNumber().numberValue(BigDecimal.class); return val.movePointRight(currencyUnit.getDefaultFractionDigits()).longValue(); }
@Override protected Object[] toConvertedColumns(MonetaryAmount value) { BigDecimal minorVal = value.getNumber().numberValue(BigDecimal.class); minorVal = minorVal.movePointRight(value.getCurrency().getDefaultFractionDigits()); return new Object[] { value.getCurrency(), minorVal.longValue() }; }
@Override public Long toNonNullValue(MonetaryAmount value) { if (!currencyUnit.equals(value.getCurrency())) { throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrency()); } BigDecimal val = value.getNumber().numberValue(BigDecimal.class); return val.movePointRight(currencyUnit.getDefaultFractionDigits()).longValue(); }
@Override protected Object[] toConvertedColumns(MonetaryAmount value) { BigDecimal minorVal = value.getNumber().numberValue(BigDecimal.class); minorVal = minorVal.movePointRight(value.getCurrency().getDefaultFractionDigits()); return new Object[] { value.getCurrency(), minorVal.longValue() }; }
@Override protected Object[] toConvertedColumns(MonetaryAmount value) { BigDecimal minorVal = value.getNumber().numberValue(BigDecimal.class); minorVal = minorVal.movePointRight(value.getCurrency().getDefaultFractionDigits()); return new Object[] { value.getCurrency(), minorVal.longValue() }; }
@Override protected Object[] toConvertedColumns(MonetaryAmount value) { BigDecimal minorVal = value.getNumber().numberValue(BigDecimal.class); minorVal = minorVal.movePointRight(value.getCurrency().getDefaultFractionDigits()); return new Object[] { value.getCurrency(), minorVal.longValue() }; }