package org.marketcetera.modules.async; import org.marketcetera.util.misc.ClassVersion; import org.marketcetera.util.log.I18NMessage0P; import org.marketcetera.module.ModuleFactory; import org.marketcetera.module.Module; import org.marketcetera.module.ModuleCreationException; import org.marketcetera.module.ModuleURN; /* $License$ */ /** * Factory for a module that blocks when receiving data. * * @author anshul@marketcetera.com * @version $Id: BlockingModuleFactory.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: BlockingModuleFactory.java 16154 2012-07-14 16:34:05Z colin $") public class BlockingModuleFactory extends ModuleFactory { /** * Creates an instance. * */ public BlockingModuleFactory() { super(PROVIDER_URN, new I18NMessage0P(Messages.LOGGER, "blockingFactory"), false, false); } @Override public Module create(Object... inParameters) throws ModuleCreationException { return sLastInstance = new BlockingReceiverModule(); } /** * The last module instance created by this factory. * @return the last module instance created by this factory. */ public static BlockingReceiverModule getLastInstance() { return sLastInstance; } private volatile static BlockingReceiverModule sLastInstance; /** * The Provider URN. */ public static final ModuleURN PROVIDER_URN = new ModuleURN("metc:test:blocking"); //$NON-NLS-1$ public static final ModuleURN INSTANCE_URN = new ModuleURN(PROVIDER_URN, "single"); //$NON-NLS-1$ }