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

📄 pluginstateimpl.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:   PluginStateImpl.java

package org.gudy.azureus2.pluginsimpl.local;

import java.io.File;
import java.util.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.FileUtil;
import org.gudy.azureus2.plugins.*;
import org.gudy.azureus2.pluginsimpl.local.installer.PluginInstallerImpl;
import org.gudy.azureus2.update.UpdaterUtils;

// Referenced classes of package org.gudy.azureus2.pluginsimpl.local:
//			PluginInitializer, PluginInterfaceImpl

public class PluginStateImpl
	implements PluginState
{

	private PluginInterfaceImpl pi;
	private PluginInitializer initialiser;
	private boolean disabled;
	boolean operational;
	boolean failed;

	public PluginStateImpl(PluginInterfaceImpl pi, PluginInitializer initialiser)
	{
		this.pi = pi;
		this.initialiser = initialiser;
	}

	public void setLoadedAtStartup(boolean load_at_startup)
	{
		String param_name = (new StringBuilder()).append("PluginInfo.").append(pi.getPluginID()).append(".enabled").toString();
		COConfigurationManager.setParameter(param_name, load_at_startup);
	}

	public boolean isLoadedAtStartup()
	{
		String param_name = (new StringBuilder()).append("PluginInfo.").append(pi.getPluginID()).append(".enabled").toString();
		if (!COConfigurationManager.hasParameter(param_name, false))
			return true;
		else
			return COConfigurationManager.getBooleanParameter(param_name);
	}

	public boolean hasFailed()
	{
		return failed;
	}

	public void setDisabled(boolean _disabled)
	{
		disabled = _disabled;
	}

	public boolean isDisabled()
	{
		return disabled;
	}

	public boolean isBuiltIn()
	{
		String dir = pi.getPluginDirectoryName();
		if (dir == null)
			return PluginInitializer.isLoadingBuiltin();
		else
			return dir.length() == 0 || pi.getPluginID().equals(UpdaterUtils.AZUPDATER_PLUGIN_ID) || pi.getPluginID().equals(UpdaterUtils.AZUPDATERPATCHER_PLUGIN_ID);
	}

	public boolean isMandatory()
	{
		if (pi.getPluginID().equals(UpdaterUtils.AZUPDATER_PLUGIN_ID) || pi.getPluginID().equals(UpdaterUtils.AZUPDATERPATCHER_PLUGIN_ID))
		{
			return true;
		} else
		{
			String mand = pi.getPluginProperties().getProperty("plugin.mandatory");
			return mand != null && mand.trim().toLowerCase().equals("true");
		}
	}

	void setOperational(boolean b, boolean reloading)
	{
		operational = b;
		if (!reloading)
			initialiser.fireOperational(pi, operational);
	}

	public boolean isOperational()
	{
		return operational;
	}

	public boolean isShared()
	{
		String shared_dir = FileUtil.getApplicationFile("plugins").toString();
		String plugin_dir = pi.getPluginDirectoryName();
		return plugin_dir.startsWith(shared_dir);
	}

	public void reload()
		throws PluginException
	{
		if (isUnloadable() || isOperational())
			unload(true);
		initialiser.reloadPlugin(pi);
	}

	public void uninstall()
		throws PluginException
	{
		PluginInstallerImpl.getSingleton(pi.getPluginManager()).uninstall(pi);
	}

	public void unload()
		throws PluginException
	{
		unload(false);
	}

	protected void unload(boolean for_reload)
		throws PluginException
	{
		if (!isUnloadable())
			throw new PluginException("Plugin isn't unloadable");
		String dir = this.pi.getPluginDirectoryName();
		if (dir == null || dir.length() == 0)
		{
			((UnloadablePlugin)this.pi.getPlugin()).unload();
			initialiser.unloadPlugin(this.pi);
		} else
		{
			List pis = new ArrayList(PluginInitializer.getPluginInterfaces());
			for (int i = 0; i < pis.size(); i++)
			{
				PluginInterfaceImpl pi = (PluginInterfaceImpl)pis.get(i);
				String other_dir = pi.getPluginDirectoryName();
				if (other_dir != null && other_dir.length() != 0 && dir.equals(other_dir))
				{
					((UnloadablePlugin)pi.getPlugin()).unload();
					initialiser.unloadPlugin(pi);
				}
			}

		}
		for (int i = 0; i < this.pi.children.size(); i++)
			((PluginStateImpl)((PluginInterface)this.pi.children.get(i)).getPluginState()).unload(for_reload);

		setOperational(false, for_reload);
		this.pi.class_loader = null;
	}

	public boolean isUnloadable()
	{
		String dir = this.pi.getPluginDirectoryName();
		boolean disable_unload = this.pi.getPluginProperties().getProperty("plugin.unload.disabled", "").equalsIgnoreCase("true");
		if (disable_unload)
			return false;
		if (dir == null || dir.length() == 0)
			return this.pi.getPlugin() instanceof UnloadablePlugin;
		List pis = PluginInitializer.getPluginInterfaces();
		for (int i = 0; i < pis.size(); i++)
		{
			PluginInterface pi = (PluginInterface)pis.get(i);
			String other_dir = pi.getPluginDirectoryName();
			if (other_dir != null && other_dir.length() != 0 && dir.equals(other_dir) && !(pi.getPlugin() instanceof UnloadablePlugin))
				return false;
		}

		for (int i = 0; i < this.pi.children.size(); i++)
			if (!((PluginInterface)this.pi.children.get(i)).getPluginState().isUnloadable())
				return false;

		return true;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -