001/**
002 * Copyright (c) 2012, 2015, Credit Suisse (Anatole Tresch), Werner Keil and others by the @author tag.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016package org.javamoney.moneta.function;
017
018import static java.util.Objects.requireNonNull;
019
020import javax.money.CurrencyUnit;
021import javax.money.MonetaryAmount;
022import javax.money.MonetaryOperator;
023
024import org.javamoney.moneta.RoundedMoney;
025
026/**
027 * The default implementation to {@link MonetaryRoundedFactory}, this implementation returns the {@link RoundedMoney}.
028 * @see {@link MonetaryRoundedFactory#create(Number, CurrencyUnit)}
029 * @author Otavio Santana
030 * @deprecated Do not use, access is only provided for backward compatibility and will be removed.
031 */
032@Deprecated
033public class DefaultMonetaryRoundedFactory implements MonetaryRoundedFactory, org.javamoney.moneta.MonetaryRoundedFactory {
034
035        private final MonetaryOperator roundingOperator;
036
037        public DefaultMonetaryRoundedFactory(MonetaryOperator roundingOperator) {
038                this.roundingOperator = roundingOperator;
039        }
040
041        @Override
042        public MonetaryAmount create(Number number, CurrencyUnit currencyUnit) {
043                return RoundedMoney.of(requireNonNull(number), requireNonNull(currencyUnit), roundingOperator);
044        }
045
046        @Override
047        public MonetaryOperator getRoundingOperator() {
048                return roundingOperator;
049        }
050
051        @Override
052        public String toString() {
053                StringBuilder sb = new StringBuilder();
054                sb.append(DefaultMonetaryRoundedFactory.class.getName()).append('{')
055                .append("roundingOperator: ").append(roundingOperator).append('}');
056                return sb.toString();
057        }
058
059}