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

📄 set.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:   Set.java

package org.gudy.azureus2.ui.console.commands;

import java.io.PrintStream;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.SHA1Hasher;
import org.gudy.azureus2.ui.common.ExternalUIConst;
import org.gudy.azureus2.ui.console.ConsoleInput;
import org.pf.text.StringPattern;

// Referenced classes of package org.gudy.azureus2.ui.console.commands:
//			IConsoleCommand

public class Set extends IConsoleCommand
{
	private static class Parameter
	{

		private static final int PARAM_INT = 1;
		private static final int PARAM_BOOLEAN = 2;
		private static final int PARAM_STRING = 4;
		private static final int PARAM_OTHER = 8;
		private int type;
		private String iname;
		private String ename;
		private Object value;
		private boolean isSet;
		private Object def;

		public static Parameter get(String internal_name, String external_name)
		{
			int nextchar;
			int underscoreIndex = external_name.indexOf('_');
			nextchar = external_name.charAt(underscoreIndex + 1);
			if (internal_name == external_name || "ibs".indexOf(nextchar) < 0)
				break MISSING_BLOCK_LABEL_164;
			int value;
			if (nextchar != 105)
				break MISSING_BLOCK_LABEL_76;
			value = COConfigurationManager.getIntParameter(internal_name, 0x80000000);
			return new Parameter(internal_name, external_name, value != 0x80000000 ? new Integer(value) : (Integer)null);
			boolean b;
			if (nextchar != 98)
				break MISSING_BLOCK_LABEL_128;
			if (COConfigurationManager.getIntParameter(internal_name, 0x80000000) == 0x80000000)
				break MISSING_BLOCK_LABEL_114;
			b = COConfigurationManager.getBooleanParameter(internal_name);
			return new Parameter(internal_name, external_name, Boolean.valueOf(b));
			return new Parameter(internal_name, external_name, (Boolean)null);
			String value = COConfigurationManager.getStringParameter(internal_name, "__NULL__");
			return new Parameter(internal_name, external_name, "__NULL__".equals(value) ? null : value);
			Throwable e;
			e;
			Object v = COConfigurationManager.getParameter(internal_name);
			int value;
			if (!(v instanceof Long) && !(v instanceof Integer))
				break MISSING_BLOCK_LABEL_227;
			value = COConfigurationManager.getIntParameter(internal_name, 0x80000000);
			return new Parameter(internal_name, external_name, value != 0x80000000 ? new Integer(value) : (Integer)null);
			if (!(v instanceof Boolean))
				break MISSING_BLOCK_LABEL_256;
			value = COConfigurationManager.getBooleanParameter(internal_name);
			return new Parameter(internal_name, external_name, Boolean.valueOf(value));
			String value;
			if (!(v instanceof String) && !(v instanceof byte[]))
				break MISSING_BLOCK_LABEL_304;
			value = COConfigurationManager.getStringParameter(internal_name);
			return new Parameter(internal_name, external_name, "__NULL__".equals(value) ? null : value);
			return new Parameter(internal_name, external_name, v, 8);
			Throwable e2;
			e2;
			return new Parameter(internal_name, external_name, v, 8);
		}

		public String getType()
		{
			switch (type)
			{
			case 2: // '\002'
				return "bool";

			case 1: // '\001'
				return "int";

			case 4: // '\004'
				return "string";

			case 3: // '\003'
			default:
				return "unknown";
			}
		}

		public boolean isDefault()
		{
			return !isSet;
		}

		public String getString(boolean set_format)
		{
			if (isSet)
				if (set_format)
					return (new StringBuilder()).append("set ").append(quoteIfNeeded(ename)).append(" ").append(quoteIfNeeded(value.toString())).append(" ").append(getType()).toString();
				else
					return (new StringBuilder()).append("> ").append(ename).append(": ").append(value).append(" [").append(getType()).append("]").toString();
			if (def == null)
				return (new StringBuilder()).append("> ").append(ename).append(" is not set. [").append(getType()).append("]").toString();
			else
				return (new StringBuilder()).append("> ").append(ename).append(" is not set. [").append(getType()).append(", default: ").append(def).append("]").toString();
		}

		protected String quoteIfNeeded(String str)
		{
			if (str.indexOf(' ') == -1)
				return str;
			else
				return (new StringBuilder()).append("\"").append(str).append("\"").toString();
		}

		public Parameter(String iname, String ename, Boolean val)
		{
			this(iname, ename, val, 2);
		}

		public Parameter(String iname, String ename, Integer val)
		{
			this(iname, ename, val, 1);
		}

		public Parameter(String iname, String ename, String val)
		{
			this(iname, ename, val, 4);
		}

		private Parameter(String _iname, String _ename, Object _val, int _type)
		{
			type = _type;
			iname = _iname;
			ename = _ename;
			value = _val;
			isSet = value != null;
			if (!isSet)
			{
				def = COConfigurationManager.getDefault(iname);
				if (def != null && (def instanceof Long))
					type = 1;
			}
		}
	}


	private static final String NULL_STRING = "__NULL__";

	public Set()
	{
		super("set", "+");
	}

	public String getCommandDescriptions()
	{
		return "set [options] [parameter] [value]\t\t+\tSet a configuration parameter. The whitespaceless notation has to be used. If value is omitted, the current setting is shown. Parameter may be a wildcard to narrow results";
	}

	public void printHelpExtra(PrintStream out, List args)
	{
		out.println("> -----");
		out.println("'set' options: ");
		out.println("\t-export\t\tPrints all the options with non-defaut values.");
	}

	public void execute(String commandName, ConsoleInput ci, List args)
	{
		boolean non_defaults = false;
		Iterator it = args.iterator();
		do
		{
			if (!it.hasNext())
				break;
			String arg = (String)it.next();
			if (arg.equals("-export"))
			{
				non_defaults = true;
				it.remove();
			}
		} while (true);
		if (args.isEmpty())
		{
			displayOptions(ci.out, new StringPattern("*"), non_defaults);
			return;
		}
		String external_name = (String)args.get(0);
		String internal_name = (String)ExternalUIConst.parameterlegacy.get(external_name);
		if (internal_name == null || internal_name.length() == 0)
			internal_name = external_name;
		switch (args.size())
		{
		case 1: // '\001'
			StringPattern sp = new StringPattern(internal_name);
			if (sp.hasWildcard())
			{
				displayOptions(ci.out, sp, non_defaults);
			} else
			{
				if (!COConfigurationManager.doesParameterDefaultExist(internal_name))
				{
					ci.out.println((new StringBuilder()).append("> Command 'set': Parameter '").append(external_name).append("' unknown.").toString());
					return;
				}
				Parameter param = Parameter.get(internal_name, external_name);
				ci.out.println(param.getString(false));
			}
			break;

		case 2: // '\002'
		case 3: // '\003'
			String setto = (String)args.get(1);
			String type;
			if (args.size() == 2)
			{
				Parameter param = Parameter.get(internal_name, external_name);
				type = param.getType();
			} else
			{
				type = (String)args.get(2);
			}
			boolean success = false;
			if (type.equalsIgnoreCase("int") || type.equalsIgnoreCase("integer"))
			{
				COConfigurationManager.setParameter(internal_name, Integer.parseInt(setto));
				success = true;
			} else
			if (type.equalsIgnoreCase("bool") || type.equalsIgnoreCase("boolean"))
			{
				boolean value;
				if (setto.equalsIgnoreCase("true") || setto.equalsIgnoreCase("y") || setto.equals("1"))
					value = true;
				else
					value = false;
				COConfigurationManager.setParameter(internal_name, value);
				success = true;
			} else
			if (type.equalsIgnoreCase("float"))
			{
				COConfigurationManager.setParameter(internal_name, Float.parseFloat(setto));
				success = true;
			} else
			if (type.equalsIgnoreCase("string"))
			{
				COConfigurationManager.setParameter(internal_name, setto);
				success = true;
			} else
			if (type.equalsIgnoreCase("password"))
			{
				SHA1Hasher hasher = new SHA1Hasher();
				byte password[] = setto.getBytes();
				byte encoded[];
				if (password.length > 0)
					encoded = hasher.calculateHash(password);
				else
					encoded = password;
				COConfigurationManager.setParameter(internal_name, encoded);
				success = true;
			}
			if (success)
			{
				COConfigurationManager.save();
				ci.out.println((new StringBuilder()).append("> Parameter '").append(external_name).append("' set to '").append(setto).append("'. [").append(type).append("]").toString());
			} else
			{
				ci.out.println("ERROR: invalid type given");
			}
			break;

		default:
			ci.out.println("Usage: 'set \"parameter\" value type', where type = int, bool, float, string, password");
			break;
		}
	}

	private void displayOptions(PrintStream out, StringPattern sp, boolean non_defaults)
	{
		sp.setIgnoreCase(true);
		Iterator I = non_defaults ? COConfigurationManager.getDefinedParameters().iterator() : COConfigurationManager.getAllowedParameters().iterator();
		Map backmap = new HashMap();
		java.util.Map.Entry entry;
		for (Iterator iter = ExternalUIConst.parameterlegacy.entrySet().iterator(); iter.hasNext(); backmap.put(entry.getValue(), entry.getKey()))
			entry = (java.util.Map.Entry)iter.next();

		TreeSet srt = new TreeSet();
		do
		{
			if (!I.hasNext())
				break;
			String internal_name = (String)I.next();
			String external_name = (String)backmap.get(internal_name);
			if (external_name == null)
				external_name = internal_name;
			if (sp.matches(external_name))
			{
				Parameter param = Parameter.get(internal_name, external_name);
				if (non_defaults)
				{
					if (!param.isDefault())
						srt.add(param.getString(true));
				} else
				{
					srt.add(param.getString(false));
				}
			}
		} while (true);
		for (I = srt.iterator(); I.hasNext(); out.println((String)I.next()));
	}
}

⌨️ 快捷键说明

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