< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/TaskHelper.java

Print this page
rev 48074 : 8189102: All tools should support -?, -h and --help
Reviewed-by: kvn, jjg, weijun, alanb, rfield, ksrini


  84         public BadArgs showUsage(boolean b) {
  85             showUsage = b;
  86             return this;
  87         }
  88         public final String key;
  89         public final Object[] args;
  90         public boolean showUsage;
  91     }
  92 
  93     public static class Option<T> implements Comparable<T> {
  94         public interface Processing<T> {
  95 
  96             void process(T task, String opt, String arg) throws BadArgs;
  97         }
  98 
  99         final boolean hasArg;
 100         final Processing<T> processing;
 101         final boolean hidden;
 102         final String name;
 103         final String shortname;

 104         final boolean terminalOption;
 105 
 106         public Option(boolean hasArg,
 107                       Processing<T> processing,
 108                       boolean hidden,
 109                       String name,
 110                       String shortname,

 111                       boolean isTerminal)
 112         {
 113             if (!name.startsWith("--")) {
 114                 throw new RuntimeException("option name missing --, " + name);
 115             }
 116             if (!shortname.isEmpty() && !shortname.startsWith("-")) {
 117                 throw new RuntimeException("short name missing -, " + shortname);
 118             }
 119 
 120             this.hasArg = hasArg;
 121             this.processing = processing;
 122             this.hidden = hidden;
 123             this.name = name;
 124             this.shortname = shortname;

 125             this.terminalOption = isTerminal;
 126         }









 127 
 128         public Option(boolean hasArg, Processing<T> processing, String name, String shortname, boolean isTerminal) {
 129             this(hasArg, processing, false, name, shortname, isTerminal);




 130         }
 131 
 132         public Option(boolean hasArg, Processing<T> processing, String name, String shortname) {
 133             this(hasArg, processing, false, name, shortname, false);
 134         }
 135 
 136         public Option(boolean hasArg, Processing<T> processing, boolean hidden, String name) {
 137             this(hasArg, processing, hidden, name, "", false);
 138         }
 139 
 140         public Option(boolean hasArg, Processing<T> processing, String name) {
 141             this(hasArg, processing, false, name, "", false);
 142         }
 143 
 144         public boolean isHidden() {
 145             return hidden;
 146         }
 147 
 148         public boolean isTerminal() {
 149             return terminalOption;
 150         }
 151 
 152         public boolean matches(String opt) {
 153             return opt.equals(name) ||
 154                    opt.equals(shortname) ||

 155                    hasArg && opt.startsWith("--") && opt.startsWith(name + "=");
 156          }
 157 
 158         public boolean ignoreRest() {
 159             return false;
 160         }
 161 
 162         void process(T task, String opt, String arg) throws BadArgs {
 163             processing.process(task, opt, arg);
 164         }
 165 
 166         public String getName() {
 167             return name;
 168         }
 169 
 170         public String resourceName() {
 171             return resourcePrefix() + name.substring(2);
 172         }
 173 
 174         public String getShortname() {




  84         public BadArgs showUsage(boolean b) {
  85             showUsage = b;
  86             return this;
  87         }
  88         public final String key;
  89         public final Object[] args;
  90         public boolean showUsage;
  91     }
  92 
  93     public static class Option<T> implements Comparable<T> {
  94         public interface Processing<T> {
  95 
  96             void process(T task, String opt, String arg) throws BadArgs;
  97         }
  98 
  99         final boolean hasArg;
 100         final Processing<T> processing;
 101         final boolean hidden;
 102         final String name;
 103         final String shortname;
 104         final String shortname2;
 105         final boolean terminalOption;
 106 
 107         public Option(boolean hasArg,
 108                       Processing<T> processing,
 109                       boolean hidden,
 110                       String name,
 111                       String shortname,
 112                       String shortname2,
 113                       boolean isTerminal)
 114         {
 115             if (!name.startsWith("--")) {
 116                 throw new RuntimeException("option name missing --, " + name);
 117             }
 118             if (!shortname.isEmpty() && !shortname.startsWith("-")) {
 119                 throw new RuntimeException("short name missing -, " + shortname);
 120             }
 121 
 122             this.hasArg = hasArg;
 123             this.processing = processing;
 124             this.hidden = hidden;
 125             this.name = name;
 126             this.shortname = shortname;
 127             this.shortname2 = shortname2;
 128             this.terminalOption = isTerminal;
 129         }
 130         public Option(boolean hasArg,
 131                       Processing<T> processing,
 132                       boolean hidden,
 133                       String name,
 134                       String shortname,
 135                       boolean isTerminal)
 136         {
 137             this(hasArg, processing, false, name, shortname, "", isTerminal);
 138         }
 139 
 140         public Option(boolean hasArg, Processing<T> processing, String name, String shortname, boolean isTerminal) {
 141             this(hasArg, processing, false, name, shortname, "", isTerminal);
 142         }
 143 
 144         public Option(boolean hasArg, Processing<T> processing, String name, String shortname, String shortname2) {
 145             this(hasArg, processing, false, name, shortname, shortname2, false);
 146         }
 147 
 148         public Option(boolean hasArg, Processing<T> processing, String name, String shortname) {
 149             this(hasArg, processing, false, name, shortname, "", false);
 150         }
 151 
 152         public Option(boolean hasArg, Processing<T> processing, boolean hidden, String name) {
 153             this(hasArg, processing, hidden, name, "", "", false);
 154         }
 155 
 156         public Option(boolean hasArg, Processing<T> processing, String name) {
 157             this(hasArg, processing, false, name, "", false);
 158         }
 159 
 160         public boolean isHidden() {
 161             return hidden;
 162         }
 163 
 164         public boolean isTerminal() {
 165             return terminalOption;
 166         }
 167 
 168         public boolean matches(String opt) {
 169             return opt.equals(name) ||
 170                    opt.equals(shortname) ||
 171                    opt.equals(shortname2) ||
 172                    hasArg && opt.startsWith("--") && opt.startsWith(name + "=");
 173          }
 174 
 175         public boolean ignoreRest() {
 176             return false;
 177         }
 178 
 179         void process(T task, String opt, String arg) throws BadArgs {
 180             processing.process(task, opt, arg);
 181         }
 182 
 183         public String getName() {
 184             return name;
 185         }
 186 
 187         public String resourceName() {
 188             return resourcePrefix() + name.substring(2);
 189         }
 190 
 191         public String getShortname() {


< prev index next >