📄 pluginstateimpl.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 + -