/** * */ package org.chris.portmapper; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Level; import org.chris.portmapper.model.PortMappingPreset; import org.chris.portmapper.router.sbbi.SBBIRouterFactory; //import org.chris.portmapper.router.weupnp.WeUPnPRouterFactory; /** * @author chris * @version $Id: Settings.java 61 2009-08-15 14:58:46Z christoph $ */ public class Settings implements Serializable { /** * */ private static final long serialVersionUID = -1349121864190290050L; public final static String PROPERTY_PORT_MAPPING_PRESETS = "presets"; private List<PortMappingPreset> presets; private boolean useEntityEncoding; private String logLevel; private String routerFactoryClassName; private transient PropertyChangeSupport propertyChangeSupport; public Settings() { useEntityEncoding = true; logLevel = Level.INFO.toString(); presets = new ArrayList<PortMappingPreset>(); routerFactoryClassName = SBBIRouterFactory.class.getName(); // routerFactoryClassName = WeUPnPRouterFactory.class.getName(); propertyChangeSupport = new PropertyChangeSupport(this); } public void addPropertyChangeListener(String property, PropertyChangeListener listener) { this.propertyChangeSupport .addPropertyChangeListener(property, listener); } public List<PortMappingPreset> getPresets() { return presets; } public void setPresets(List<PortMappingPreset> presets) { this.presets = presets; } public void addPreset(PortMappingPreset newPreset) { List<PortMappingPreset> oldPresets = new ArrayList<PortMappingPreset>( this.presets); this.presets.add(newPreset); this.propertyChangeSupport.firePropertyChange( PROPERTY_PORT_MAPPING_PRESETS, oldPresets, new ArrayList<PortMappingPreset>(this.presets)); } public void removePresets(PortMappingPreset selectedPreset) { List<PortMappingPreset> oldPresets = new ArrayList<PortMappingPreset>( this.presets); this.presets.remove(selectedPreset); this.propertyChangeSupport.firePropertyChange( PROPERTY_PORT_MAPPING_PRESETS, oldPresets, new ArrayList<PortMappingPreset>(this.presets)); } /** * @param portMappingPreset */ public void savePreset(PortMappingPreset portMappingPreset) { this.propertyChangeSupport.firePropertyChange( PROPERTY_PORT_MAPPING_PRESETS, null, new ArrayList<PortMappingPreset>(this.presets)); } @Override public String toString() { return "[Settings: presets=" + presets + ", useEntityEncoding=" + useEntityEncoding + ", logLevel=" + logLevel + ", routerFactoryClassName=" + routerFactoryClassName + "]"; } /** * @return the useEntityEncoding */ public boolean isUseEntityEncoding() { return useEntityEncoding; } /** * @param useEntityEncoding * the useEntityEncoding to set */ public void setUseEntityEncoding(boolean useEntityEncoding) { this.useEntityEncoding = useEntityEncoding; } /** * @return */ public String getLogLevel() { return this.logLevel; } /** * @param logLevel * the logLevel to set */ public void setLogLevel(String logLevel) { this.logLevel = logLevel; } public String getRouterFactoryClassName() { return routerFactoryClassName; } public void setRouterFactoryClassName(String routerFactoryClassName) { this.routerFactoryClassName = routerFactoryClassName; } }