package com.constellio.data.dao.managers.config; import java.io.File; import java.io.InputStream; import java.util.List; import java.util.Map; import org.jdom2.Document; import com.constellio.data.dao.managers.config.events.ConfigEventListener; import com.constellio.data.dao.managers.config.values.BinaryConfiguration; import com.constellio.data.dao.managers.config.values.PropertiesConfiguration; import com.constellio.data.dao.managers.config.values.TextConfiguration; import com.constellio.data.dao.managers.config.values.XMLConfiguration; public interface ConfigManager { PropertiesAlteration EMPTY_PROPERTY_ALTERATION = new PropertiesAlteration() { @Override public void alter(Map<String, String> properties) { } }; BinaryConfiguration getBinary(String path); XMLConfiguration getXML(String path); TextConfiguration getText(String path); PropertiesConfiguration getProperties(String path); boolean exist(String path); boolean folderExist(String path); List<String> list(String path); void createXMLDocumentIfInexistent(String path, DocumentAlteration documentAlteration); void createPropertiesDocumentIfInexistent(String path, PropertiesAlteration propertiesAlteration); void delete(String path); void deleteFolder(String path); void delete(String path, String hash) throws ConfigManagerException.OptimisticLockingConfiguration; void updateXML(String path, DocumentAlteration documentAlteration); void updateProperties(String path, PropertiesAlteration propertiesAlteration); void add(String path, InputStream newBinaryStream); void add(String path, Document newDocument); void add(String path, Map<String, String> newProperties); void update(String path, String hash, InputStream newBinaryStream) throws ConfigManagerException.OptimisticLockingConfiguration; void update(String path, String hash, Document newDocument) throws ConfigManagerException.OptimisticLockingConfiguration; void update(String path, String hash, Map<String, String> newProperties) throws ConfigManagerException.OptimisticLockingConfiguration; void registerListener(String path, ConfigEventListener listener); void deleteAllConfigsIn(String collection); void copySettingsFrom(File setting); void move(String src, String dest); }