package org.ariadne_eu.metadata.delete; import java.util.Vector; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.utils.config.RepositoryConstants; public class DeleteMetadataFactory { private static Logger log = Logger.getLogger(DeleteMetadataFactory.class); private static Vector cachedImplementations = new Vector(); static { initialize(); } public static void initialize() { cachedImplementations = new Vector(); for (int implementation = -1; implementation < 10; implementation++) { String className; if (implementation >= 0) { className = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DELETE_IMPLEMENTATION + "." + implementation); } else { className = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DELETE_IMPLEMENTATION); } if (className != null) { try { Class implClass = Class.forName(className); DeleteMetadataImpl insertMetadata = (DeleteMetadataImpl) implClass.newInstance(); insertMetadata.setImplementation(implementation); insertMetadata.initialize(); cachedImplementations.add(insertMetadata); } catch (Exception e) { log.error("Error while initializing deleteMetadata class", e); } } } } public static DeleteMetadataImpl[] getInsertImpl() { return (DeleteMetadataImpl[]) cachedImplementations.toArray(new DeleteMetadataImpl[cachedImplementations.size()]); } public static void deleteMetadata(String identifier) { DeleteMetadataImpl[] impls = getInsertImpl(); for (int i = 0; i < impls.length; i++) { DeleteMetadataImpl impl = impls[i]; impl.deleteMetadata(identifier); } } }