402 packages.add(utils.containingPackage(aClass)); |
402 packages.add(utils.containingPackage(aClass)); |
403 } |
403 } |
404 } |
404 } |
405 |
405 |
406 public Set<Doclet.Option> getSupportedOptions() { |
406 public Set<Doclet.Option> getSupportedOptions() { |
|
407 Resources resources = getResources(); |
407 Doclet.Option[] options = { |
408 Doclet.Option[] options = { |
408 new Option(this, "-author") { |
409 new Option(resources, "-author") { |
409 @Override |
410 @Override |
410 public boolean process(String opt, ListIterator<String> args) { |
411 public boolean process(String opt, ListIterator<String> args) { |
411 optionsProcessed.add(this); |
412 optionsProcessed.add(this); |
412 showauthor = true; |
413 showauthor = true; |
413 return true; |
414 return true; |
414 } |
415 } |
415 }, |
416 }, |
416 new Option(this, "-d", 1) { |
417 new Option(resources, "-d", 1) { |
417 @Override |
418 @Override |
418 public boolean process(String opt, ListIterator<String> args) { |
419 public boolean process(String opt, ListIterator<String> args) { |
419 optionsProcessed.add(this); |
420 optionsProcessed.add(this); |
420 destDirName = addTrailingFileSep(args.next()); |
421 destDirName = addTrailingFileSep(args.next()); |
421 return true; |
422 return true; |
422 } |
423 } |
423 }, |
424 }, |
424 new Option(this, "-docencoding", 1) { |
425 new Option(resources, "-docencoding", 1) { |
425 @Override |
426 @Override |
426 public boolean process(String opt, ListIterator<String> args) { |
427 public boolean process(String opt, ListIterator<String> args) { |
427 optionsProcessed.add(this); |
428 optionsProcessed.add(this); |
428 docencoding = args.next(); |
429 docencoding = args.next(); |
429 return true; |
430 return true; |
430 } |
431 } |
431 }, |
432 }, |
432 new Option(this, "-docfilessubdirs") { |
433 new Option(resources, "-docfilessubdirs") { |
433 @Override |
434 @Override |
434 public boolean process(String opt, ListIterator<String> args) { |
435 public boolean process(String opt, ListIterator<String> args) { |
435 optionsProcessed.add(this); |
436 optionsProcessed.add(this); |
436 copydocfilesubdirs = true; |
437 copydocfilesubdirs = true; |
437 return true; |
438 return true; |
438 } |
439 } |
439 }, |
440 }, |
440 new Hidden(this, "-encoding", 1) { |
441 new Hidden(resources, "-encoding", 1) { |
441 @Override |
442 @Override |
442 public boolean process(String opt, ListIterator<String> args) { |
443 public boolean process(String opt, ListIterator<String> args) { |
443 optionsProcessed.add(this); |
444 optionsProcessed.add(this); |
444 encoding = args.next(); |
445 encoding = args.next(); |
445 return true; |
446 return true; |
446 } |
447 } |
447 }, |
448 }, |
448 new Option(this, "-excludedocfilessubdir", 1) { |
449 new Option(resources, "-excludedocfilessubdir", 1) { |
449 @Override |
450 @Override |
450 public boolean process(String opt, ListIterator<String> args) { |
451 public boolean process(String opt, ListIterator<String> args) { |
451 optionsProcessed.add(this); |
452 optionsProcessed.add(this); |
452 addToSet(excludedDocFileDirs, args.next()); |
453 addToSet(excludedDocFileDirs, args.next()); |
453 return true; |
454 return true; |
454 } |
455 } |
455 }, |
456 }, |
456 new Option(this, "-group", 2) { |
457 new Option(resources, "-group", 2) { |
457 @Override |
458 @Override |
458 public boolean process(String opt, ListIterator<String> args) { |
459 public boolean process(String opt, ListIterator<String> args) { |
459 optionsProcessed.add(this); |
460 optionsProcessed.add(this); |
460 groups.add(new GroupContainer(args.next(), args.next())); |
461 groups.add(new GroupContainer(args.next(), args.next())); |
461 return true; |
462 return true; |
462 } |
463 } |
463 }, |
464 }, |
464 new Hidden(this, "-javafx") { |
465 new Hidden(resources, "-javafx") { |
465 @Override |
466 @Override |
466 public boolean process(String opt, ListIterator<String> args) { |
467 public boolean process(String opt, ListIterator<String> args) { |
467 optionsProcessed.add(this); |
468 optionsProcessed.add(this); |
468 javafx = true; |
469 javafx = true; |
469 return true; |
470 return true; |
470 } |
471 } |
471 }, |
472 }, |
472 new Option(this, "-keywords") { |
473 new Option(resources, "-keywords") { |
473 @Override |
474 @Override |
474 public boolean process(String opt, ListIterator<String> args) { |
475 public boolean process(String opt, ListIterator<String> args) { |
475 optionsProcessed.add(this); |
476 optionsProcessed.add(this); |
476 keywords = true; |
477 keywords = true; |
477 return true; |
478 return true; |
478 } |
479 } |
479 }, |
480 }, |
480 new Option(this, "-link", 1) { |
481 new Option(resources, "-link", 1) { |
481 @Override |
482 @Override |
482 public boolean process(String opt, ListIterator<String> args) { |
483 public boolean process(String opt, ListIterator<String> args) { |
483 optionsProcessed.add(this); |
484 optionsProcessed.add(this); |
484 urlForLink = args.next(); |
485 urlForLink = args.next(); |
485 pkglistUrlForLink = urlForLink; |
486 pkglistUrlForLink = urlForLink; |
486 return true; |
487 return true; |
487 } |
488 } |
488 }, |
489 }, |
489 new Option(this, "-linksource") { |
490 new Option(resources, "-linksource") { |
490 @Override |
491 @Override |
491 public boolean process(String opt, ListIterator<String> args) { |
492 public boolean process(String opt, ListIterator<String> args) { |
492 optionsProcessed.add(this); |
493 optionsProcessed.add(this); |
493 linksource = true; |
494 linksource = true; |
494 return true; |
495 return true; |
495 } |
496 } |
496 }, |
497 }, |
497 new Option(this, "-linkoffline", 2) { |
498 new Option(resources, "-linkoffline", 2) { |
498 @Override |
499 @Override |
499 public boolean process(String opt, ListIterator<String> args) { |
500 public boolean process(String opt, ListIterator<String> args) { |
500 optionsProcessed.add(this); |
501 optionsProcessed.add(this); |
501 urlForLinkOffline = args.next(); |
502 urlForLinkOffline = args.next(); |
502 pkglistUrlForLinkOffline = args.next(); |
503 pkglistUrlForLinkOffline = args.next(); |
503 return true; |
504 return true; |
504 } |
505 } |
505 }, |
506 }, |
506 new Option(this, "-nocomment") { |
507 new Option(resources, "-nocomment") { |
507 @Override |
508 @Override |
508 public boolean process(String opt, ListIterator<String> args) { |
509 public boolean process(String opt, ListIterator<String> args) { |
509 optionsProcessed.add(this); |
510 optionsProcessed.add(this); |
510 nocomment = true; |
511 nocomment = true; |
511 return true; |
512 return true; |
512 } |
513 } |
513 }, |
514 }, |
514 new Option(this, "-nodeprecated") { |
515 new Option(resources, "-nodeprecated") { |
515 @Override |
516 @Override |
516 public boolean process(String opt, ListIterator<String> args) { |
517 public boolean process(String opt, ListIterator<String> args) { |
517 optionsProcessed.add(this); |
518 optionsProcessed.add(this); |
518 nodeprecated = true; |
519 nodeprecated = true; |
519 return true; |
520 return true; |
520 } |
521 } |
521 }, |
522 }, |
522 new Option(this, "-nosince") { |
523 new Option(resources, "-nosince") { |
523 @Override |
524 @Override |
524 public boolean process(String opt, ListIterator<String> args) { |
525 public boolean process(String opt, ListIterator<String> args) { |
525 optionsProcessed.add(this); |
526 optionsProcessed.add(this); |
526 nosince = true; |
527 nosince = true; |
527 return true; |
528 return true; |
528 } |
529 } |
529 }, |
530 }, |
530 new Option(this, "-notimestamp") { |
531 new Option(resources, "-notimestamp") { |
531 @Override |
532 @Override |
532 public boolean process(String opt, ListIterator<String> args) { |
533 public boolean process(String opt, ListIterator<String> args) { |
533 optionsProcessed.add(this); |
534 optionsProcessed.add(this); |
534 notimestamp = true; |
535 notimestamp = true; |
535 return true; |
536 return true; |
536 } |
537 } |
537 }, |
538 }, |
538 new Option(this, "-noqualifier", 1) { |
539 new Option(resources, "-noqualifier", 1) { |
539 @Override |
540 @Override |
540 public boolean process(String opt, ListIterator<String> args) { |
541 public boolean process(String opt, ListIterator<String> args) { |
541 optionsProcessed.add(this); |
542 optionsProcessed.add(this); |
542 addToSet(excludedQualifiers, args.next()); |
543 addToSet(excludedQualifiers, args.next()); |
543 return true; |
544 return true; |
544 } |
545 } |
545 }, |
546 }, |
546 new Hidden(this, "-quiet") { |
547 new Hidden(resources, "-quiet") { |
547 @Override |
548 @Override |
548 public boolean process(String opt, ListIterator<String> args) { |
549 public boolean process(String opt, ListIterator<String> args) { |
549 optionsProcessed.add(this); |
550 optionsProcessed.add(this); |
550 quiet = true; |
551 quiet = true; |
551 return true; |
552 return true; |
552 } |
553 } |
553 }, |
554 }, |
554 new Option(this, "-serialwarn") { |
555 new Option(resources, "-serialwarn") { |
555 @Override |
556 @Override |
556 public boolean process(String opt, ListIterator<String> args) { |
557 public boolean process(String opt, ListIterator<String> args) { |
557 optionsProcessed.add(this); |
558 optionsProcessed.add(this); |
558 serialwarn = true; |
559 serialwarn = true; |
559 return true; |
560 return true; |
560 } |
561 } |
561 }, |
562 }, |
562 new Option(this, "-sourcetab", 1) { |
563 new Option(resources, "-sourcetab", 1) { |
563 @Override |
564 @Override |
564 public boolean process(String opt, ListIterator<String> args) { |
565 public boolean process(String opt, ListIterator<String> args) { |
565 optionsProcessed.add(this); |
566 optionsProcessed.add(this); |
566 linksource = true; |
567 linksource = true; |
567 try { |
568 try { |
576 setTabWidth(DocletConstants.DEFAULT_TAB_STOP_LENGTH); |
577 setTabWidth(DocletConstants.DEFAULT_TAB_STOP_LENGTH); |
577 } |
578 } |
578 return true; |
579 return true; |
579 } |
580 } |
580 }, |
581 }, |
581 new Option(this, "-tag", 1) { |
582 new Option(resources, "-tag", 1) { |
582 @Override |
583 @Override |
583 public boolean process(String opt, ListIterator<String> args) { |
584 public boolean process(String opt, ListIterator<String> args) { |
584 optionsProcessed.add(this); |
585 optionsProcessed.add(this); |
585 ArrayList<String> list = new ArrayList<>(); |
586 ArrayList<String> list = new ArrayList<>(); |
586 list.add(opt); |
587 list.add(opt); |
587 list.add(args.next()); |
588 list.add(args.next()); |
588 customTagStrs.add(list); |
589 customTagStrs.add(list); |
589 return true; |
590 return true; |
590 } |
591 } |
591 }, |
592 }, |
592 new Option(this, "-taglet", 1) { |
593 new Option(resources, "-taglet", 1) { |
593 @Override |
594 @Override |
594 public boolean process(String opt, ListIterator<String> args) { |
595 public boolean process(String opt, ListIterator<String> args) { |
595 optionsProcessed.add(this); |
596 optionsProcessed.add(this); |
596 ArrayList<String> list = new ArrayList<>(); |
597 ArrayList<String> list = new ArrayList<>(); |
597 list.add(opt); |
598 list.add(opt); |
598 list.add(args.next()); |
599 list.add(args.next()); |
599 customTagStrs.add(list); |
600 customTagStrs.add(list); |
600 return true; |
601 return true; |
601 } |
602 } |
602 }, |
603 }, |
603 new Option(this, "-tagletpath", 1) { |
604 new Option(resources, "-tagletpath", 1) { |
604 @Override |
605 @Override |
605 public boolean process(String opt, ListIterator<String> args) { |
606 public boolean process(String opt, ListIterator<String> args) { |
606 optionsProcessed.add(this); |
607 optionsProcessed.add(this); |
607 tagletpath = args.next(); |
608 tagletpath = args.next(); |
608 return true; |
609 return true; |
609 } |
610 } |
610 }, |
611 }, |
611 new Option(this, "-version") { |
612 new Option(resources, "-version") { |
612 @Override |
613 @Override |
613 public boolean process(String opt, ListIterator<String> args) { |
614 public boolean process(String opt, ListIterator<String> args) { |
614 optionsProcessed.add(this); |
615 optionsProcessed.add(this); |
615 showversion = true; |
616 showversion = true; |
616 return true; |
617 return true; |
1055 private final String name; |
1056 private final String name; |
1056 private final String parameters; |
1057 private final String parameters; |
1057 private final String description; |
1058 private final String description; |
1058 private final int argCount; |
1059 private final int argCount; |
1059 |
1060 |
1060 protected final Configuration c; |
1061 protected Option(Resources resources, String name, int argCount) { |
1061 |
1062 this(resources, "doclet.usage." + name.toLowerCase().replaceAll("^-*", ""), name, argCount); |
1062 protected Option(Configuration config, String keyName, String name, int argCount) { |
1063 } |
1063 c = config; |
1064 |
|
1065 protected Option(Resources resources, String keyBase, String name, int argCount) { |
1064 this.name = name; |
1066 this.name = name; |
1065 String desc = getOptionsMessage(keyName + "description"); |
1067 String desc = getOptionsMessage(resources, keyBase + ".description"); |
1066 if (desc.isEmpty()) { |
1068 if (desc.isEmpty()) { |
1067 this.description = "<MISSING KEY>"; |
1069 this.description = "<MISSING KEY>"; |
1068 this.parameters = "<MISSING KEY>"; |
1070 this.parameters = "<MISSING KEY>"; |
1069 } else { |
1071 } else { |
1070 this.description = desc; |
1072 this.description = desc; |
1071 this.parameters = getOptionsMessage(keyName + "parameters"); |
1073 this.parameters = getOptionsMessage(resources, keyBase + ".parameters"); |
1072 } |
1074 } |
1073 this.argCount = argCount; |
1075 this.argCount = argCount; |
1074 } |
1076 } |
1075 |
1077 |
1076 protected Option(String prefix, Configuration config, String name, int argCount) { |
1078 protected Option(Resources resources, String name) { |
1077 this(config, prefix + name.toLowerCase().replaceAll("^-*", "") + ".", name, argCount); |
1079 this(resources, name, 0); |
1078 } |
1080 } |
1079 |
1081 |
1080 protected Option(Configuration config, String name, int argCount) { |
1082 private String getOptionsMessage(Resources resources, String key) { |
1081 this("doclet.usage.", config, name, argCount); |
|
1082 } |
|
1083 |
|
1084 protected Option(Configuration config, String name) { |
|
1085 this(config, name, 0); |
|
1086 } |
|
1087 |
|
1088 private String getOptionsMessage(String key) { |
|
1089 try { |
1083 try { |
1090 return c.getResources().getText(key); |
1084 return resources.getText(key); |
1091 } catch (MissingResourceException ignore) { |
1085 } catch (MissingResourceException ignore) { |
1092 return ""; |
1086 return ""; |
1093 } |
1087 } |
1094 } |
1088 } |
1095 |
1089 |
1111 @Override |
1105 @Override |
1112 public String getParameters() { |
1106 public String getParameters() { |
1113 return parameters; |
1107 return parameters; |
1114 } |
1108 } |
1115 |
1109 |
1116 /** |
|
1117 * Maintains the formatting for javadoc -help. Note the space |
|
1118 * alignment. |
|
1119 */ |
|
1120 @Override |
1110 @Override |
1121 public String toString() { |
1111 public String toString() { |
1122 String opt = name + (name.endsWith(":") ? "" : " ") + parameters; |
1112 return name; |
1123 StringBuffer sb = new StringBuffer(" ").append(opt).append(" "); |
|
1124 for (int i = opt.length(); i < 32; i++) { |
|
1125 sb.append(" "); |
|
1126 } |
|
1127 sb.append(description); |
|
1128 return sb.toString(); |
|
1129 } |
1113 } |
1130 |
1114 |
1131 @Override |
1115 @Override |
1132 public int getArgumentCount() { |
1116 public int getArgumentCount() { |
1133 return argCount; |
1117 return argCount; |
1134 } |
1118 } |
1135 |
1119 |
1136 @Override |
1120 @Override |
1137 public boolean matches(String option) { |
1121 public boolean matches(String option) { |
1138 return name.toLowerCase().equals(option.toLowerCase()); |
1122 boolean matchCase = name.startsWith("--"); |
|
1123 if (option.startsWith("--") && option.contains("=")) { |
|
1124 return name.equals(option.substring(option.indexOf("=") + 1)); |
|
1125 } else if (matchCase) { |
|
1126 return name.equals(option); |
|
1127 } else { |
|
1128 return name.toLowerCase().equals(option.toLowerCase()); |
|
1129 } |
1139 } |
1130 } |
1140 |
1131 |
1141 @Override |
1132 @Override |
1142 public int compareTo(Option that) { |
1133 public int compareTo(Option that) { |
1143 return this.getName().compareTo(that.getName()); |
1134 return this.getName().compareTo(that.getName()); |
1144 } |
1135 } |
1145 } |
1136 } |
1146 |
1137 |
1147 public abstract class XOption extends Option { |
1138 public abstract class XOption extends Option { |
1148 |
1139 |
1149 public XOption(Configuration config, String keyname, String name, int argCount) { |
1140 public XOption(Resources resources, String prefix, String name, int argCount) { |
1150 super(config, keyname, name, argCount); |
1141 super(resources, prefix, name, argCount); |
1151 } |
1142 } |
1152 |
1143 |
1153 public XOption(Configuration config, String name, int argCount) { |
1144 public XOption(Resources resources, String name, int argCount) { |
1154 super("doclet.xusage.", config, name, argCount); |
1145 super(resources, name, argCount); |
1155 } |
1146 } |
1156 |
1147 |
1157 public XOption(Configuration config, String name) { |
1148 public XOption(Resources resources, String name) { |
1158 this(config, name, 0); |
1149 this(resources, name, 0); |
1159 } |
1150 } |
1160 |
1151 |
1161 @Override |
1152 @Override |
1162 public Option.Kind getKind() { |
1153 public Option.Kind getKind() { |
1163 return Doclet.Option.Kind.EXTENDED; |
1154 return Doclet.Option.Kind.EXTENDED; |
1164 } |
1155 } |
1165 } |
1156 } |
1166 |
1157 |
1167 public abstract class Hidden extends Option { |
1158 public abstract class Hidden extends Option { |
1168 |
1159 |
1169 public Hidden(Configuration config, String name, int argCount) { |
1160 public Hidden(Resources resources, String name, int argCount) { |
1170 super("doclet.xusage.", config, name, argCount); |
1161 super(resources, name, argCount); |
1171 } |
1162 } |
1172 |
1163 |
1173 public Hidden(Configuration config, String name) { |
1164 public Hidden(Resources resources, String name) { |
1174 this(config, name, 0); |
1165 this(resources, name, 0); |
1175 } |
1166 } |
1176 |
1167 |
1177 @Override |
1168 @Override |
1178 public Option.Kind getKind() { |
1169 public Option.Kind getKind() { |
1179 return Doclet.Option.Kind.OTHER; |
1170 return Doclet.Option.Kind.OTHER; |