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

📄 pluginconfigsourceimpl.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:   PluginConfigSourceImpl.java

package org.gudy.azureus2.pluginsimpl.local.config;

import java.io.File;
import java.util.*;
import org.gudy.azureus2.core3.config.*;
import org.gudy.azureus2.core3.config.impl.ConfigurationManager;
import org.gudy.azureus2.core3.util.FileUtil;
import org.gudy.azureus2.core3.util.LightHashSet;
import org.gudy.azureus2.plugins.PluginConfig;
import org.gudy.azureus2.plugins.config.PluginConfigSource;

public class PluginConfigSourceImpl
	implements COConfigurationListener, ParameterListener, PluginConfigSource
{

	private PluginConfig plugin_config;
	private File source_file;
	private boolean initialised;
	private Map data_map;
	private String key_prefix;
	private boolean dirty;
	private boolean migrate_settings;
	private LightHashSet params_monitored;

	public PluginConfigSourceImpl(PluginConfig plugin_config, String plugin_id)
	{
		key_prefix = null;
		dirty = false;
		migrate_settings = false;
		this.plugin_config = plugin_config;
		key_prefix = null;
		initialised = false;
		params_monitored = new LightHashSet();
		setConfigFilename((new StringBuilder()).append(plugin_id).append(".config").toString());
	}

	public void initialize()
	{
		shouldBeInitialised(false);
		initialised = true;
		data_map = FileUtil.readResilientFile(source_file.getParentFile(), source_file.getName(), true);
		key_prefix = plugin_config.getPluginConfigKeyPrefix();
		Iterator itr = data_map.entrySet().iterator();
		ConfigurationManager config = ConfigurationManager.getInstance();
		String key;
		for (; itr.hasNext(); config.addParameterListener(key, this))
		{
			java.util.Map.Entry entry = (java.util.Map.Entry)itr.next();
			key = (new StringBuilder()).append(key_prefix).append((String)entry.getKey()).toString();
			params_monitored.add(key);
			config.registerTransientParameter(key);
			config.setParameterRawNoNotify(key, entry.getValue());
		}

		config.addListener(this);
	}

	public File getConfigFile()
	{
		return source_file;
	}

	public void setConfigFilename(String filename)
	{
		shouldBeInitialised(false);
		source_file = plugin_config.getPluginUserFile(FileUtil.convertOSSpecificChars(filename, false));
	}

	public void save(boolean force)
	{
		shouldBeInitialised(true);
		if (!force && !dirty)
		{
			return;
		} else
		{
			FileUtil.writeResilientFile(source_file.getParentFile(), source_file.getName(), data_map, true);
			dirty = false;
			return;
		}
	}

	public void configurationSaved()
	{
		save(false);
	}

	public void parameterChanged(String full_param)
	{
		shouldBeInitialised(true);
		String plugin_param = toPluginName(full_param);
		if (COConfigurationManager.hasParameter(full_param, true))
		{
			Object val = ConfigurationManager.getInstance().getParameter(full_param);
			data_map.put(plugin_param, val);
		} else
		{
			data_map.remove(plugin_param);
		}
		dirty = true;
	}

	public void registerParameter(String full_param)
	{
		shouldBeInitialised(true);
		if (!params_monitored.add(full_param))
			return;
		ConfigurationManager config = ConfigurationManager.getInstance();
		config.registerTransientParameter(full_param);
		config.addParameterListener(full_param, this);
		if (migrate_settings && COConfigurationManager.hasParameter(full_param, true))
			parameterChanged(full_param);
	}

	public String getUsedKeyPrefix()
	{
		return key_prefix;
	}

	private String toPluginName(String name)
	{
		if (!name.startsWith(key_prefix))
			throw new RuntimeException((new StringBuilder()).append("mismatch key prefix: ").append(name).append(", ").append(key_prefix).toString());
		else
			return name.substring(key_prefix.length());
	}

	private void shouldBeInitialised(boolean yes)
	{
		if (yes && !initialised)
			throw new RuntimeException("source not yet initialised");
		if (!yes && initialised)
			throw new RuntimeException("source already initialised");
		else
			return;
	}

	public void forceSettingsMigration()
	{
		shouldBeInitialised(false);
		migrate_settings = true;
	}
}

⌨️ 快捷键说明

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