/** * */ package org.ariadne_eu.metadata.delete; import java.io.File; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.utils.config.RepositoryConstants; /** * @author gonzalo * */ public class DeleteMetadataFSImpl extends DeleteMetadataImpl { private static Logger log = Logger.getLogger(DeleteMetadataFSImpl.class); private String dirString; void initialize() { super.initialize(); try { dirString = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFS_DIR + "." + getImplementation()); if (dirString == null) dirString = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFS_DIR); if (dirString == null) log.error("initialize failed: no " + RepositoryConstants.getInstance().MD_SPIFS_DIR + " found"); File dir = new File(dirString); if (!dir.isDirectory()) log.error("initialize failed: " + RepositoryConstants.getInstance().MD_SPIFS_DIR + " invalid directory"); } catch (Throwable t) { log.error("initialize: ", t); } } @Override public synchronized void deleteMetadata(String identifier) { String name = identifier.replaceAll(":", "_"); name = name.replaceAll("/", ".s."); File folder = new File(dirString); File[] subfolders = folder.listFiles(); for (int i = 0; i < subfolders.length; i++) { if (subfolders[i].isDirectory()) { File result = new File(subfolders[i].getPath() + File.separator + name + ".xml"); result.delete(); } } File result = new File(dirString + name + ".xml"); result.delete(); } }