package org.ariadne_eu.content.insert; import java.util.Vector; import javax.activation.DataHandler; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.utils.config.RepositoryConstants; /** * Created by ben * Date: 11-sep-2007 * Time: 21:20:17 * To change this template use File | Settings | File Templates. */ public class InsertContentFactory { private static Logger log = Logger.getLogger(InsertContentFactory.class); private static Vector cachedImplementations = new Vector(); static { initialize(); } public static void initialize() { cachedImplementations = new Vector(); for (int nb = -1; nb < 10; nb++) { String implementation; if (nb >= 0) { implementation = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_INSERT_IMPLEMENTATION + "." + nb); } else { implementation = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_INSERT_IMPLEMENTATION); } if (implementation != null) { try { Class implClass = Class.forName(implementation); InsertContentImpl insertContent = (InsertContentImpl) implClass.newInstance(); insertContent.setNumber(nb); insertContent.initialize(); cachedImplementations.add(insertContent); } catch (Exception e) { log.error("Error while initializing insertContent class", e); } } } } public static InsertContentImpl[] getInsertImpl() { return (InsertContentImpl[]) cachedImplementations.toArray(new InsertContentImpl[cachedImplementations.size()]); } public static void insertContent(String identifier, DataHandler dataHandler, String fileName, String fileType) { InsertContentImpl[] impls = getInsertImpl(); for (int i = 0; i < impls.length; i++) { InsertContentImpl impl = impls[i]; impl.insertContent(identifier, dataHandler, fileName, fileType); } } }