@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyUnit currencyUnit = Monetary.getCurrency(locale); Number numberValue = this.numberFormatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); } }
@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyStyleFormatter formatter = new CurrencyStyleFormatter(); Currency currency = determineCurrency(text, locale); CurrencyUnit currencyUnit = Monetary.getCurrency(currency.getCurrencyCode()); formatter.setCurrency(currency); formatter.setPattern(this.pattern); Number numberValue = formatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); }
@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyUnit currencyUnit = Monetary.getCurrency(locale); Number numberValue = this.numberFormatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); } }
@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyStyleFormatter formatter = new CurrencyStyleFormatter(); Currency currency = determineCurrency(text, locale); CurrencyUnit currencyUnit = Monetary.getCurrency(currency.getCurrencyCode()); formatter.setCurrency(currency); formatter.setPattern(this.pattern); Number numberValue = formatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); }
@Override public MonetaryAmount apply(MonetaryAmount amount) { Objects.requireNonNull(amount, "Amount required."); return amount.getFactory().setCurrency(currency).create(); }
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory().setCurrency(term).create(); }
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory() .setNumber(value.getNumber().numberValue(BigDecimal.class).setScale(1, RoundingMode.DOWN)) .create(); } };
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.multiply(2).getFactory().setCurrency(TERM).create(); } };
@Override public MonetaryAmount apply(MonetaryAmount amount) { Objects.requireNonNull(amount, "Amount required."); CurrencyUnit currency = amount.getCurrency(); int scale = scaleOptional.orElse(currency.getDefaultFractionDigits()); BigDecimal value = amount.getNumber().numberValue(BigDecimal.class).setScale(scale, roundingMode); return amount.getFactory().setNumber(value).create(); }
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory().setNumber( value.getNumber().numberValue(BigDecimal.class).setScale(2, RoundingMode.UP)) .create(); } };
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory() .setNumber(value.getNumber().numberValue(BigDecimal.class).setScale(4, RoundingMode.UP)) .create(); } };
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory() .setNumber(value.getNumber().numberValue(BigDecimal.class).setScale(0, RoundingMode.HALF_EVEN)) .create(); } });
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.getFactory() .setNumber(value.getNumber().numberValue(BigDecimal.class).setScale(2, RoundingMode.DOWN)) .create(); } };
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.multiply(FACTOR).getFactory().setCurrency(term).create(); }
@Override public MonetaryAmount apply(MonetaryAmount value) { return value.multiply(FACTOR).getFactory().setCurrency(term).create(); }
@Override public MonetaryAmount decode(BsonReader reader, DecoderContext decoderContext) { reader.readStartDocument(); CurrencyUnit currency = Monetary.getCurrency(reader.readString(this.currencyKey)); BigDecimal number = new BigDecimal( BigInteger.valueOf(reader.readInt64(this.unscaledKey)), reader.readInt32(this.scaleKey)); reader.readEndDocument(); return Monetary.getDefaultAmountFactory().setNumber(number).setCurrency(currency) .create(); }
@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyUnit currencyUnit = Monetary.getCurrency(locale); Number numberValue = this.numberFormatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); } }
@Override public MonetaryAmount apply(MonetaryAmount amount) { return amount.getFactory().setCurrency(amount.getCurrency()).setNumber( amount.getNumber().numberValue(BigDecimal.class) .setScale(this.context.getInt(SCALE_KEY), this.context.get(RoundingMode.class))).create(); }
@Override public MonetaryAmount decode(BsonReader reader, DecoderContext decoderContext) { reader.readStartDocument(); CurrencyUnit currency = Monetary.getCurrency(reader.readString(this.currencyKey)); BigDecimal number = new BigDecimal(reader.readString(this.numberKey)); reader.readEndDocument(); return Monetary.getDefaultAmountFactory().setNumber(number).setCurrency(currency) .create(); }
@Override public MonetaryAmount parse(String text, Locale locale) throws ParseException { CurrencyStyleFormatter formatter = new CurrencyStyleFormatter(); Currency currency = determineCurrency(text, locale); CurrencyUnit currencyUnit = Monetary.getCurrency(currency.getCurrencyCode()); formatter.setCurrency(currency); formatter.setPattern(this.pattern); Number numberValue = formatter.parse(text, locale); return Monetary.getDefaultAmountFactory().setNumber(numberValue).setCurrency(currencyUnit).create(); }