📄 plugininterfaceimpl.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: PluginInterfaceImpl.java
package org.gudy.azureus2.pluginsimpl.local;
import com.aelitis.azureus.core.AzureusCoreComponent;
import com.aelitis.azureus.core.util.CopyOnWriteList;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import org.gudy.azureus2.core3.logging.LogEvent;
import org.gudy.azureus2.core3.logging.LogIDs;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.core3.util.DelayedEvent;
import org.gudy.azureus2.core3.util.FileUtil;
import org.gudy.azureus2.core3.util.IndentWriter;
import org.gudy.azureus2.platform.PlatformManagerFactory;
import org.gudy.azureus2.plugins.Plugin;
import org.gudy.azureus2.plugins.PluginConfig;
import org.gudy.azureus2.plugins.PluginEvent;
import org.gudy.azureus2.plugins.PluginEventListener;
import org.gudy.azureus2.plugins.PluginException;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.PluginListener;
import org.gudy.azureus2.plugins.PluginManager;
import org.gudy.azureus2.plugins.PluginState;
import org.gudy.azureus2.plugins.PluginView;
import org.gudy.azureus2.plugins.clientid.ClientIDManager;
import org.gudy.azureus2.plugins.ddb.DistributedDatabase;
import org.gudy.azureus2.plugins.dht.mainline.MainlineDHTManager;
import org.gudy.azureus2.plugins.download.DownloadException;
import org.gudy.azureus2.plugins.download.DownloadManager;
import org.gudy.azureus2.plugins.ipc.IPCInterface;
import org.gudy.azureus2.plugins.ipfilter.IPFilter;
import org.gudy.azureus2.plugins.logging.Logger;
import org.gudy.azureus2.plugins.messaging.MessageManager;
import org.gudy.azureus2.plugins.network.ConnectionManager;
import org.gudy.azureus2.plugins.platform.PlatformManager;
import org.gudy.azureus2.plugins.sharing.ShareException;
import org.gudy.azureus2.plugins.sharing.ShareManager;
import org.gudy.azureus2.plugins.torrent.TorrentManager;
import org.gudy.azureus2.plugins.tracker.Tracker;
import org.gudy.azureus2.plugins.ui.SWT.SWTManager;
import org.gudy.azureus2.plugins.ui.UIManager;
import org.gudy.azureus2.plugins.ui.config.ConfigSection;
import org.gudy.azureus2.plugins.ui.config.Parameter;
import org.gudy.azureus2.plugins.ui.config.PluginConfigUIFactory;
import org.gudy.azureus2.plugins.update.UpdateManager;
import org.gudy.azureus2.plugins.utils.ShortCuts;
import org.gudy.azureus2.plugins.utils.Utilities;
import org.gudy.azureus2.pluginsimpl.local.clientid.ClientIDManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.ddb.DDBaseImpl;
import org.gudy.azureus2.pluginsimpl.local.deprecate.PluginDeprecation;
import org.gudy.azureus2.pluginsimpl.local.dht.mainline.MainlineDHTManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.download.DownloadManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.ipc.IPCInterfaceImpl;
import org.gudy.azureus2.pluginsimpl.local.ipfilter.IPFilterImpl;
import org.gudy.azureus2.pluginsimpl.local.logging.LoggerImpl;
import org.gudy.azureus2.pluginsimpl.local.messaging.MessageManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.network.ConnectionManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.sharing.ShareManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.torrent.TorrentManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.tracker.TrackerImpl;
import org.gudy.azureus2.pluginsimpl.local.ui.UIManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.ui.config.ConfigSectionRepository;
import org.gudy.azureus2.pluginsimpl.local.ui.config.ParameterRepository;
import org.gudy.azureus2.pluginsimpl.local.ui.config.PluginConfigUIFactoryImpl;
import org.gudy.azureus2.pluginsimpl.local.update.UpdateManagerImpl;
import org.gudy.azureus2.pluginsimpl.local.utils.ShortCutsImpl;
import org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl;
// Referenced classes of package org.gudy.azureus2.pluginsimpl.local:
// PluginConfigImpl, PluginInitializer, PluginStateImpl
public class PluginInterfaceImpl
implements PluginInterface, AzureusCoreComponent
{
protected class propertyWrapper extends Properties
{
protected boolean initialising;
final PluginInterfaceImpl this$0;
public Object setProperty(String str, String val)
{
if (!plugin.getClass().getName().startsWith("org.gudy") && !plugin.getClass().getName().startsWith("com.aelitis.") && (str.equalsIgnoreCase("plugin.id") || str.equalsIgnoreCase("plugin.version")))
{
if (org.gudy.azureus2.core3.logging.Logger.isEnabled())
org.gudy.azureus2.core3.logging.Logger.log(new LogEvent(PluginInterfaceImpl.LOGID, 1, (new StringBuilder()).append("Plugin '").append(getPluginName()).append("' tried to set property '").append(str).append("' - action ignored").toString()));
return null;
} else
{
return super.setProperty(str, val);
}
}
public Object put(Object key, Object value)
{
if (!plugin.getClass().getName().startsWith("org.gudy") && !plugin.getClass().getName().startsWith("com.aelitis.") && !initialising && (key instanceof String))
{
String k_str = (String)key;
if (k_str.equalsIgnoreCase("plugin.id") || k_str.equalsIgnoreCase("plugin.version"))
{
if (org.gudy.azureus2.core3.logging.Logger.isEnabled())
org.gudy.azureus2.core3.logging.Logger.log(new LogEvent(PluginInterfaceImpl.LOGID, 1, (new StringBuilder()).append("Plugin '").append(getPluginName()).append("' tried to set property '").append(k_str).append("' - action ignored").toString()));
return null;
}
}
return super.put(key, value);
}
public Object get(Object key)
{
return super.get(key);
}
protected propertyWrapper(Properties _props)
{
this$0 = PluginInterfaceImpl.this;
super();
initialising = true;
Object key;
for (Iterator it = _props.keySet().iterator(); it.hasNext(); put(key, _props.get(key)))
key = it.next();
initialising = false;
}
}
private static final LogIDs LOGID;
private Plugin plugin;
private PluginInitializer initialiser;
private Object initialiser_key;
protected ClassLoader class_loader;
private CopyOnWriteList listeners;
private Set init_complete_fired_set;
private CopyOnWriteList event_listeners;
private String key;
private String pluginConfigKey;
private Properties props;
private String pluginDir;
private PluginConfigImpl config;
private String plugin_version;
private Logger logger;
private IPCInterfaceImpl ipc_interface;
protected List children;
private List configSections;
private PluginStateImpl state;
private String given_plugin_id;
private String plugin_id_to_use;
public PluginInterfaceImpl(Plugin _plugin, PluginInitializer _initialiser, Object _initialiser_key, ClassLoader _class_loader, String _key, Properties _props, String _pluginDir,
String _plugin_id, String _plugin_version)
{
listeners = new CopyOnWriteList();
init_complete_fired_set = new HashSet();
event_listeners = new CopyOnWriteList();
children = new ArrayList();
configSections = new ArrayList();
plugin = _plugin;
initialiser = _initialiser;
initialiser_key = _initialiser_key;
class_loader = _class_loader;
key = _key;
pluginConfigKey = (new StringBuilder()).append("Plugin.").append(_key).toString();
props = new propertyWrapper(_props);
pluginDir = _pluginDir;
config = new PluginConfigImpl(this, pluginConfigKey);
given_plugin_id = _plugin_id;
plugin_version = _plugin_version;
ipc_interface = new IPCInterfaceImpl(initialiser, plugin);
state = new PluginStateImpl(this, initialiser);
}
public Plugin getPlugin()
{
return plugin;
}
public boolean isOperational()
{
PluginDeprecation.call("isOperational", given_plugin_id);
return getPluginState().isOperational();
}
public Object getInitializerKey()
{
return initialiser_key;
}
public PluginManager getPluginManager()
{
return initialiser.getPluginManager();
}
public String getApplicationName()
{
return Constants.APP_NAME;
}
public String getAzureusName()
{
return "Azureus";
}
public String getAzureusVersion()
{
return "4.2.0.0";
}
/**
* @deprecated Method addView is deprecated
*/
public void addView(PluginView view)
{
getUIManager().getSWTManager().addView(view);
}
public void addConfigSection(ConfigSection section)
{
ConfigSectionRepository.getInstance().addConfigSection(section);
configSections.add(section);
}
public void removeConfigSection(ConfigSection section)
{
ConfigSectionRepository.getInstance().removeConfigSection(section);
configSections.remove(section);
}
public ConfigSection[] getConfigSections()
{
return (ConfigSection[])(ConfigSection[])configSections.toArray(new ConfigSection[0]);
}
/**
* @deprecated Method openTorrentFile is deprecated
*/
public void openTorrentFile(String fileName)
{
PluginDeprecation.call("openTorrentFile", getPluginID());
try
{
getDownloadManager().addDownload(new File(fileName));
}
catch (DownloadException e)
{
throw new RuntimeException(e);
}
}
/**
* @deprecated Method openTorrentURL is deprecated
*/
public void openTorrentURL(String url)
{
PluginDeprecation.call("openTorrentURL", getPluginID());
try
{
getDownloadManager().addDownload(new URL(url));
}
catch (Throwable e)
{
throw new RuntimeException(e);
}
}
public void setPluginName(String name)
{
props.put("plugin.name", name);
}
public String getPluginName()
{
String name = null;
if (props != null)
name = (String)props.get("plugin.name");
if (name == null)
try
{
name = (new File(pluginDir)).getName();
}
catch (Throwable e) { }
if (name == null || name.length() == 0)
name = plugin.getClass().getName();
return name;
}
public void setPluginVersion(String version)
{
props.put("plugin.version", version);
}
public String getPluginVersion()
{
String version = (String)props.get("plugin.version");
if (version == null)
version = plugin_version;
return version;
}
public String getPluginID()
{
String id = (String)props.get("plugin.id");
if (id != null && id.equals("azupdater"))
plugin_id_to_use = id;
if (plugin_id_to_use != null)
return plugin_id_to_use;
if (id == null)
id = given_plugin_id;
if (id == null)
id = "<none>";
plugin_id_to_use = id;
return plugin_id_to_use;
}
public boolean isMandatory()
{
PluginDeprecation.call("isMandatory", given_plugin_id);
return getPluginState().isMandatory();
}
public boolean isBuiltIn()
{
PluginDeprecation.call("isBuiltIn", given_plugin_id);
return getPluginState().isBuiltIn();
}
public Properties getPluginProperties()
{
return props;
}
public String getPluginDirectoryName()
{
return pluginDir;
}
public void setPluginDirectoryName(String name)
{
initialiser_key = new File(name);
pluginDir = name;
}
public void addConfigUIParameters(Parameter parameters[], String displayName)
{
ParameterRepository.getInstance().addPlugin(parameters, displayName);
}
public PluginConfig getPluginconfig()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -