/*
* File : ParameterRepository.java
* Created : Nov 21, 2003
* By : epall
*
* Azureus - a Java Bittorrent client
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details ( see the LICENSE file ).
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.gudy.azureus2.pluginsimpl.local.ui.config;
import java.util.HashMap;
import java.util.Set;
import org.gudy.azureus2.plugins.ui.config.*;
import org.gudy.azureus2.core3.config.impl.ConfigurationDefaults;
import org.gudy.azureus2.core3.util.AEMonitor;
/**
* @author epall
*
*/
public class ParameterRepository
{
private static ParameterRepository instance;
private static AEMonitor class_mon = new AEMonitor( "ParameterRepository:class" );
private HashMap params;
private ParameterRepository()
{
params = new HashMap();
}
public static ParameterRepository getInstance()
{
try{
class_mon.enter();
if(instance == null)
instance = new ParameterRepository();
return instance;
}finally{
class_mon.exit();
}
}
public void addPlugin(Parameter[] parameters, String displayName)
{
params.put(displayName, parameters);
// set the defaults
ConfigurationDefaults def = ConfigurationDefaults.getInstance();
if (def == null)
return;
for (int i = 0; i < parameters.length; i++) {
Parameter parameter = parameters[i];
if (!(parameter instanceof ParameterImpl))
continue;
String sKey = ((ParameterImpl)parameter).getKey();
if(parameter instanceof StringParameterImpl) {
def.addParameter(sKey,
((StringParameterImpl)parameter).getDefaultValue());
} else if(parameter instanceof IntParameterImpl) {
def.addParameter(sKey,
((IntParameterImpl)parameter).getDefaultValue());
} else if(parameter instanceof BooleanParameterImpl) {
def.addParameter(sKey,
((BooleanParameterImpl)parameter).getDefaultValue());
} else if(parameter instanceof FileParameter) {
def.addParameter(sKey,
((FileParameter)parameter).getDefaultValue());
} else if(parameter instanceof DirectoryParameterImpl) {
def.addParameter(sKey,
((DirectoryParameterImpl)parameter).getDefaultValue());
} else if(parameter instanceof IntsParameter) {
def.addParameter(sKey,
((IntsParameter)parameter).getDefaultValue());
} else if(parameter instanceof StringListParameterImpl) {
def.addParameter(sKey,
((StringListParameterImpl)parameter).getDefaultValue());
} else if(parameter instanceof ColorParameter) {
def.addParameter(sKey + ".red",
((ColorParameter)parameter).getDefaultRed());
def.addParameter(sKey + ".green",
((ColorParameter)parameter).getDefaultGreen());
def.addParameter(sKey + ".blue",
((ColorParameter)parameter).getDefaultBlue());
}
}
}
public String[] getNames()
{
Set keys = params.keySet();
return (String[])(keys.toArray(new String[keys.size()]));
}
public Parameter[] getParameterBlock(String key)
{
return (Parameter[])params.get(key);
}
}
|