1 package org.apidesign.apifest08.currency;
4 * Some Factory for Factories :-)
5 * Depends on the whole application design...
6 * @author Ladislav Vitasek
8 final public class ConvertorsFactory {
9 private CurrencyConvertorFactory currencyConvertorFactoryInstance = null;
10 private final static ConvertorsFactory instance = new ConvertorsFactory();
13 private ConvertorsFactory() {
17 public static CurrencyConvertorFactory getCurrencyConvertorFactoryInstance() throws CannotInstantiateFactoryException {
18 return getInstance().getCurrencyConvertor();
22 * Returns instance of CurrencyConvertorFactory
23 * @return new instance of CurrencyConvertorFactory
24 * @throws CannotInstantiateFactoryException
26 private synchronized CurrencyConvertorFactory getCurrencyConvertor() throws CannotInstantiateFactoryException {
27 if (currencyConvertorFactoryInstance == null) {//intern implementation
28 // String className = System.getProperty("currencyFactory", CurrencyConvertorFactoryImpl.class.getName());
30 // currencyConvertorFactoryInstance = (CurrencyConvertorFactory) Class.forName(className).newInstance();
31 // } catch (Exception e) {
32 // throw new CannotInstantiateFactoryException(e);
35 currencyConvertorFactoryInstance = new CurrencyConvertorFactoryImpl();
37 return currencyConvertorFactoryInstance;
40 public static ConvertorsFactory getInstance() {