langtools/src/jdk.jdeps/share/classes/com/sun/tools/javap/JavapTask.java
changeset 40308 274367a99f98
parent 36526 3b41f1c69604
child 40606 eb2c81860c86
equal deleted inserted replaced
40306:1a0fcaf3f2ed 40308:274367a99f98
   124     }
   124     }
   125 
   125 
   126     static final Option[] recognizedOptions = {
   126     static final Option[] recognizedOptions = {
   127 
   127 
   128         new Option(false, "-help", "--help", "-?") {
   128         new Option(false, "-help", "--help", "-?") {
       
   129             @Override
   129             void process(JavapTask task, String opt, String arg) {
   130             void process(JavapTask task, String opt, String arg) {
   130                 task.options.help = true;
   131                 task.options.help = true;
   131             }
   132             }
   132         },
   133         },
   133 
   134 
   134         new Option(false, "-version") {
   135         new Option(false, "-version") {
       
   136             @Override
   135             void process(JavapTask task, String opt, String arg) {
   137             void process(JavapTask task, String opt, String arg) {
   136                 task.options.version = true;
   138                 task.options.version = true;
   137             }
   139             }
   138         },
   140         },
   139 
   141 
   140         new Option(false, "-fullversion") {
   142         new Option(false, "-fullversion") {
       
   143             @Override
   141             void process(JavapTask task, String opt, String arg) {
   144             void process(JavapTask task, String opt, String arg) {
   142                 task.options.fullVersion = true;
   145                 task.options.fullVersion = true;
   143             }
   146             }
   144         },
   147         },
   145 
   148 
   146         new Option(false, "-v", "-verbose", "-all") {
   149         new Option(false, "-v", "-verbose", "-all") {
       
   150             @Override
   147             void process(JavapTask task, String opt, String arg) {
   151             void process(JavapTask task, String opt, String arg) {
   148                 task.options.verbose = true;
   152                 task.options.verbose = true;
   149                 task.options.showDescriptors = true;
   153                 task.options.showDescriptors = true;
   150                 task.options.showFlags = true;
   154                 task.options.showFlags = true;
   151                 task.options.showAllAttrs = true;
   155                 task.options.showAllAttrs = true;
   152             }
   156             }
   153         },
   157         },
   154 
   158 
   155         new Option(false, "-l") {
   159         new Option(false, "-l") {
       
   160             @Override
   156             void process(JavapTask task, String opt, String arg) {
   161             void process(JavapTask task, String opt, String arg) {
   157                 task.options.showLineAndLocalVariableTables = true;
   162                 task.options.showLineAndLocalVariableTables = true;
   158             }
   163             }
   159         },
   164         },
   160 
   165 
   161         new Option(false, "-public") {
   166         new Option(false, "-public") {
       
   167             @Override
   162             void process(JavapTask task, String opt, String arg) {
   168             void process(JavapTask task, String opt, String arg) {
   163                 task.options.accessOptions.add(opt);
   169                 task.options.accessOptions.add(opt);
   164                 task.options.showAccess = AccessFlags.ACC_PUBLIC;
   170                 task.options.showAccess = AccessFlags.ACC_PUBLIC;
   165             }
   171             }
   166         },
   172         },
   167 
   173 
   168         new Option(false, "-protected") {
   174         new Option(false, "-protected") {
       
   175             @Override
   169             void process(JavapTask task, String opt, String arg) {
   176             void process(JavapTask task, String opt, String arg) {
   170                 task.options.accessOptions.add(opt);
   177                 task.options.accessOptions.add(opt);
   171                 task.options.showAccess = AccessFlags.ACC_PROTECTED;
   178                 task.options.showAccess = AccessFlags.ACC_PROTECTED;
   172             }
   179             }
   173         },
   180         },
   174 
   181 
   175         new Option(false, "-package") {
   182         new Option(false, "-package") {
       
   183             @Override
   176             void process(JavapTask task, String opt, String arg) {
   184             void process(JavapTask task, String opt, String arg) {
   177                 task.options.accessOptions.add(opt);
   185                 task.options.accessOptions.add(opt);
   178                 task.options.showAccess = 0;
   186                 task.options.showAccess = 0;
   179             }
   187             }
   180         },
   188         },
   181 
   189 
   182         new Option(false, "-p", "-private") {
   190         new Option(false, "-p", "-private") {
       
   191             @Override
   183             void process(JavapTask task, String opt, String arg) {
   192             void process(JavapTask task, String opt, String arg) {
   184                 if (!task.options.accessOptions.contains("-p") &&
   193                 if (!task.options.accessOptions.contains("-p") &&
   185                         !task.options.accessOptions.contains("-private")) {
   194                         !task.options.accessOptions.contains("-private")) {
   186                     task.options.accessOptions.add(opt);
   195                     task.options.accessOptions.add(opt);
   187                 }
   196                 }
   188                 task.options.showAccess = AccessFlags.ACC_PRIVATE;
   197                 task.options.showAccess = AccessFlags.ACC_PRIVATE;
   189             }
   198             }
   190         },
   199         },
   191 
   200 
   192         new Option(false, "-c") {
   201         new Option(false, "-c") {
       
   202             @Override
   193             void process(JavapTask task, String opt, String arg) {
   203             void process(JavapTask task, String opt, String arg) {
   194                 task.options.showDisassembled = true;
   204                 task.options.showDisassembled = true;
   195             }
   205             }
   196         },
   206         },
   197 
   207 
   198         new Option(false, "-s") {
   208         new Option(false, "-s") {
       
   209             @Override
   199             void process(JavapTask task, String opt, String arg) {
   210             void process(JavapTask task, String opt, String arg) {
   200                 task.options.showDescriptors = true;
   211                 task.options.showDescriptors = true;
   201             }
   212             }
   202         },
   213         },
   203 
   214 
   204         new Option(false, "-sysinfo") {
   215         new Option(false, "-sysinfo") {
       
   216             @Override
   205             void process(JavapTask task, String opt, String arg) {
   217             void process(JavapTask task, String opt, String arg) {
   206                 task.options.sysInfo = true;
   218                 task.options.sysInfo = true;
   207             }
   219             }
   208         },
   220         },
   209 
   221 
   210         new Option(false, "-XDdetails") {
   222         new Option(false, "-XDdetails") {
       
   223             @Override
   211             void process(JavapTask task, String opt, String arg) {
   224             void process(JavapTask task, String opt, String arg) {
   212                 task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class);
   225                 task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class);
   213             }
   226             }
   214 
   227 
   215         },
   228         },
   219             boolean matches(String opt) {
   232             boolean matches(String opt) {
   220                 int sep = opt.indexOf(":");
   233                 int sep = opt.indexOf(":");
   221                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   234                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   222             }
   235             }
   223 
   236 
       
   237             @Override
   224             void process(JavapTask task, String opt, String arg) throws BadArgs {
   238             void process(JavapTask task, String opt, String arg) throws BadArgs {
   225                 int sep = opt.indexOf(":");
   239                 int sep = opt.indexOf(":");
   226                 for (String v: opt.substring(sep + 1).split("[,: ]+")) {
   240                 for (String v: opt.substring(sep + 1).split("[,: ]+")) {
   227                     if (!handleArg(task, v))
   241                     if (!handleArg(task, v))
   228                         throw task.new BadArgs("err.invalid.arg.for.option", v);
   242                         throw task.new BadArgs("err.invalid.arg.for.option", v);
   256                 return false;
   270                 return false;
   257             }
   271             }
   258         },
   272         },
   259 
   273 
   260         new Option(false, "-constants") {
   274         new Option(false, "-constants") {
       
   275             @Override
   261             void process(JavapTask task, String opt, String arg) {
   276             void process(JavapTask task, String opt, String arg) {
   262                 task.options.showConstants = true;
   277                 task.options.showConstants = true;
   263             }
   278             }
   264         },
   279         },
   265 
   280 
   266         new Option(false, "-XDinner") {
   281         new Option(false, "-XDinner") {
       
   282             @Override
   267             void process(JavapTask task, String opt, String arg) {
   283             void process(JavapTask task, String opt, String arg) {
   268                 task.options.showInnerClasses = true;
   284                 task.options.showInnerClasses = true;
   269             }
   285             }
   270         },
   286         },
   271 
   287 
   274             boolean matches(String opt) {
   290             boolean matches(String opt) {
   275                 int sep = opt.indexOf(":");
   291                 int sep = opt.indexOf(":");
   276                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   292                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   277             }
   293             }
   278 
   294 
       
   295             @Override
   279             void process(JavapTask task, String opt, String arg) throws BadArgs {
   296             void process(JavapTask task, String opt, String arg) throws BadArgs {
   280                 int sep = opt.indexOf(":");
   297                 int sep = opt.indexOf(":");
   281                 try {
   298                 try {
   282                     int i = Integer.valueOf(opt.substring(sep + 1));
   299                     int i = Integer.valueOf(opt.substring(sep + 1));
   283                     if (i > 0) // silently ignore invalid values
   300                     if (i > 0) // silently ignore invalid values
   292             boolean matches(String opt) {
   309             boolean matches(String opt) {
   293                 int sep = opt.indexOf(":");
   310                 int sep = opt.indexOf(":");
   294                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   311                 return sep != -1 && super.matches(opt.substring(0, sep + 1));
   295             }
   312             }
   296 
   313 
       
   314             @Override
   297             void process(JavapTask task, String opt, String arg) throws BadArgs {
   315             void process(JavapTask task, String opt, String arg) throws BadArgs {
   298                 int sep = opt.indexOf(":");
   316                 int sep = opt.indexOf(":");
   299                 try {
   317                 try {
   300                     int i = Integer.valueOf(opt.substring(sep + 1));
   318                     int i = Integer.valueOf(opt.substring(sep + 1));
   301                     if (i > 0) // silently ignore invalid values
   319                     if (i > 0) // silently ignore invalid values
   303                 } catch (NumberFormatException e) {
   321                 } catch (NumberFormatException e) {
   304                 }
   322                 }
   305             }
   323             }
   306         },
   324         },
   307 
   325 
   308         new Option(true, "-m") {
   326         new Option(true, "--module", "-m") {
   309             @Override
   327             @Override
   310             void process(JavapTask task, String opt, String arg) throws BadArgs {
   328             void process(JavapTask task, String opt, String arg) throws BadArgs {
   311                 task.options.moduleName = arg;
   329                 task.options.moduleName = arg;
   312             }
   330             }
   313         }
   331         }
   927     }
   945     }
   928 
   946 
   929     private void showHelp() {
   947     private void showHelp() {
   930         printLines(getMessage("main.usage", progname));
   948         printLines(getMessage("main.usage", progname));
   931         for (Option o: recognizedOptions) {
   949         for (Option o: recognizedOptions) {
   932             String name = o.aliases[0].substring(1); // there must always be at least one name
   950             String name = o.aliases[0].replaceAll("^-+", "").replaceAll("-+", "_"); // there must always be at least one name
   933             if (name.startsWith("X") || name.equals("fullversion") || name.equals("h") || name.equals("verify"))
   951             if (name.startsWith("X") || name.equals("fullversion") || name.equals("h") || name.equals("verify"))
   934                 continue;
   952                 continue;
   935             printLines(getMessage("main.opt." + name));
   953             printLines(getMessage("main.opt." + name));
   936         }
   954         }
       
   955 
   937         String[] fmOptions = {
   956         String[] fmOptions = {
   938             "-classpath", "-cp", "-bootclasspath",
   957             "--module-path", "--system",
   939             "-upgrademodulepath", "-system", "-modulepath" };
   958             "--class-path", "-classpath", "-cp",
       
   959             "-bootclasspath"
       
   960         };
       
   961 
   940         for (String o: fmOptions) {
   962         for (String o: fmOptions) {
   941             if (fileManager.isSupportedOption(o) == -1)
   963             if (fileManager.isSupportedOption(o) == -1)
   942                 continue;
   964                 continue;
   943             String name = o.substring(1);
   965             String name = o.replaceAll("^-+", "").replaceAll("-+", "_");
   944             printLines(getMessage("main.opt." + name));
   966             printLines(getMessage("main.opt." + name));
   945         }
   967         }
   946 
   968 
       
   969         printLines(getMessage("main.usage.foot"));
   947     }
   970     }
   948 
   971 
   949     private void showVersion(boolean full) {
   972     private void showVersion(boolean full) {
   950         printLines(version(full ? "full" : "release"));
   973         printLines(version(full ? "full" : "release"));
   951     }
   974     }