📄 pluginconfigsourceimpl.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: PluginConfigSourceImpl.java
package org.gudy.azureus2.pluginsimpl.local.config;
import java.io.File;
import java.util.*;
import org.gudy.azureus2.core3.config.*;
import org.gudy.azureus2.core3.config.impl.ConfigurationManager;
import org.gudy.azureus2.core3.util.FileUtil;
import org.gudy.azureus2.core3.util.LightHashSet;
import org.gudy.azureus2.plugins.PluginConfig;
import org.gudy.azureus2.plugins.config.PluginConfigSource;
public class PluginConfigSourceImpl
implements COConfigurationListener, ParameterListener, PluginConfigSource
{
private PluginConfig plugin_config;
private File source_file;
private boolean initialised;
private Map data_map;
private String key_prefix;
private boolean dirty;
private boolean migrate_settings;
private LightHashSet params_monitored;
public PluginConfigSourceImpl(PluginConfig plugin_config, String plugin_id)
{
key_prefix = null;
dirty = false;
migrate_settings = false;
this.plugin_config = plugin_config;
key_prefix = null;
initialised = false;
params_monitored = new LightHashSet();
setConfigFilename((new StringBuilder()).append(plugin_id).append(".config").toString());
}
public void initialize()
{
shouldBeInitialised(false);
initialised = true;
data_map = FileUtil.readResilientFile(source_file.getParentFile(), source_file.getName(), true);
key_prefix = plugin_config.getPluginConfigKeyPrefix();
Iterator itr = data_map.entrySet().iterator();
ConfigurationManager config = ConfigurationManager.getInstance();
String key;
for (; itr.hasNext(); config.addParameterListener(key, this))
{
java.util.Map.Entry entry = (java.util.Map.Entry)itr.next();
key = (new StringBuilder()).append(key_prefix).append((String)entry.getKey()).toString();
params_monitored.add(key);
config.registerTransientParameter(key);
config.setParameterRawNoNotify(key, entry.getValue());
}
config.addListener(this);
}
public File getConfigFile()
{
return source_file;
}
public void setConfigFilename(String filename)
{
shouldBeInitialised(false);
source_file = plugin_config.getPluginUserFile(FileUtil.convertOSSpecificChars(filename, false));
}
public void save(boolean force)
{
shouldBeInitialised(true);
if (!force && !dirty)
{
return;
} else
{
FileUtil.writeResilientFile(source_file.getParentFile(), source_file.getName(), data_map, true);
dirty = false;
return;
}
}
public void configurationSaved()
{
save(false);
}
public void parameterChanged(String full_param)
{
shouldBeInitialised(true);
String plugin_param = toPluginName(full_param);
if (COConfigurationManager.hasParameter(full_param, true))
{
Object val = ConfigurationManager.getInstance().getParameter(full_param);
data_map.put(plugin_param, val);
} else
{
data_map.remove(plugin_param);
}
dirty = true;
}
public void registerParameter(String full_param)
{
shouldBeInitialised(true);
if (!params_monitored.add(full_param))
return;
ConfigurationManager config = ConfigurationManager.getInstance();
config.registerTransientParameter(full_param);
config.addParameterListener(full_param, this);
if (migrate_settings && COConfigurationManager.hasParameter(full_param, true))
parameterChanged(full_param);
}
public String getUsedKeyPrefix()
{
return key_prefix;
}
private String toPluginName(String name)
{
if (!name.startsWith(key_prefix))
throw new RuntimeException((new StringBuilder()).append("mismatch key prefix: ").append(name).append(", ").append(key_prefix).toString());
else
return name.substring(key_prefix.length());
}
private void shouldBeInitialised(boolean yes)
{
if (yes && !initialised)
throw new RuntimeException("source not yet initialised");
if (!yes && initialised)
throw new RuntimeException("source already initialised");
else
return;
}
public void forceSettingsMigration()
{
shouldBeInitialised(false);
migrate_settings = true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -