📄 pluginmanagerimpl.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: PluginManagerImpl.java
package org.gudy.azureus2.pluginsimpl.local;
import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import java.util.*;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.*;
import org.gudy.azureus2.plugins.installer.PluginInstaller;
import org.gudy.azureus2.pluginsimpl.local.installer.PluginInstallerImpl;
import org.gudy.azureus2.ui.swt.Main;
// Referenced classes of package org.gudy.azureus2.pluginsimpl.local:
// PluginInitializer, PluginInterfaceImpl
public class PluginManagerImpl extends PluginManager
{
protected static boolean running = false;
private static final boolean GET_PI_METHODS_OPERATIONAL_FLAG_DEFAULT = true;
protected static PluginManagerImpl singleton;
protected static AEMonitor class_mon = new AEMonitor("PluginManager");
protected static AzureusCore azureus_core;
protected PluginInitializer pi;
protected static PluginManagerImpl getSingleton(PluginInitializer pi)
{
PluginManagerImpl pluginmanagerimpl;
class_mon.enter();
if (singleton == null)
singleton = new PluginManagerImpl(pi);
pluginmanagerimpl = singleton;
class_mon.exit();
return pluginmanagerimpl;
Exception exception;
exception;
class_mon.exit();
throw exception;
}
public static PluginManager startAzureus(int ui_type, Properties properties)
{
class_mon.enter();
if (running)
throw new RuntimeException((new StringBuilder()).append(Constants.APP_NAME).append(" is already running").toString());
running = true;
class_mon.exit();
break MISSING_BLOCK_LABEL_63;
Exception exception;
exception;
class_mon.exit();
throw exception;
if (ui_type == 0)
try
{
azureus_core = AzureusCoreFactory.create();
azureus_core.start();
}
catch (Throwable e)
{
Debug.printStackTrace(e);
throw new RuntimeException((new StringBuilder()).append(Constants.APP_NAME).append(" failed to start").toString(), e);
}
else
if (ui_type == 1)
{
if (properties != null)
{
String mi = (String)properties.get("MULTI_INSTANCE");
if (mi != null && mi.equalsIgnoreCase("true"))
System.setProperty("MULTI_INSTANCE", "true");
}
Main.main(new String[0]);
}
if (azureus_core == null)
throw new RuntimeException((new StringBuilder()).append(Constants.APP_NAME).append(" core failed to initialise").toString());
else
return azureus_core.getPluginManager();
}
public static void stopAzureus()
throws PluginException
{
class_mon.enter();
if (!running)
throw new RuntimeException((new StringBuilder()).append(Constants.APP_NAME).append(" is not running").toString());
try
{
azureus_core.requestStop();
}
catch (Throwable e)
{
throw new PluginException((new StringBuilder()).append("PluginManager: ").append(Constants.APP_NAME).append(" close action failed").toString(), e);
}
running = false;
class_mon.exit();
break MISSING_BLOCK_LABEL_110;
Exception exception;
exception;
class_mon.exit();
throw exception;
}
public static void restartAzureus()
throws PluginException
{
if (!running)
throw new RuntimeException((new StringBuilder()).append(Constants.APP_NAME).append(" is not running").toString());
try
{
azureus_core.requestRestart();
}
catch (Throwable e)
{
throw new PluginException((new StringBuilder()).append("PluginManager: ").append(Constants.APP_NAME).append(" restart action failed").toString(), e);
}
running = false;
}
public static void setStartDetails(AzureusCore _core)
{
azureus_core = _core;
running = true;
}
public static void registerPlugin(Class plugin_class)
{
PluginInitializer.queueRegistration(plugin_class);
}
public static void registerPlugin(Plugin plugin, String id)
{
PluginInitializer.queueRegistration(plugin, id);
}
public PluginInterface getPluginInterfaceByID(String id)
{
return getPluginInterfaceByID(id, true);
}
public PluginInterface getPluginInterfaceByID(String id, boolean operational)
{
PluginInterface p[] = getPluginInterfaces();
for (int i = 0; i < p.length; i++)
if (p[i].getPluginID().equalsIgnoreCase(id))
if (operational && !p[i].getPluginState().isOperational())
return null;
else
return p[i];
return null;
}
public PluginInterface getPluginInterfaceByClass(Class c)
{
return getPluginInterfaceByClass(c, true);
}
public PluginInterface getPluginInterfaceByClass(Class c, boolean operational)
{
PluginInterface p[] = getPluginInterfaces();
for (int i = 0; i < p.length; i++)
if (p[i].getPlugin().getClass().equals(c))
if (operational && !p[i].getPluginState().isOperational())
return null;
else
return p[i];
return null;
}
public PluginInterface getPluginInterfaceByClass(String class_name)
{
return getPluginInterfaceByClass(class_name, true);
}
public PluginInterface getPluginInterfaceByClass(String class_name, boolean operational)
{
PluginInterface p[] = getPluginInterfaces();
for (int i = 0; i < p.length; i++)
if (p[i].getPlugin().getClass().getName().equals(class_name))
if (operational && !p[i].getPluginState().isOperational())
return null;
else
return p[i];
return null;
}
public PluginInterface[] getPluginInterfaces()
{
List l = PluginInitializer.getPluginInterfaces();
PluginInterface res[] = new PluginInterface[l.size()];
l.toArray(res);
return res;
}
public PluginInterface getDefaultPluginInterface()
{
return PluginInitializer.getDefaultInterface();
}
protected PluginManagerImpl(PluginInitializer _pi)
{
pi = _pi;
getPluginInstaller();
}
public PluginInterface[] getPlugins()
{
return pi.getPlugins();
}
public void firePluginEvent(int ev)
{
PluginInitializer.fireEvent(ev);
}
public PluginInstaller getPluginInstaller()
{
return PluginInstallerImpl.getSingleton(this);
}
public void refreshPluginList(boolean initialise)
{
List loadedPlugins = pi.loadPlugins(pi.getAzureusCore(), true, true, false, initialise);
Iterator iter = loadedPlugins.iterator();
do
{
if (!iter.hasNext())
break;
PluginInterfaceImpl plugin = (PluginInterfaceImpl)iter.next();
if (!plugin.getPluginState().isOperational())
try
{
pi.reloadPlugin(plugin, false, initialise);
}
catch (PluginException e)
{
Debug.printStackTrace(e);
}
} while (true);
}
public boolean isSilentRestartEnabled()
{
PluginInterface pis[] = pi.getPlugins();
for (int i = 0; i < pis.length; i++)
if (pis[i].getPluginProperties().getProperty("plugin.silentrestart.disabled", "").equalsIgnoreCase("true"))
return false;
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -