📄 commandoption.java
字号:
} argi = newArgi; } return args.length; } public void printUsage (boolean printLongDoc) { // xxx Fix this to have nicer formatting later. System.err.println (summary); for (int i = 0; i < options.size(); i++) { CommandOption o = (CommandOption) options.get(i); System.err.println ("--"+ o.name + " " + o.argName + "\n " + o.shortdoc); if (o.longdoc != null && printLongDoc) System.err.println (" "+o.longdoc); System.err.println (" Default is "+o.defaultValueToString()); } } public void logOptions (java.util.logging.Logger logger) { for (int i = 0; i < options.size(); i++) { CommandOption o = (CommandOption) options.get(i); logger.info (o.name+" = "+o.valueToString ()); } } } public static class Boolean extends CommandOption { public boolean value, defaultValue;; public Boolean (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, boolean defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, Boolean.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public boolean value () { return value; } public void parseArg (java.lang.String arg) { if (arg == null || arg.equalsIgnoreCase("true") || arg.equals("1")) value = true; else if (arg.equalsIgnoreCase("false") || arg.equals("0")) value = false; else throw new IllegalArgumentException ("Boolean option should be true|false|0|1. Instead found "+arg); } public java.lang.String defaultValueToString() { return java.lang.Boolean.toString(defaultValue); } public java.lang.String valueToString () { return java.lang.Boolean.toString (value); } } public static class Integer extends CommandOption { public int value, defaultValue; public Integer (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, int defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, Integer.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public int value () { return value; } public void parseArg (java.lang.String arg) { value = java.lang.Integer.parseInt(arg); } public java.lang.String defaultValueToString() { return java.lang.Integer.toString(defaultValue); } public java.lang.String valueToString () { return java.lang.Integer.toString (value); } } public static class IntegerArray extends CommandOption { public int[] value, defaultValue; public IntegerArray (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, int[] defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, IntegerArray.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public int[] value () { return value; } public void parseArg (java.lang.String arg) { java.lang.String elts[] = arg.split(","); value = new int[elts.length]; for (int i = 0; i < elts.length; i++) value[i] = java.lang.Integer.parseInt(elts[i]); } public java.lang.String defaultValueToString() { StringBuffer b = new StringBuffer(); java.lang.String sep = ""; for (int i = 0; i < defaultValue.length; i++) { b.append(sep).append(java.lang.Integer.toString(defaultValue[i])); sep = ","; } return b.toString(); } public java.lang.String valueToString() { StringBuffer b = new StringBuffer(); java.lang.String sep = ""; for (int i = 0; i < defaultValue.length; i++) { b.append(sep).append(java.lang.Integer.toString(value[i])); sep = ","; } return b.toString(); } } public static class Double extends CommandOption { public double value, defaultValue; public Double (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, double defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, Double.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public double value () { return value; } public void parseArg (java.lang.String arg) { value = java.lang.Double.parseDouble(arg); } public java.lang.String defaultValueToString() { return java.lang.Double.toString(defaultValue); } public java.lang.String valueToString () { return java.lang.Double.toString (value); } } public static class DoubleArray extends CommandOption { public double[] value, defaultValue; public DoubleArray (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, double[] defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, IntegerArray.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public double[] value () { return value; } public void parseArg (java.lang.String arg) { java.lang.String elts[] = arg.split(","); value = new double[elts.length]; for (int i = 0; i < elts.length; i++) value[i] = java.lang.Double.parseDouble(elts[i]); } public java.lang.String defaultValueToString() { StringBuffer b = new StringBuffer(); java.lang.String sep = ""; for (int i = 0; i < defaultValue.length; i++) { b.append(sep).append(java.lang.Double.toString(defaultValue[i])); sep = ","; } return b.toString(); } public java.lang.String valueToString() { StringBuffer b = new StringBuffer(); java.lang.String sep = ""; for (int i = 0; i < defaultValue.length; i++) { b.append(sep).append(java.lang.Double.toString(value[i])); sep = ","; } return b.toString(); } } public static class String extends CommandOption { public java.lang.String value, defaultValue; public String (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, java.lang.String defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, java.lang.String.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public java.lang.String value () { return value; } public void parseArg (java.lang.String arg) { value = arg; } public java.lang.String defaultValueToString() { return defaultValue; } public java.lang.String valueToString() { return value; } } public static class SpacedStrings extends CommandOption { public java.lang.String[] value, defaultValue; public SpacedStrings (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, java.lang.String[] defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, java.lang.String.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public java.lang.String[] value () { return value; } public int parseArg (java.lang.String args[], int argi) { int count = 0; this.value = null; while (argi < args.length && (args[argi].length() < 2 || (args[argi].charAt(0) != '-' && args[argi].charAt(1) != '-'))) { count++; java.lang.String[] oldValue = value; value = new java.lang.String[count]; if (oldValue != null) System.arraycopy (oldValue, 0, value, 0, oldValue.length); value[count-1] = args[argi]; argi++; } return argi; } public java.lang.String defaultValueToString() { if (defaultValue == null) return "(null)"; StringBuffer sb = new StringBuffer(); for (int i = 0; i < defaultValue.length; i++) { sb.append (defaultValue[i]); if (i < defaultValue.length-1) sb.append (" "); } return sb.toString(); } public java.lang.String valueToString () { if (value == null) return "(null)"; java.lang.String val = ""; for (int i = 0; i < value.length; i++) { val += value [i]; } return val; } } public static class File extends CommandOption { public java.io.File value, defaultValue; public File (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, java.io.File defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, java.io.File.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public java.io.File value () { return value; } public void parseArg (java.lang.String arg) { value = new java.io.File(arg); } public java.lang.String defaultValueToString() { return defaultValue == null ? null : defaultValue.toString(); } public java.lang.String valueToString () { return value == null ? null : value.toString(); }; } // Value is a string that can take on only a limited set of values public static class Set extends CommandOption { public java.lang.String value, defaultValue; java.lang.String[] setContents; java.lang.String contentsString; public Set (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, java.lang.String[] setContents, int defaultIndex, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, java.io.File.class, argRequired, shortdoc, longdoc); this.value = setContents[defaultIndex]; this.setContents = setContents; StringBuffer sb = new StringBuffer (); for (int i = 0; i < setContents.length; i++) { sb.append (setContents[i]); sb.append (","); } this.contentsString = sb.toString(); } public java.lang.String value () { return value; } public void parseArg (java.lang.String arg) { value = null; for (int i = 0; i < setContents.length; i++) if (setContents[i].equals(arg)) value = setContents[i]; if (value == null) throw new IllegalArgumentException ("Unrecognized option argument \""+arg+"\" not in set "+contentsString); } public java.lang.String defaultValueToString() { return defaultValue; } public java.lang.String valueToString() { return value; } } public static class Object extends CommandOption { public java.lang.Object value, defaultValue; public Object (Class owner, java.lang.String name, java.lang.String argName, boolean argRequired, java.lang.Object defaultValue, java.lang.String shortdoc, java.lang.String longdoc) { super (owner, name, argName, java.lang.Object.class, argRequired, shortdoc, longdoc); this.defaultValue = value = defaultValue; } public java.lang.Object value () { return value; } public void parseArg (java.lang.String arg) { try { value = interpreter.eval (arg); } catch (bsh.EvalError e) { throw new IllegalArgumentException ("Java interpreter eval error\n"+e); } } public java.lang.String defaultValueToString() { return defaultValue == null ? null : defaultValue.toString(); } public java.lang.String valueToString() { return value == null ? null : value.toString(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -