001/*
002 * CREDIT SUISSE IS WILLING TO LICENSE THIS SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU
003 * ACCEPT ALL OF THE TERMS CONTAINED IN THIS AGREEMENT. PLEASE READ THE TERMS AND CONDITIONS OF THIS
004 * AGREEMENT CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU ACCEPT THE TERMS AND CONDITIONS OF
005 * THE AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY IT, SELECT THE "DECLINE" BUTTON AT THE
006 * BOTTOM OF THIS PAGE. Specification: JSR-354 Money and Currency API ("Specification") Copyright
007 * (c) 2012-2013, Credit Suisse All rights reserved.
008 */
009package org.javamoney.moneta.internal;
010
011import javax.money.MonetaryAmountFactory;
012import javax.money.MonetaryContext;
013import javax.money.spi.MonetaryAmountFactoryProviderSpi;
014import javax.money.spi.MonetaryAmountFactoryProviderSpi.QueryInclusionPolicy;
015
016import org.javamoney.moneta.RoundedMoney;
017
018/**
019 * Implementation of {@link MonetaryAmountFactoryProviderSpi} creating instances of
020 * {@link RoundedMoneyAmountFactory}.
021 * 
022 * @author Anatole Tresch
023 */
024public final class RoundedMoneyAmountFactoryProvider implements
025                MonetaryAmountFactoryProviderSpi<RoundedMoney> {
026
027        @Override
028        public Class<RoundedMoney> getAmountType() {
029                return RoundedMoney.class;
030        }
031
032        @Override
033        public MonetaryAmountFactory<RoundedMoney> createMonetaryAmountFactory() {
034                return new RoundedMoneyAmountFactory();
035        }
036
037        /*
038         * (non-Javadoc)
039         * @see javax.money.spi.MonetaryAmountFactoryProviderSpi#getQueryInclusionPolicy()
040         */
041        @Override
042        public QueryInclusionPolicy getQueryInclusionPolicy() {
043                return QueryInclusionPolicy.DIRECT_REFERENCE_ONLY;
044        }
045
046        @Override
047        public MonetaryContext getDefaultMonetaryContext() {
048                return RoundedMoneyAmountFactory.DEFAULT_CONTEXT;
049        }
050
051        @Override
052        public MonetaryContext getMaximalMonetaryContext() {
053                return RoundedMoneyAmountFactory.MAX_CONTEXT;
054        }
055
056}