package net.codjo.dataprocess.gui.treatmenthelper; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * */ public class RepositoryPreference { private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); private Map<String, List<String>> repositoryMap = new HashMap<String, List<String>>(); public void addRepository(String repositoryName) { repositoryMap.put(repositoryName, new ArrayList<String>()); propertyChangeSupport.firePropertyChange("repositoryMap", null, null); } public void removeRepository(String repositoryName) { repositoryMap.remove(repositoryName); propertyChangeSupport.firePropertyChange("repositoryMap", null, null); } public List<String> getRepositoryNames() { return Arrays.asList(repositoryMap.keySet().toArray(new String[repositoryMap.keySet().size()])); } public void addRepositoryPath(String repositoryName, String path) { List<String> repositoryPath = repositoryMap.get(repositoryName); if (repositoryPath == null) { throw new IllegalArgumentException("Le repository '" + repositoryName + "' n'existe pas."); } repositoryPath.add(path); propertyChangeSupport.firePropertyChange("repositoryMap", null, null); } public void removeRepositoryPath(String repositoryName, String path) { List<String> repositoryPath = repositoryMap.get(repositoryName); if (repositoryPath == null) { throw new IllegalArgumentException("Le repository '" + repositoryName + "' n'existe pas."); } repositoryPath.remove(path); propertyChangeSupport.firePropertyChange("repositoryMap", null, null); } public List<String> getRepositoryPath(String repositoryName) { return repositoryMap.get(repositoryName); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } private Object readResolve() { propertyChangeSupport = new PropertyChangeSupport(this); return this; } }