⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pluginmanagerimpl.java

📁 java 文件下载器。可自定义
💻 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 + -