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; 014 015import org.javamoney.moneta.Money; 016import org.javamoney.moneta.ServicePriority; 017 018/** 019 * Implementation of {@link MonetaryAmountFactoryProviderSpi} creating instances of 020 * {@link MoneyAmountFactory}. 021 * 022 * @author Anatole Tresch 023 */ 024@ServicePriority(10) 025public final class MoneyAmountFactoryProvider implements 026 MonetaryAmountFactoryProviderSpi<Money> { 027 028 @Override 029 public Class<Money> getAmountType() { 030 return Money.class; 031 } 032 033 @Override 034 public MonetaryAmountFactory<Money> createMonetaryAmountFactory() { 035 return new MoneyAmountFactory(); 036 } 037 038 /* 039 * (non-Javadoc) 040 * @see javax.money.spi.MonetaryAmountFactoryProviderSpi#getQueryInclusionPolicy() 041 */ 042 @Override 043 public QueryInclusionPolicy getQueryInclusionPolicy() { 044 return QueryInclusionPolicy.ALWAYS; 045 } 046 047 @Override 048 public MonetaryContext getDefaultMonetaryContext() { 049 return MoneyAmountFactory.DEFAULT_CONTEXT; 050 } 051 052 @Override 053 public MonetaryContext getMaximalMonetaryContext() { 054 return MoneyAmountFactory.MAX_CONTEXT; 055 } 056}