author | ksrini |
Mon, 10 Oct 2016 06:47:47 -0700 | |
changeset 41451 | a847c7aa25a7 |
parent 41252 | 058d83c9b1c7 |
child 41990 | ffaf4e59538a |
permissions | -rw-r--r-- |
14543 | 1 |
/* |
36526 | 2 |
* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. |
14543 | 3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
7 |
* published by the Free Software Foundation. Oracle designates this |
|
8 |
* particular file as subject to the "Classpath" exception as provided |
|
9 |
* by Oracle in the LICENSE file that accompanied this code. |
|
10 |
* |
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
|
15 |
* accompanied this code). |
|
16 |
* |
|
17 |
* You should have received a copy of the GNU General Public License version |
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 |
* |
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 |
* or visit www.oracle.com if you need additional information or have any |
|
23 |
* questions. |
|
24 |
*/ |
|
25 |
||
35426
374342e56a56
8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents:
31936
diff
changeset
|
26 |
package jdk.javadoc.internal.tool; |
14543 | 27 |
|
35426
374342e56a56
8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents:
31936
diff
changeset
|
28 |
import java.util.ArrayList; |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
29 |
import java.util.Arrays; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
30 |
import java.util.EnumMap; |
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
31 |
import java.util.LinkedHashMap; |
35426
374342e56a56
8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents:
31936
diff
changeset
|
32 |
import java.util.List; |
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
33 |
import java.util.Map; |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
34 |
|
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
35 |
import javax.lang.model.element.ElementKind; |
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
36 |
|
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
37 |
import com.sun.tools.javac.main.Option; |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
38 |
import com.sun.tools.javac.main.Option.OptionKind; |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
39 |
import com.sun.tools.javac.main.OptionHelper; |
14543 | 40 |
import com.sun.tools.javac.util.Options; |
41 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
42 |
import static com.sun.tools.javac.main.Option.OptionKind.*; |
41451 | 43 |
import static jdk.javadoc.internal.tool.Main.Result.*; |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
44 |
|
14543 | 45 |
/** |
46 |
* javadoc tool options. |
|
47 |
* |
|
48 |
* <p><b>This is NOT part of any supported API. |
|
49 |
* If you write code that depends on this, you do so at your own risk. |
|
50 |
* This code and its internal interfaces are subject to change or |
|
51 |
* deletion without notice.</b> |
|
52 |
*/ |
|
53 |
public enum ToolOption { |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
54 |
|
14543 | 55 |
// ----- options for underlying compiler ----- |
56 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
57 |
BOOTCLASSPATH("-bootclasspath", STANDARD, true) { |
14543 | 58 |
@Override |
59 |
public void process(Helper helper, String arg) { |
|
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
60 |
helper.setFileManagerOpt(Option.BOOT_CLASS_PATH, arg); |
14543 | 61 |
} |
62 |
}, |
|
63 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
64 |
CLASS_PATH("--class-path -classpath -cp", STANDARD, true) { |
14543 | 65 |
@Override |
66 |
public void process(Helper helper, String arg) { |
|
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
67 |
helper.setFileManagerOpt(Option.CLASS_PATH, arg); |
14543 | 68 |
} |
69 |
}, |
|
70 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
71 |
EXTDIRS("-extdirs", STANDARD, true) { |
14543 | 72 |
@Override |
73 |
public void process(Helper helper, String arg) { |
|
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
74 |
helper.setFileManagerOpt(Option.EXTDIRS, arg); |
14543 | 75 |
} |
76 |
}, |
|
77 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
78 |
SOURCE_PATH("--source-path -sourcepath", STANDARD, true) { |
14543 | 79 |
@Override |
80 |
public void process(Helper helper, String arg) { |
|
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
81 |
helper.setFileManagerOpt(Option.SOURCE_PATH, arg); |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
82 |
} |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
83 |
}, |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
84 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
85 |
SYSCLASSPATH("-sysclasspath", HIDDEN, true) { |
14543 | 86 |
@Override |
87 |
public void process(Helper helper, String arg) { |
|
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
88 |
helper.setFileManagerOpt(Option.BOOT_CLASS_PATH, arg); |
14543 | 89 |
} |
90 |
}, |
|
91 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
92 |
MODULE_SOURCE_PATH("--module-source-path", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
93 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
94 |
public void process(Helper helper, String arg) { |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
95 |
helper.setFileManagerOpt(Option.MODULE_SOURCE_PATH, arg); |
36526 | 96 |
} |
97 |
}, |
|
98 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
99 |
UPGRADE_MODULE_PATH("--upgrade-module-path", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
100 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
101 |
public void process(Helper helper, String arg) { |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
102 |
helper.setFileManagerOpt(Option.UPGRADE_MODULE_PATH, arg); |
36526 | 103 |
} |
104 |
}, |
|
105 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
106 |
SYSTEM("--system", STANDARD, true) { |
36526 | 107 |
@Override |
108 |
public void process(Helper helper, String arg) { |
|
109 |
helper.setFileManagerOpt(Option.SYSTEM, arg); |
|
110 |
} |
|
111 |
}, |
|
112 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
113 |
MODULE_PATH("--module-path -p", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
114 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
115 |
public void process(Helper helper, String arg) { |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
116 |
helper.setFileManagerOpt(Option.MODULE_PATH, arg); |
36526 | 117 |
} |
118 |
}, |
|
119 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
120 |
ADD_MODULES("--add-modules", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
121 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
122 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
123 |
Option.ADD_MODULES.process(helper.getOptionHelper(), primaryName, arg); |
36526 | 124 |
} |
125 |
}, |
|
126 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
127 |
LIMIT_MODULES("--limit-modules", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
128 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
129 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
130 |
Option.LIMIT_MODULES.process(helper.getOptionHelper(), primaryName, arg); |
36526 | 131 |
} |
132 |
}, |
|
133 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
134 |
MODULE("--module", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
135 |
@Override |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
136 |
public void process(Helper helper, String arg) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
137 |
helper.addToList(this, ",", arg); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
138 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
139 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
140 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
141 |
ENCODING("-encoding", STANDARD, true) { |
14543 | 142 |
@Override |
143 |
public void process(Helper helper, String arg) { |
|
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
144 |
helper.setFileManagerOpt(Option.ENCODING, arg); |
14543 | 145 |
} |
146 |
}, |
|
147 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
148 |
RELEASE("--release", STANDARD, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
149 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
150 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
151 |
Option.RELEASE.process(helper.getOptionHelper(), primaryName, arg); |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
152 |
} |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
153 |
}, |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
154 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
155 |
SOURCE("-source", STANDARD, true) { |
14543 | 156 |
@Override |
157 |
public void process(Helper helper, String arg) { |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
158 |
Option.SOURCE.process(helper.getOptionHelper(), primaryName, arg); |
14543 | 159 |
} |
160 |
}, |
|
161 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
162 |
XMAXERRS("-Xmaxerrs", EXTENDED, true) { |
14543 | 163 |
@Override |
164 |
public void process(Helper helper, String arg) { |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
165 |
Option.XMAXERRS.process(helper.getOptionHelper(), primaryName, arg); |
14543 | 166 |
} |
167 |
}, |
|
168 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
169 |
XMAXWARNS("-Xmaxwarns", EXTENDED, true) { |
14543 | 170 |
@Override |
171 |
public void process(Helper helper, String arg) { |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
172 |
Option.XMAXWARNS.process(helper.getOptionHelper(), primaryName, arg); |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
173 |
} |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
174 |
}, |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
175 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
176 |
ADD_READS("--add-reads", EXTENDED, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
177 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
178 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
179 |
Option.ADD_READS.process(helper.getOptionHelper(), primaryName, arg); |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
180 |
} |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
181 |
}, |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
182 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
183 |
ADD_EXPORTS("--add-exports", EXTENDED, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
184 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
185 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
186 |
Option.ADD_EXPORTS.process(helper.getOptionHelper(), primaryName, arg); |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
187 |
} |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
188 |
}, |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
189 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
190 |
XMODULE("-Xmodule:", EXTENDED, false) { |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
191 |
@Override |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
192 |
public void process(Helper helper, String arg) { |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
193 |
Option.XMODULE.process(helper.getOptionHelper(), arg); |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
194 |
} |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
195 |
}, |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
196 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
197 |
PATCH_MODULE("--patch-module", EXTENDED, true) { |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
198 |
@Override |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
199 |
public void process(Helper helper, String arg) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
200 |
Option.PATCH_MODULE.process(helper.getOptionHelper(), primaryName, arg); |
40308
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
201 |
} |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
202 |
}, |
274367a99f98
8136930: Simplify use of module-system options by custom launchers
jjg
parents:
37393
diff
changeset
|
203 |
|
14543 | 204 |
// ----- doclet options ----- |
205 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
206 |
DOCLET("-doclet", STANDARD, true), // handled in setDocletInvoker |
14543 | 207 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
208 |
DOCLETPATH("-docletpath", STANDARD, true), // handled in setDocletInvoker |
14543 | 209 |
|
210 |
// ----- selection options ----- |
|
211 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
212 |
SUBPACKAGES("-subpackages", STANDARD, true) { |
14543 | 213 |
@Override |
214 |
public void process(Helper helper, String arg) { |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
215 |
helper.addToList(this, ":", arg); |
14543 | 216 |
} |
217 |
}, |
|
218 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
219 |
EXCLUDE("-exclude", STANDARD, true) { |
14543 | 220 |
@Override |
221 |
public void process(Helper helper, String arg) { |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
222 |
helper.addToList(this, ":", arg); |
14543 | 223 |
} |
224 |
}, |
|
225 |
||
226 |
// ----- filtering options ----- |
|
227 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
228 |
PACKAGE("-package", STANDARD) { |
14543 | 229 |
@Override |
41451 | 230 |
public void process(Helper helper) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
231 |
helper.setSimpleFilter("package"); |
14543 | 232 |
} |
233 |
}, |
|
234 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
235 |
PRIVATE("-private", STANDARD) { |
14543 | 236 |
@Override |
41451 | 237 |
public void process(Helper helper) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
238 |
helper.setSimpleFilter("private"); |
14543 | 239 |
} |
240 |
}, |
|
241 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
242 |
PROTECTED("-protected", STANDARD) { |
14543 | 243 |
@Override |
41451 | 244 |
public void process(Helper helper) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
245 |
helper.setSimpleFilter("protected"); |
14543 | 246 |
} |
247 |
}, |
|
248 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
249 |
PUBLIC("-public", STANDARD) { |
14543 | 250 |
@Override |
41451 | 251 |
public void process(Helper helper) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
252 |
helper.setSimpleFilter("public"); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
253 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
254 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
255 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
256 |
SHOW_MEMBERS("--show-members", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
257 |
@Override |
41451 | 258 |
public void process(Helper helper, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
259 |
helper.setFilter(this, arg); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
260 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
261 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
262 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
263 |
SHOW_TYPES("--show-types", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
264 |
@Override |
41451 | 265 |
public void process(Helper helper, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
266 |
helper.setFilter(this, arg); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
267 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
268 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
269 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
270 |
SHOW_PACKAGES("--show-packages", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
271 |
@Override |
41451 | 272 |
public void process(Helper helper, String arg) throws OptionException { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
273 |
helper.setShowPackageAccess(SHOW_PACKAGES, arg); |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
274 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
275 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
276 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
277 |
SHOW_MODULE_CONTENTS("--show-module-contents", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
278 |
@Override |
41451 | 279 |
public void process(Helper helper, String arg) throws OptionException { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
280 |
helper.setShowModuleContents(SHOW_MODULE_CONTENTS, arg); |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
281 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
282 |
}, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
283 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
284 |
EXPAND_REQUIRES("--expand-requires", STANDARD, true) { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
285 |
@Override |
41451 | 286 |
public void process(Helper helper, String arg) throws OptionException { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
287 |
helper.setExpandRequires(EXPAND_REQUIRES, arg); |
14543 | 288 |
} |
289 |
}, |
|
290 |
||
291 |
// ----- output control options ----- |
|
292 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
293 |
PROMPT("-prompt", HIDDEN) { |
14543 | 294 |
@Override |
295 |
public void process(Helper helper) { |
|
296 |
helper.compOpts.put("-prompt", "-prompt"); |
|
297 |
helper.promptOnError = true; |
|
298 |
} |
|
299 |
}, |
|
300 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
301 |
QUIET("-quiet", STANDARD) { |
14543 | 302 |
@Override |
303 |
public void process(Helper helper) { |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
304 |
helper.jdtoolOpts.put(QUIET, true); |
14543 | 305 |
} |
306 |
}, |
|
307 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
308 |
VERBOSE("-verbose", STANDARD) { |
14543 | 309 |
@Override |
310 |
public void process(Helper helper) { |
|
311 |
helper.compOpts.put("-verbose", ""); |
|
312 |
} |
|
313 |
}, |
|
314 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
315 |
XWERROR("-Xwerror", HIDDEN) { |
14543 | 316 |
@Override |
317 |
public void process(Helper helper) { |
|
318 |
helper.rejectWarnings = true; |
|
319 |
||
320 |
} |
|
321 |
}, |
|
322 |
||
323 |
// ----- other options ----- |
|
324 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
325 |
BREAKITERATOR("-breakiterator", STANDARD) { |
14543 | 326 |
@Override |
327 |
public void process(Helper helper) { |
|
328 |
helper.breakiterator = true; |
|
329 |
} |
|
330 |
}, |
|
331 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
332 |
LOCALE("-locale", STANDARD, true) { |
14543 | 333 |
@Override |
334 |
public void process(Helper helper, String arg) { |
|
335 |
helper.docLocale = arg; |
|
336 |
} |
|
337 |
}, |
|
338 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
339 |
XCLASSES("-Xclasses", HIDDEN) { |
14543 | 340 |
@Override |
341 |
public void process(Helper helper) { |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
342 |
helper.jdtoolOpts.put(XCLASSES, true); |
14543 | 343 |
} |
344 |
}, |
|
345 |
||
41451 | 346 |
DUMPONERROR("--dump-on-error", HIDDEN) { |
347 |
@Override |
|
348 |
public void process(Helper helper) { |
|
349 |
helper.dumpOnError = true; |
|
350 |
} |
|
351 |
}, |
|
352 |
||
14543 | 353 |
// ----- help options ----- |
354 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
355 |
HELP("--help -help", STANDARD) { |
14543 | 356 |
@Override |
41451 | 357 |
public void process(Helper helper) throws OptionException { |
358 |
throw new OptionException(OK, helper::usage); |
|
14543 | 359 |
} |
360 |
}, |
|
361 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
362 |
X("-X", STANDARD) { |
14543 | 363 |
@Override |
41451 | 364 |
public void process(Helper helper) throws OptionException { |
365 |
throw new OptionException(OK, helper::Xusage); |
|
14543 | 366 |
} |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
367 |
}, |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
368 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
369 |
// This option exists only for the purpose of documenting itself. |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
370 |
// It's actually implemented by the launcher. |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
371 |
J("-J", STANDARD, true) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
372 |
@Override |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
373 |
public void process(Helper helper) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
374 |
throw new AssertionError("the -J flag should be caught by the launcher."); |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
375 |
} |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
376 |
}, |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
377 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
378 |
// This option exists only for the purpose of documenting itself. |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
379 |
// It's actually implemented ahead of the normal option decoding loop. |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
380 |
Xold("-Xold", EXTENDED) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
381 |
@Override |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
382 |
public void process(Helper helper) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
383 |
throw new AssertionError("the -Xold flag should be handled earlier."); |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
384 |
} |
14543 | 385 |
}; |
386 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
387 |
public final String primaryName; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
388 |
public final List<String> names; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
389 |
public final OptionKind kind; |
14543 | 390 |
public final boolean hasArg; |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
391 |
public final boolean hasSuffix; // ex: foo:bar or -foo=bar |
14543 | 392 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
393 |
ToolOption(String opt, OptionKind kind) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
394 |
this(opt, kind, false); |
14543 | 395 |
} |
396 |
||
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
397 |
ToolOption(String names, OptionKind kind, boolean hasArg) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
398 |
this.names = Arrays.asList(names.split("\\s+")); |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
399 |
this.primaryName = this.names.get(0); |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
400 |
this.kind = kind; |
14543 | 401 |
this.hasArg = hasArg; |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
402 |
char lastChar = names.charAt(names.length() - 1); |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
403 |
this.hasSuffix = lastChar == ':' || lastChar == '='; |
14543 | 404 |
} |
405 |
||
41451 | 406 |
void process(Helper helper, String arg) throws OptionException { } |
14543 | 407 |
|
41451 | 408 |
void process(Helper helper) throws OptionException { } |
14543 | 409 |
|
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
410 |
List<String> getNames() { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
411 |
return names; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
412 |
} |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
413 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
414 |
String getParameters(Messager messager) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
415 |
return (hasArg || primaryName.endsWith(":")) |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
416 |
? messager.getText(getKey(primaryName, ".arg")) |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
417 |
: null; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
418 |
} |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
419 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
420 |
String getDescription(Messager messager) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
421 |
return messager.getText(getKey(primaryName, ".desc")); |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
422 |
} |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
423 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
424 |
private String getKey(String optionName, String suffix) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
425 |
return "main.opt." |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
426 |
+ optionName |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
427 |
.replaceAll("^-*", "") // remove leading '-' |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
428 |
.replaceAll("[^A-Za-z0-9]+$", "") // remove trailing non-alphanumeric |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
429 |
.replaceAll("[^A-Za-z0-9]", ".") // replace internal non-alphanumeric |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
430 |
+ suffix; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
431 |
} |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
432 |
|
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
433 |
|
14543 | 434 |
static ToolOption get(String name) { |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
435 |
String oname = name; |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
436 |
if (name.contains(":")) { |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
437 |
oname = name.substring(0, name.indexOf(':') + 1); |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
438 |
} else if (name.contains("=")) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
439 |
oname = name.substring(0, name.indexOf('=')); |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
440 |
} |
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
441 |
for (ToolOption o : values()) { |
41252
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
442 |
for (String n : o.names) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
443 |
if (oname.equals(n)) { |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
444 |
return o; |
058d83c9b1c7
8166144: New javadoc options don't conform to JEP 293 (GNU style options)
jjg
parents:
40762
diff
changeset
|
445 |
} |
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
446 |
} |
14543 | 447 |
} |
448 |
return null; |
|
449 |
} |
|
450 |
||
451 |
static abstract class Helper { |
|
452 |
||
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
453 |
// File manager options |
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
454 |
final Map<Option, String> fileManagerOpts = new LinkedHashMap<>(); |
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
455 |
|
14543 | 456 |
/** javac options, set by various options. */ |
457 |
Options compOpts; // = Options.instance(context) |
|
458 |
||
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
459 |
/** Javadoc tool options */ |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
460 |
final Map<ToolOption, Object> jdtoolOpts = new EnumMap<>(ToolOption.class); |
14543 | 461 |
|
41451 | 462 |
/** dump stack traces for debugging etc.*/ |
463 |
boolean dumpOnError = false; |
|
464 |
||
14543 | 465 |
/** Set by -breakiterator. */ |
466 |
boolean breakiterator = false; |
|
467 |
||
468 |
/** Set by -Xwerror. */ |
|
469 |
boolean rejectWarnings = false; |
|
470 |
||
471 |
/** Set by -prompt. */ |
|
472 |
boolean promptOnError; |
|
473 |
||
474 |
/** Set by -locale. */ |
|
475 |
String docLocale = ""; |
|
476 |
||
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
477 |
Helper() { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
478 |
populateDefaultAccessMap(); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
479 |
} |
14543 | 480 |
|
481 |
abstract void usage(); |
|
482 |
abstract void Xusage(); |
|
483 |
||
41451 | 484 |
abstract String getLocalizedMessage(String msg, Object... args); |
485 |
||
37393
a9ba8bd6697b
8152818: Javadoc must support module options supported by javac.
ksrini
parents:
36526
diff
changeset
|
486 |
abstract OptionHelper getOptionHelper(); |
14543 | 487 |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
488 |
@SuppressWarnings("unchecked") |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
489 |
void addToList(ToolOption opt, String delimiter, String str) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
490 |
List<String> list = (List<String>) jdtoolOpts.computeIfAbsent(opt, v -> new ArrayList<>()); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
491 |
list.addAll(Arrays.asList(str.split(delimiter))); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
492 |
jdtoolOpts.put(opt, list); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
493 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
494 |
|
41451 | 495 |
void setExpandRequires(ToolOption opt, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
496 |
switch (arg) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
497 |
case "public": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
498 |
jdtoolOpts.put(opt, AccessKind.PUBLIC); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
499 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
500 |
case "all": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
501 |
jdtoolOpts.put(opt, AccessKind.PRIVATE); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
502 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
503 |
default: |
41451 | 504 |
String text = getLocalizedMessage("main.illegal_option_value", arg); |
505 |
throw new IllegalOptionValue(this::usage, text); |
|
14543 | 506 |
} |
507 |
} |
|
508 |
||
41451 | 509 |
void setShowModuleContents(ToolOption opt, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
510 |
switch (arg) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
511 |
case "api": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
512 |
jdtoolOpts.put(opt, AccessKind.PUBLIC); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
513 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
514 |
case "all": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
515 |
jdtoolOpts.put(opt, AccessKind.PRIVATE); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
516 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
517 |
default: |
41451 | 518 |
String text = getLocalizedMessage("main.illegal_option_value", arg); |
519 |
throw new IllegalOptionValue(this::usage, text); |
|
14543 | 520 |
} |
521 |
} |
|
522 |
||
41451 | 523 |
void setShowPackageAccess(ToolOption opt, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
524 |
switch (arg) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
525 |
case "exported": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
526 |
jdtoolOpts.put(opt, AccessKind.PUBLIC); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
527 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
528 |
case "all": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
529 |
jdtoolOpts.put(opt, AccessKind.PRIVATE); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
530 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
531 |
default: |
41451 | 532 |
String text = getLocalizedMessage("main.illegal_option_value", arg); |
533 |
throw new IllegalOptionValue(this::usage, text); |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
534 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
535 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
536 |
|
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
537 |
|
41451 | 538 |
void setFilter(ToolOption opt, String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
539 |
jdtoolOpts.put(opt, getAccessValue(arg)); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
540 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
541 |
|
41451 | 542 |
void setSimpleFilter(String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
543 |
handleSimpleOption(arg); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
544 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
545 |
|
24897
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
546 |
void setFileManagerOpt(Option opt, String arg) { |
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
547 |
fileManagerOpts.put(opt, arg); |
655b72d7b96e
7026941: 199: path options ignored when reusing filemanager across tasks
jjg
parents:
22163
diff
changeset
|
548 |
} |
35426
374342e56a56
8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents:
31936
diff
changeset
|
549 |
|
41451 | 550 |
void handleSimpleOption(String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
551 |
populateSimpleAccessMap(getAccessValue(arg)); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
552 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
553 |
|
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
554 |
/* |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
555 |
* This method handles both the simple options -package, |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
556 |
* -private, so on, in addition to the new ones such as |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
557 |
* --show-types:public and so on. |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
558 |
*/ |
41451 | 559 |
private AccessKind getAccessValue(String arg) throws OptionException { |
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
560 |
int colon = arg.indexOf(':'); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
561 |
String value = (colon > 0) |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
562 |
? arg.substring(colon + 1) |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
563 |
: arg; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
564 |
switch (value) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
565 |
case "public": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
566 |
return AccessKind.PUBLIC; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
567 |
case "protected": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
568 |
return AccessKind.PROTECTED; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
569 |
case "package": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
570 |
return AccessKind.PACKAGE; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
571 |
case "private": |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
572 |
return AccessKind.PRIVATE; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
573 |
default: |
41451 | 574 |
String text = getLocalizedMessage("main.illegal_option_value", value); |
575 |
throw new IllegalOptionValue(this::usage, text); |
|
40508
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
576 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
577 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
578 |
|
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
579 |
/* |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
580 |
* Sets the entire kind map to PROTECTED this is the default. |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
581 |
*/ |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
582 |
private void populateDefaultAccessMap() { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
583 |
populateSimpleAccessMap(AccessKind.PROTECTED); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
584 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
585 |
|
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
586 |
/* |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
587 |
* This sets access to all the allowed kinds in the |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
588 |
* access map. |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
589 |
*/ |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
590 |
void populateSimpleAccessMap(AccessKind accessValue) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
591 |
for (ElementKind kind : ElementsTable.ModifierFilter.ALLOWED_KINDS) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
592 |
switch (kind) { |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
593 |
case METHOD: |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
594 |
jdtoolOpts.put(SHOW_MEMBERS, accessValue); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
595 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
596 |
case CLASS: |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
597 |
jdtoolOpts.put(SHOW_TYPES, accessValue); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
598 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
599 |
case PACKAGE: |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
600 |
jdtoolOpts.put(SHOW_PACKAGES, accessValue); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
601 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
602 |
case MODULE: |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
603 |
jdtoolOpts.put(SHOW_MODULE_CONTENTS, accessValue); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
604 |
break; |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
605 |
default: |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
606 |
throw new AssertionError("unknown element kind:" + kind); |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
607 |
} |
74ef30d16fb9
8159305: Enhance the javadoc tool to support module related options
ksrini
parents:
40308
diff
changeset
|
608 |
} |
35426
374342e56a56
8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents:
31936
diff
changeset
|
609 |
} |
14543 | 610 |
} |
611 |
} |