001/* 002 Copyright (c) 2012, 2014, 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 javax.money.CurrencyUnit; 019import javax.money.MonetaryAmount; 020 021/** 022 *The producer of {@link MonetaryAmount} from {@link CurrencyUnit} and {@link Number} 023 * @author Otavio Santana 024 * @see FastMoneyProducer 025 * @see MoneyProducer 026 * @see RoundedMoneyProducer 027 * @since 1.0.1 028 */ 029public interface MonetaryAmountProducer { 030 /** 031 * Creates a {@link MonetaryAmount} from {@link CurrencyUnit} and {@link Number} 032 * @param currency the currency, not null. 033 * @param number the amount, not nul. 034 * @return a {@link MonetaryAmount} never null 035 * @throws NullPointerException if currency and Number is null 036 */ 037 MonetaryAmount create(CurrencyUnit currency, Number number); 038 039}