📄 configurationmanager.java
字号:
File temp = new File(dir);
if (!temp.exists())
FileUtil.mkdirs(temp);
if (!temp.isDirectory())
throw new IOException((new StringBuilder()).append("Configuration error. This is not a directory: ").append(dir).toString());
}
return dir;
}
public float getFloatParameter(String parameter)
{
return getFloatParameter(parameter, 0.0F);
}
public float getFloatParameter(String parameter, float def_val)
{
ConfigurationDefaults def = ConfigurationDefaults.getInstance();
Object o = propertiesMap.get(parameter);
if (o instanceof Number)
return ((Number)o).floatValue();
String s = getStringParameter(parameter);
if (!s.equals(""))
return Float.parseFloat(s);
break MISSING_BLOCK_LABEL_90;
Exception e;
e;
Debug.out((new StringBuilder()).append("Parameter '").append(parameter).append("' has incorrect type").toString(), e);
return def.getFloatParameter(parameter);
Exception e2;
e2;
return def_val;
}
public boolean setParameter(String parameter, float defaultValue)
{
String newValue = String.valueOf(defaultValue);
return setParameter(parameter, stringToBytes(newValue));
}
public boolean setParameter(String parameter, int defaultValue)
{
Long newValue = new Long(defaultValue);
Long oldValue = (Long)propertiesMap.put(parameter, newValue);
return notifyParameterListenersIfChanged(parameter, newValue, oldValue);
ClassCastException e;
e;
notifyParameterListeners(parameter);
return true;
}
public boolean setParameter(String parameter, long defaultValue)
{
Long newValue = new Long(defaultValue);
Long oldValue = (Long)propertiesMap.put(parameter, newValue);
return notifyParameterListenersIfChanged(parameter, newValue, oldValue);
ClassCastException e;
e;
notifyParameterListeners(parameter);
return true;
}
public boolean setParameter(String parameter, byte defaultValue[])
{
byte oldValue[] = (byte[])(byte[])propertiesMap.put(parameter, defaultValue);
return notifyParameterListenersIfChanged(parameter, defaultValue, oldValue);
ClassCastException e;
e;
notifyParameterListeners(parameter);
return true;
}
public boolean setParameter(String parameter, String defaultValue)
{
return setParameter(parameter, stringToBytes(defaultValue));
}
public boolean hasParameter(String key, boolean explicit)
{
if (propertiesMap.containsKey(key))
return true;
return !explicit && ConfigurationDefaults.getInstance().hasParameter(key);
}
public boolean verifyParameter(String parameter, String value)
{
List verifiers;
verifiers = ConfigurationDefaults.getInstance().getVerifiers(parameter);
if (verifiers == null)
break MISSING_BLOCK_LABEL_84;
int i = 0;
_L1:
org.gudy.azureus2.core3.config.COConfigurationManager.ParameterVerifier verifier;
if (i >= verifiers.size())
break MISSING_BLOCK_LABEL_84;
verifier = (org.gudy.azureus2.core3.config.COConfigurationManager.ParameterVerifier)verifiers.get(i);
if (verifier == null)
break MISSING_BLOCK_LABEL_68;
if (!verifier.verify(parameter, value))
return false;
break MISSING_BLOCK_LABEL_68;
Throwable e;
e;
Debug.printStackTrace(e);
i++;
goto _L1
Throwable e;
e;
Debug.printStackTrace(e);
return true;
}
public boolean setRGBParameter(String parameter, int red, int green, int blue)
{
boolean bAnyChanged = false;
bAnyChanged |= setParameter((new StringBuilder()).append(parameter).append(".red").toString(), red);
bAnyChanged |= setParameter((new StringBuilder()).append(parameter).append(".green").toString(), green);
bAnyChanged |= setParameter((new StringBuilder()).append(parameter).append(".blue").toString(), blue);
if (bAnyChanged)
notifyParameterListeners(parameter);
return bAnyChanged;
}
public boolean setRGBParameter(String parameter, int rgb[], boolean override)
{
boolean changed = false;
if (rgb == null)
{
changed |= removeParameter((new StringBuilder()).append(parameter).append(".override").toString());
changed |= removeParameter((new StringBuilder()).append(parameter).append(".red").toString());
changed |= removeParameter((new StringBuilder()).append(parameter).append(".green").toString());
changed |= removeParameter((new StringBuilder()).append(parameter).append(".blue").toString());
} else
{
changed |= setParameter((new StringBuilder()).append(parameter).append(".override").toString(), override);
changed |= setRGBParameter(parameter, rgb[0], rgb[1], rgb[2]);
}
if (changed)
notifyParameterListeners(parameter);
return changed;
}
public boolean setParameter(String parameter)
throws ConfigurationParameterNotFoundException
{
ConfigurationDefaults def = ConfigurationDefaults.getInstance();
return setParameter(parameter, def.getIntParameter(parameter));
Exception e;
e;
return setParameter(parameter, def.getStringParameter(parameter));
}
public Object getParameter(String name)
{
Object value = propertiesMap.get(name);
if (value == null)
value = ConfigurationDefaults.getInstance().getParameter(name);
return value;
}
public void setParameterRawNoNotify(String parameter, Object value)
{
propertiesMap.put(parameter, value);
}
public void registerTransientParameter(String param)
{
transient_properties.add(param);
}
public boolean removeParameter(String parameter)
{
boolean removed = propertiesMap.remove(parameter) != null;
if (removed)
notifyParameterListeners(parameter);
return removed;
}
public boolean removeRGBParameter(String parameter)
{
boolean bAnyChanged = false;
bAnyChanged |= removeParameter((new StringBuilder()).append(parameter).append(".red").toString());
bAnyChanged |= removeParameter((new StringBuilder()).append(parameter).append(".green").toString());
bAnyChanged |= removeParameter((new StringBuilder()).append(parameter).append(".blue").toString());
bAnyChanged |= removeParameter((new StringBuilder()).append(parameter).append(".override").toString());
if (bAnyChanged)
notifyParameterListeners(parameter);
return bAnyChanged;
}
public boolean doesParameterNonDefaultExist(String parameter)
{
return propertiesMap.containsKey(parameter);
}
private boolean notifyParameterListenersIfChanged(String parameter, Long newValue, Long oldValue)
{
if (oldValue == null || 0 != newValue.compareTo(oldValue))
{
notifyParameterListeners(parameter);
return true;
} else
{
return false;
}
}
private boolean notifyParameterListenersIfChanged(String parameter, byte newValue[], byte oldValue[])
{
if (oldValue == null || !Arrays.equals(newValue, oldValue))
{
notifyParameterListeners(parameter);
return true;
} else
{
return false;
}
}
private void notifyParameterListeners(String parameter)
{
LightHashSet parameterListener = (LightHashSet)parameterListeners.get(parameter);
if (parameterListener == null)
return;
Iterator it = parameterListener.iterator();
do
{
if (!it.hasNext())
break;
ParameterListener listener = (ParameterListener)it.next();
if (listener != null)
try
{
listener.parameterChanged(parameter);
}
catch (Throwable e)
{
Debug.printStackTrace(e);
}
} while (true);
}
public void addParameterListener(String parameter, ParameterListener listener)
{
this_mon.enter();
if (parameter == null || listener == null)
{
this_mon.exit();
return;
}
LightHashSet parameterListener = (LightHashSet)parameterListeners.get(parameter);
if (parameterListener == null)
parameterListeners.put(parameter, parameterListener = new LightHashSet(1));
if (!parameterListener.contains(listener))
parameterListener.add(listener);
this_mon.exit();
break MISSING_BLOCK_LABEL_94;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void removeParameterListener(String parameter, ParameterListener listener)
{
this_mon.enter();
if (parameter == null || listener == null)
{
this_mon.exit();
return;
}
LightHashSet parameterListener = (LightHashSet)parameterListeners.get(parameter);
if (parameterListener != null)
parameterListener.remove(listener);
this_mon.exit();
break MISSING_BLOCK_LABEL_67;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void addListener(COConfigurationListener listener)
{
this_mon.enter();
listeners.add(listener);
this_mon.exit();
break MISSING_BLOCK_LABEL_38;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void removeListener(COConfigurationListener listener)
{
this_mon.enter();
listeners.remove(listener);
this_mon.exit();
break MISSING_BLOCK_LABEL_38;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void generate(IndentWriter writer)
{
writer.println("Configuration Details");
writer.indent();
writer.println("System Properties");
writer.indent();
Properties props = System.getProperties();
String key;
for (Iterator it = (new TreeSet(props.keySet())).iterator(); it.hasNext(); writer.println((new StringBuilder()).append(key).append("=").append(props.get(key)).toString()))
key = (String)it.next();
writer.exdent();
break MISSING_BLOCK_LABEL_111;
Exception exception;
exception;
writer.exdent();
throw exception;
writer.println("Azureus Config");
writer.indent();
Iterator it = (new TreeSet(propertiesMap.keySet())).iterator();
do
{
if (!it.hasNext())
break;
String key = (String)it.next();
if (!key.startsWith("core.crypto."))
{
Object value = propertiesMap.get(key);
boolean bParamExists = ConfigurationDefaults.getInstance().doesParameterDefaultExist(key.toString());
if (!bParamExists)
key = (new StringBuilder()).append("[NoDef] ").append(key).toString();
if (value instanceof Long)
writer.println((new StringBuilder()).append(key).append("=").append(value).toString());
else
if (value instanceof List)
writer.println((new StringBuilder()).append(key).append("=").append(value).append("[list]").toString());
else
if (value instanceof Map)
writer.println((new StringBuilder()).append(key).append("=").append(value).append("[map]").toString());
else
if (value instanceof byte[])
{
byte b[] = (byte[])(byte[])value;
boolean hex = false;
int i = 0;
do
{
if (i >= b.length)
break;
char c = (char)b[i];
if (!Character.isLetterOrDigit(c) && "`\357\277\275\"\357\277\275$%^&*()-_=+[{]};:'@#~,<.>/?'".indexOf(c) == -1)
{
hex = true;
break;
}
i++;
} while (true);
writer.println((new StringBuilder()).append(key).append("=").append(hex ? ByteFormatter.nicePrint(b) : bytesToString((byte[])(byte[])value)).toString());
} else
{
writer.println((new StringBuilder()).append(key).append("=").append(value).append("[unknown]").toString());
}
}
} while (true);
writer.exdent();
break MISSING_BLOCK_LABEL_524;
Exception exception1;
exception1;
writer.exdent();
throw exception1;
writer.exdent();
break MISSING_BLOCK_LABEL_540;
Exception exception2;
exception2;
writer.exdent();
throw exception2;
}
protected static String bytesToString(byte bytes[])
{
return new String(bytes, "UTF8");
Throwable e;
e;
return new String(bytes);
}
protected static byte[] stringToBytes(String str)
{
return str.getBytes("UTF8");
Throwable e;
e;
return str.getBytes();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -