1 /*
2 * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
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.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332 8182765
27 * 8187288
28 * @summary Make sure that type annotations are displayed correctly
29 * @author Bhavesh Patel
30 * @library ../../lib
31 * @modules jdk.javadoc/jdk.javadoc.internal.tool
32 * @build javadoc.tester.*
33 * @run main TestTypeAnnotations
34 */
35
36 import javadoc.tester.JavadocTester;
37
38 public class TestTypeAnnotations extends JavadocTester {
39
40 public static void main(String... args) throws Exception {
41 TestTypeAnnotations tester = new TestTypeAnnotations();
42 tester.runTests();
43 }
44
45 @Test
46 public void test() {
47 javadoc("-d", "out",
48 "-sourcepath", testSrc,
49 "-private",
50 "typeannos");
51 checkExit(Exit.OK);
52
53 // Test for type annotations on Class Extends (ClassExtends.java).
54 checkOutput("typeannos/MyClass.html", true,
55 "extends <a href=\"ClassExtA.html\" title=\"annotation "
56 + "in typeannos\">@ClassExtA</a> <a href=\"ParameterizedClass.html\" "
57 + "title=\"class in typeannos\">ParameterizedClass</a><<a href=\""
58 + "ClassExtB.html\" title=\"annotation in typeannos\">"
59 + "@ClassExtB</a> java.lang.String>",
60
61 "implements <a href=\"ClassExtB.html\" title=\""
62 + "annotation in typeannos\">@ClassExtB</a> java.lang.CharSequence, "
63 + "<a href=\"ClassExtA.html\" title=\"annotation in "
64 + "typeannos\">@ClassExtA</a> <a href=\"ParameterizedInterface.html\" "
65 + "title=\"interface in typeannos\">ParameterizedInterface</a><"
66 + "<a href=\"ClassExtB.html\" title=\"annotation in "
67 + "typeannos\">@ClassExtB</a> java.lang.String></pre>");
68
69 checkOutput("typeannos/MyInterface.html", true,
70 "extends <a href=\"ClassExtA.html\" title=\"annotation "
71 + "in typeannos\">@ClassExtA</a> <a href=\""
72 + "ParameterizedInterface.html\" title=\"interface in typeannos\">"
73 + "ParameterizedInterface</a><<a href=\"ClassExtA.html\" "
74 + "title=\"annotation in typeannos\">@ClassExtA</a> java.lang.String>, "
75 + "<a href=\"ClassExtB.html\" title=\"annotation in "
76 + "typeannos\">@ClassExtB</a> java.lang.CharSequence</pre>");
77
78 // Test for type annotations on Class Parameters (ClassParameters.java).
79 checkOutput("typeannos/ExtendsBound.html", true,
80 "class <span class=\"typeNameLabel\">ExtendsBound<K extends <a "
81 + "href=\"ClassParamA.html\" title=\"annotation in "
82 + "typeannos\">@ClassParamA</a> java.lang.String></span>");
83
84 checkOutput("typeannos/ExtendsGeneric.html", true,
85 "<pre>class <span class=\"typeNameLabel\">ExtendsGeneric<K extends "
86 + "<a href=\"ClassParamA.html\" title=\"annotation in "
87 + "typeannos\">@ClassParamA</a> <a href=\"Unannotated.html\" "
88 + "title=\"class in typeannos\">Unannotated</a><<a href=\""
89 + "ClassParamB.html\" title=\"annotation in typeannos\">"
90 + "@ClassParamB</a> java.lang.String>></span>");
91
92 checkOutput("typeannos/TwoBounds.html", true,
93 "<pre>class <span class=\"typeNameLabel\">TwoBounds<K extends <a href=\""
94 + "ClassParamA.html\" title=\"annotation in typeannos\">"
95 + "@ClassParamA</a> java.lang.String,V extends <a href=\""
96 + "ClassParamB.html\" title=\"annotation in typeannos\">@ClassParamB"
97 + "</a> java.lang.String></span>");
98
99 checkOutput("typeannos/Complex1.html", true,
100 "class <span class=\"typeNameLabel\">Complex1<K extends <a href=\""
101 + "ClassParamA.html\" title=\"annotation in typeannos\">"
102 + "@ClassParamA</a> java.lang.String & java.lang.Runnable></span>");
103
104 checkOutput("typeannos/Complex2.html", true,
105 "class <span class=\"typeNameLabel\">Complex2<K extends java.lang."
106 + "String & <a href=\"ClassParamB.html\" title=\""
107 + "annotation in typeannos\">@ClassParamB</a> java.lang.Runnable></span>");
108
109 checkOutput("typeannos/ComplexBoth.html", true,
110 "class <span class=\"typeNameLabel\">ComplexBoth<K extends <a href=\""
111 + "ClassParamA.html\" title=\"annotation in typeannos\""
112 + ">@ClassParamA</a> java.lang.String & <a href=\""
113 + "ClassParamA.html\" title=\"annotation in typeannos\">@ClassParamA"
114 + "</a> java.lang.Runnable></span>");
115
116 // Test for type annotations on fields (Fields.java).
117 checkOutput("typeannos/DefaultScope.html", true,
118 "<pre><a href=\"Parameterized.html\" title=\"class in "
119 + "typeannos\">Parameterized</a><<a href=\"FldA.html\" "
120 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,<a "
121 + "href=\"FldB.html\" title=\"annotation in typeannos\">"
122 + "@FldB</a> java.lang.String> bothTypeArgs</pre>",
123
124 "<pre><a href=\"FldA.html\" title=\"annotation in "
125 + "typeannos\">@FldA</a> java.lang.String <a href=\""
126 + "FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] "
127 + "array1Deep</pre>",
128
129 "<pre>java.lang.String <a href=\"FldB.html\" "
130 + "title=\"annotation in typeannos\">@FldB</a> [][] array2SecondOld</pre>",
131
132 // When JDK-8068737, we should change the order
133 "<pre><a href=\"FldD.html\" title=\"annotation in typeannos\">"
134 + "@FldD</a> java.lang.String "
135 + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> "
136 + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] "
137 + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> "
138 + "<a href=\"FldA.html\" title=\"annotation in typeannos\">@FldA</a> [] "
139 + "array2Deep</pre>");
140
141 checkOutput("typeannos/ModifiedScoped.html", true,
142 "<pre>public final <a href=\"Parameterized.html\" "
143 + "title=\"class in typeannos\">Parameterized</a><<a href=\""
144 + "FldA.html\" title=\"annotation in typeannos\">@FldA</a> "
145 + "<a href=\"Parameterized.html\" title=\"class in "
146 + "typeannos\">Parameterized</a><<a href=\"FldA.html\" "
147 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,<a "
148 + "href=\"FldB.html\" title=\"annotation in typeannos\">"
149 + "@FldB</a> java.lang.String>,<a href=\"FldB.html\" "
150 + "title=\"annotation in typeannos\">@FldB</a> java.lang.String> "
151 + "nestedParameterized</pre>",
152
153 "<pre>public final <a href=\"FldA.html\" "
154 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String[][] "
155 + "array2</pre>");
156
157 // Test for type annotations on method return types (MethodReturnType.java).
158 checkOutput("typeannos/MtdDefaultScope.html", true,
159 "<pre class=\"methodSignature\">public <T> <a href=\"MRtnA.html\" "
160 + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String"
161 + " method()</pre>",
162
163 // When JDK-8068737 is fixed, we should change the order
164 "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in typeannos\">"
165 + "@MRtnA</a> java.lang.String "
166 + "<a href=\"MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> [] "
167 + "<a href=\"MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> []"
168 + " array2Deep()</pre>",
169
170 "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in "
171 + "typeannos\">@MRtnA</a> java.lang.String[][] array2()</pre>");
172
173 checkOutput("typeannos/MtdModifiedScoped.html", true,
174 "<pre class=\"methodSignature\">public final <a href=\"MtdParameterized.html\" "
175 + "title=\"class in typeannos\">MtdParameterized</a><<a href=\""
176 + "MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> "
177 + "<a href=\"MtdParameterized.html\" title=\"class in "
178 + "typeannos\">MtdParameterized</a><<a href=\"MRtnA."
179 + "html\" title=\"annotation in typeannos\">@MRtnA</a> java.lang."
180 + "String,<a href=\"MRtnB.html\" title=\"annotation in "
181 + "typeannos\">@MRtnB</a> java.lang.String>,<a href=\""
182 + "MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> java."
183 + "lang.String> nestedMtdParameterized()</pre>");
184
185 // Test for type annotations on method type parameters (MethodTypeParameters.java).
186 checkOutput("typeannos/UnscopedUnmodified.html", true,
187 "<pre class=\"methodSignature\"><K extends <a href=\"MTyParamA.html\" title=\""
188 + "annotation in typeannos\">@MTyParamA</a> java.lang.String>"
189 + " void methodExtends()</pre>",
190
191 "<pre class=\"methodSignature\"><K extends <a href=\"MTyParamA.html\" title=\""
192 + "annotation in typeannos\">@MTyParamA</a> <a href=\""
193 + "MtdTyParameterized.html\" title=\"class in typeannos\">"
194 + "MtdTyParameterized</a><<a href=\"MTyParamB.html\" "
195 + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String"
196 + ">> void nestedExtends()</pre>");
197
198 checkOutput("typeannos/PublicModifiedMethods.html", true,
199 "<pre class=\"methodSignature\">public final <K extends <a href=\""
200 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
201 + "java.lang.String> void methodExtends()</pre>",
202
203 "<pre class=\"methodSignature\">public final <K extends <a href=\""
204 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
205 + "java.lang.String,V extends <a href=\"MTyParamA.html\" "
206 + "title=\"annotation in typeannos\">@MTyParamA</a> <a href=\""
207 + "MtdTyParameterized.html\" title=\"class in typeannos\">"
208 + "MtdTyParameterized</a><<a href=\"MTyParamB.html\" "
209 + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String"
210 + ">> \nvoid dual()</pre>");
211
212 // Test for type annotations on parameters (Parameters.java).
213 checkOutput("typeannos/Parameters.html", true,
214 "<pre class=\"methodSignature\">void unannotated(<a href=\""
215 + "ParaParameterized.html\" title=\"class in typeannos\">"
216 + "ParaParameterized</a><java.lang.String,java.lang.String>"
217 + " a)</pre>",
218
219 "<pre class=\"methodSignature\">void nestedParaParameterized(<a href=\""
220 + "ParaParameterized.html\" title=\"class in typeannos\">"
221 + "ParaParameterized</a><<a href=\"ParamA.html\" "
222 + "title=\"annotation in typeannos\">@ParamA</a> <a href=\""
223 + "ParaParameterized.html\" title=\"class in typeannos\">"
224 + "ParaParameterized</a><<a href=\"ParamA.html\" "
225 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String,"
226 + "<a href=\"ParamB.html\" title=\"annotation in "
227 + "typeannos\">@ParamB</a> java.lang.String>,<a href=\""
228 + "ParamB.html\" title=\"annotation in typeannos\">@ParamB"
229 + "</a> java.lang.String> a)</pre>",
230
231 // When JDK-8068737 is fixed, we should change the order
232 "<pre class=\"methodSignature\">void array2Deep(<a href=\"ParamA.html\" "
233 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String "
234 + "<a href=\"ParamB.html\" title=\"annotation in typeannos\">"
235 + "@ParamB</a> [] "
236 + "<a href=\"ParamA.html\" title=\"annotation in typeannos\">"
237 + "@ParamA</a> []"
238 + " a)</pre>");
239
240 // Test for type annotations on throws (Throws.java).
241 checkOutput("typeannos/ThrDefaultUnmodified.html", true,
242 "<pre class=\"methodSignature\">void oneException()\n"
243 + " throws <a href=\"ThrA.html\" title=\""
244 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
245
246 "<pre class=\"methodSignature\">void twoExceptions()\n"
247 + " throws <a href=\"ThrA.html\" title=\""
248 + "annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
249 + " <a href=\"ThrA.html\" title=\""
250 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
251
252 checkOutput("typeannos/ThrPublicModified.html", true,
253 "<pre class=\"methodSignature\">public final void oneException"
254 + "(java.lang.String a)\n throws <a href=\"ThrA.html\" "
255 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
256
257 "<pre class=\"methodSignature\">public final void twoExceptions"
258 + "(java.lang.String a)\n throws <a href=\"ThrA.html\" "
259 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
260 + " <a href=\"ThrA.html\" "
261 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
262
263 checkOutput("typeannos/ThrWithValue.html", true,
264 "<pre class=\"methodSignature\">void oneException()\n"
265 + " throws <a href=\"ThrB.html\" title=\""
266 + "annotation in typeannos\">@ThrB</a>("
267 + "\"m\") java.lang.Exception</pre>",
268
269 "<pre class=\"methodSignature\">void twoExceptions()\n"
270 + " throws <a href=\"ThrB.html\" title=\""
271 + "annotation in typeannos\">@ThrB</a>("
272 + "\"m\") java.lang.RuntimeException,\n"
273 + " <a href=\"ThrA.html\" title=\""
274 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
275
276 // Test for type annotations on type parameters (TypeParameters.java).
277 checkOutput("typeannos/TestMethods.html", true,
278 "<pre class=\"methodSignature\"><K,<a href=\"TyParaA.html\" title="
279 + "\"annotation in typeannos\">@TyParaA</a> V extends <a href=\"TyParaA.html\" "
280 + "title=\"annotation in typeannos\">@TyParaA</a> "
281 + "java.lang.String> void secondAnnotated()</pre>"
282 );
283
284 // Test for type annotations on wildcard type (Wildcards.java).
285 checkOutput("typeannos/BoundTest.html", true,
286 "<pre class=\"methodSignature\">void wcExtends(<a href=\"MyList.html\" "
287 + "title=\"class in typeannos\">MyList</a><? extends <a href=\""
288 + "WldA.html\" title=\"annotation in typeannos\">@WldA"
289 + "</a> java.lang.String> l)</pre>",
290
291 "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
292 + "typeannos\">MyList</a><? super <a href=\"WldA.html\" "
293 + "title=\"annotation in typeannos\">@WldA</a> java.lang.String>"
294 + " returnWcSuper()</pre>");
295
296 checkOutput("typeannos/BoundWithValue.html", true,
297 "<pre class=\"methodSignature\">void wcSuper(<a href=\"MyList.html\""
298 + " title=\"class in typeannos\">MyList</a><? super <a href=\""
299 + "WldB.html\" title=\"annotation in typeannos\">@WldB</a>("
300 + "\"m\") java.lang."
301 + "String> l)</pre>",
302
303 "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
304 + "typeannos\">MyList</a><? extends <a href=\"WldB."
305 + "html\" title=\"annotation in typeannos\">@WldB</a>("
306 + "\"m\") java.lang.String"
307 + "> returnWcExtends()</pre>");
308
309 // Test for receiver annotations (Receivers.java).
310 checkOutput("typeannos/DefaultUnmodified.html", true,
311 "<pre class=\"methodSignature\">void withException(<a href=\"RcvrA.html\" "
312 + "title=\"annotation in typeannos\">@RcvrA</a> "
313 + "DefaultUnmodified this)\n"
314 + " throws java."
315 + "lang.Exception</pre>",
316
317 "<pre class=\"methodSignature\">java.lang.String nonVoid(<a href=\"RcvrA."
318 + "html\" title=\"annotation in typeannos\">@RcvrA</a> <a href=\""
319 + "RcvrB.html\" title=\"annotation in typeannos\">@RcvrB"
320 + "</a>(\"m\")"
321 + " DefaultUnmodified this)</pre>",
322
323 "<pre class=\"methodSignature\"><T extends java.lang.Runnable> void accept("
324 + "<a href=\"RcvrA.html\" title=\"annotation in "
325 + "typeannos\">@RcvrA</a> DefaultUnmodified this,\n"
326 + " T r)\n"
327 + " throws java.lang.Exception</pre>");
328
329 checkOutput("typeannos/PublicModified.html", true,
330 "<pre class=\"methodSignature\">public final java.lang.String nonVoid"
331 + "(<a href=\"RcvrA.html\" title=\"annotation in typeannos\">"
332 + "@RcvrA</a> PublicModified this)</pre>",
333
334 "<pre class=\"methodSignature\">public final <T extends java.lang.Runnable> "
335 + "void accept(<a href=\"RcvrA.html\" title=\""
336 + "annotation in typeannos\">@RcvrA</a> PublicModified this,\n"
337 + " T r)\n"
338 + " throws java.lang.Exception</pre>");
339
340 checkOutput("typeannos/WithValue.html", true,
341 "<pre class=\"methodSignature\"><T extends java.lang.Runnable> void accept("
342 + "<a href=\"RcvrB.html\" title=\"annotation in "
343 + "typeannos\">@RcvrB</a>("
344 + "\"m\") WithValue this,\n"
345 + " T r)\n"
346 + " throws java.lang.Exception</pre>");
347
348 checkOutput("typeannos/WithFinal.html", true,
349 "<pre class=\"methodSignature\">java.lang.String nonVoid(<a href=\"RcvrB.html\" "
350 + "title=\"annotation in typeannos\">@RcvrB</a>(\"m\") "
351 + "<a href=\"WithFinal.html\" title=\"class in typeannos\">"
352 + "WithFinal</a> afield)</pre>");
353
354 checkOutput("typeannos/WithBody.html", true,
355 "<pre class=\"methodSignature\">void field(<a href=\"RcvrA.html\" title=\""
356 + "annotation in typeannos\">@RcvrA</a> WithBody this)</pre>");
357
358 checkOutput("typeannos/Generic2.html", true,
359 "<pre class=\"methodSignature\">void test2(<a href=\"RcvrA.html\" title=\""
360 + "annotation in typeannos\">@RcvrA</a> Generic2<X> this)</pre>");
361
362
363 // Test for repeated type annotations (RepeatedAnnotations.java).
364 checkOutput("typeannos/RepeatingAtClassLevel.html", true,
365 "<pre><a href=\"RepTypeA.html\" title=\"annotation in "
366 + "typeannos\">@RepTypeA</a> <a href=\"RepTypeA.html\" "
367 + "title=\"annotation in typeannos\">@RepTypeA</a>\n<a href="
368 + "\"RepTypeB.html\" title=\"annotation in typeannos\">"
369 + "@RepTypeB</a> <a href=\"RepTypeB.html\" title="
370 + "\"annotation in typeannos\">@RepTypeB</a>\nclass <span class="
371 + "\"typeNameLabel\">RepeatingAtClassLevel</span>\nextends "
372 + "java.lang.Object</pre>");
373
374 // @ignore 8146008
375 // checkOutput("typeannos/RepeatingAtClassLevel2.html", true,
376 // "<pre><a href=\"RepTypeUseA.html\" title=\"annotation "
377 // + "in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
378 // + "\" title=\"annotation in typeannos\">@RepTypeUseA</a>\n<a href="
379 // + "\"RepTypeUseB.html\" title=\"annotation in typeannos"
380 // + "\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
381 // + "title=\"annotation in typeannos\">@RepTypeUseB</a>\nclass <span "
382 // + "class=\"typeNameLabel\">RepeatingAtClassLevel2</span>\nextends "
383 // + "java.lang.Object</pre>");
384 //
385 // checkOutput("typeannos/RepeatingAtClassLevel2.html", true,
386 // "<pre><a href=\"RepAllContextsA.html\" title=\"annotation"
387 // + " in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
388 // + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href="
389 // + "\"RepAllContextsB.html\" title=\"annotation in typeannos"
390 // + "\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
391 // + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
392 // + "class <span class=\"typeNameLabel\">RepeatingAtClassLevel3</span>\n"
393 // + "extends java.lang.Object</pre>");
394
395 checkOutput("typeannos/RepeatingOnConstructor.html", true,
396 "<pre><a href=\"RepConstructorA.html\" title=\"annotation "
397 + "in typeannos\">@RepConstructorA</a> <a href=\"RepConstructorA.html"
398 + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href="
399 + "\"RepConstructorB.html\" title=\"annotation in typeannos"
400 + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html"
401 + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n"
402 + "RepeatingOnConstructor()</pre>",
403
404 "<pre><a href=\"RepConstructorA.html\" title=\"annotation in typeannos"
405 + "\">@RepConstructorA</a> <a href=\"RepConstructorA.html"
406 + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href="
407 + "\"RepConstructorB.html\" title=\"annotation in typeannos"
408 + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html"
409 + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n"
410 + "RepeatingOnConstructor(int i,\n int j)</pre>",
411
412 "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos"
413 + "\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
414 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n"
415 + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos"
416 + "\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
417 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
418 + "RepeatingOnConstructor(int i,\n int j,\n"
419 + " int k)</pre>",
420
421 "<pre>RepeatingOnConstructor(<a href=\"RepParameterA.html"
422 + "\" title=\"annotation in typeannos\">@RepParameterA</a> <a href="
423 + "\"RepParameterA.html\" title=\"annotation in typeannos"
424 + "\">@RepParameterA</a> <a href=\"RepParameterB.html"
425 + "\" title=\"annotation in typeannos\">@RepParameterB</a> "
426 + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos"
427 + "\">@RepParameterB</a>\n java.lang.String parameter,\n"
428 + " <a href=\"RepParameterA.html\" "
429 + "title=\"annotation in typeannos\">@RepParameterA</a> <a href="
430 + "\"RepParameterA.html\" title=\"annotation in typeannos\">"
431 + "@RepParameterA</a> <a href=\"RepParameterB.html\" "
432 + "title=\"annotation in typeannos\">@RepParameterB</a> <a href="
433 + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
434 + "@RepParameterB</a>\n java.lang.String "
435 + "<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
436 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" "
437 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
438 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">@RepTypeUseB</a> "
439 + "<a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
440 + "@RepTypeUseB</a> ... vararg)</pre>"
441 );
442
443 checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
444 "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E(java.lang.String,"
445 + "java.lang.String...)\">Inner</a></span>(java.lang.String parameter,\n"
446 + " java.lang.String <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
447 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
448 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
449 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
450 + "@RepTypeUseB</a> ... vararg)</code>",
451 "Inner(<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
452 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
453 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
454 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
455 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
456 + "@RepTypeUseB</a> RepeatingOnConstructor this,\n <a href="
457 + "\"RepParameterA.html\" title=\"annotation in typeannos\">"
458 + "@RepParameterA</a> <a href=\"RepParameterA.html\" title="
459 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterB.html"
460 + "\" title=\"annotation in typeannos\">@RepParameterB</a> <a href="
461 + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
462 + "@RepParameterB</a>\n java.lang.String parameter,\n"
463 + " <a href=\"RepParameterA.html\" title=\"annotation in typeannos\">"
464 + "@RepParameterA</a> <a href=\"RepParameterA.html\" title="
465 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterB.html"
466 + "\" title=\"annotation in typeannos\">@RepParameterB</a> <a href="
467 + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
468 + "@RepParameterB</a>\n java.lang.String <a href=\"RepTypeUseA.html"
469 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
470 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
471 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
472 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
473 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> ... vararg)");
474
475 checkOutput("typeannos/RepeatingOnField.html", true,
476 "<code>(package private) java.lang.Integer</code></td>\n<th class=\"colSecond\" scope=\"row\">"
477 + "<code><span class=\"memberNameLink\"><a href=\"#i1"
478 + "\">i1</a></span></code>",
479
480 "<code>(package private) <a href=\"RepTypeUseA.html\" "
481 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\""
482 + "RepTypeUseA.html\" title=\"annotation in typeannos\">"
483 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
484 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
485 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer</code></td>\n"
486 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
487 + "\"#i2\">i2</a></span></code>",
488
489 "<code>(package private) <a href=\"RepTypeUseA.html\" title="
490 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" "
491 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
492 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
493 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
494 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer</code>"
495 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
496 + "<a href=\"#i3\">i3</a></span></code>",
497
498 "<code>(package private) <a href=\"RepAllContextsA.html\" title=\""
499 + "annotation in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
500 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
501 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
502 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" title="
503 + "\"annotation in typeannos\">@RepAllContextsB</a> java.lang.Integer</code>"
504 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
505 + "<a href=\"#i4\">i4</a></span></code>",
506
507 "<code>(package private) java.lang.String <a href=\"RepTypeUseA.html"
508 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
509 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
510 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
511 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
512 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> [] <a href="
513 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
514 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
515 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
516 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
517 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
518 + "@RepTypeUseB</a> []</code></td>\n<th class=\"colSecond\" scope=\"row\"><code><span class="
519 + "\"memberNameLink\"><a href=\"#sa"
520 + "\">sa</a></span></code>",
521
522 "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">"
523 + "@RepFieldA</a> <a href=\"RepFieldA.html\" title="
524 + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html"
525 + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href="
526 + "\"RepFieldB.html\" title=\"annotation in typeannos\">"
527 + "@RepFieldB</a>\njava.lang.Integer i1</pre>",
528
529 "<pre><a href=\"RepTypeUseA.html\" title=\"annotation in typeannos"
530 + "\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
531 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> "
532 + "<a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
533 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
534 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i2</pre>",
535
536 "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">"
537 + "@RepFieldA</a> <a href=\"RepFieldA.html\" title="
538 + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html"
539 + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href="
540 + "\"RepFieldB.html\" title=\"annotation in typeannos\">"
541 + "@RepFieldB</a>\n<a href=\"RepTypeUseA.html\" title="
542 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
543 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
544 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
545 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
546 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i3</pre>",
547
548 "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
549 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
550 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href="
551 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
552 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
553 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
554 + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
555 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
556 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
557 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
558 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
559 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.Integer i4</pre>",
560
561 "<pre>java.lang.String <a href=\"RepTypeUseA.html\" title="
562 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
563 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
564 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
565 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
566 + "\"annotation in typeannos\">@RepTypeUseB</a> [] <a href="
567 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
568 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
569 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" "
570 + "title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
571 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
572 + "@RepTypeUseB</a> [] sa</pre>");
573
574 checkOutput("typeannos/RepeatingOnMethod.html", true,
575 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
576 + "<code><span class=\"memberNameLink\"><a href="
577 + "\"#test1()\">test1</a></span>()</code>",
578
579 "<code>(package private) <a href=\"RepTypeUseA.html\" "
580 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
581 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
582 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
583 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
584 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
585 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
586 + "<a href=\"#test2()\">test2</a>"
587 + "</span>()</code>",
588
589 "<code>(package private) <a href=\"RepTypeUseA.html\" "
590 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
591 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
592 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
593 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
594 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
595 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
596 + "<a href=\"#test3()\">test3</a>"
597 + "</span>()</code>",
598
599 "<code>(package private) <a href=\"RepAllContextsA.html\" "
600 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
601 + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
602 + "@RepAllContextsA</a> <a href=\"RepAllContextsB.html\" "
603 + "title=\"annotation in typeannos\">@RepAllContextsB</a> <a href="
604 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
605 + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
606 + "<code><span class=\"memberNameLink\"><a href=\""
607 + "#test4()\">test4</a></span>()</code>",
608
609 "<code><span class=\"memberNameLink\"><a href=\""
610 + "#test5(java.lang.String,java.lang.String...)\">test5</a></span>"
611 + "(java.lang.String parameter,\n java.lang.String <a href="
612 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
613 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
614 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
615 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
616 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
617 + "@RepTypeUseB</a> ... vararg)</code>",
618
619 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
620 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
621 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\""
622 + " title=\"annotation in typeannos\">@RepMethodB</a> <a href="
623 + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
624 + "@RepMethodB</a>\njava.lang.String test1()",
625
626 "<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
627 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
628 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" "
629 + "title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
630 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String test2()",
631
632 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
633 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
634 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\" "
635 + "title=\"annotation in typeannos\">@RepMethodB</a> <a href="
636 + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
637 + "@RepMethodB</a>\n<a href=\"RepTypeUseA.html\" title="
638 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" "
639 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
640 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
641 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
642 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String test3()",
643
644 "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
645 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
646 + "title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href="
647 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
648 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
649 + "title=\"annotation in typeannos\">@RepAllContextsB</a>\n<a href="
650 + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
651 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
652 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
653 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
654 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
655 + "title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.String test4()",
656
657 "java.lang.String test5(<a href=\"RepTypeUseA.html\" "
658 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
659 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
660 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
661 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
662 + "title=\"annotation in typeannos\">@RepTypeUseB</a> RepeatingOnMethod "
663 + "this,\n <a href=\"RepParameterA.html\" "
664 + "title=\"annotation in typeannos\">@RepParameterA</a> <a href="
665 + "\"RepParameterA.html\" title=\"annotation in typeannos\">"
666 + "@RepParameterA</a> <a href=\"RepParameterB.html\" "
667 + "title=\"annotation in typeannos\">@RepParameterB</a> <a href="
668 + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
669 + "@RepParameterB</a>\n java.lang.String parameter,\n"
670 + " <a href=\"RepParameterA.html\" title="
671 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterA.html\""
672 + " title=\"annotation in typeannos\">@RepParameterA</a> <a href="
673 + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
674 + "@RepParameterB</a> <a href=\"RepParameterB.html\" title="
675 + "\"annotation in typeannos\">@RepParameterB</a>\n "
676 + "java.lang.String <a href=\"RepTypeUseA.html\" title="
677 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" "
678 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
679 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
680 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title="
681 + "\"annotation in typeannos\">@RepTypeUseB</a> ... vararg)");
682
683 checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true,
684 "<code>(package private) <T> java.lang.String</code></td>\n"
685 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
686 + "\"#"
687 + "genericMethod(T)\">genericMethod</a></span>(T t)</code>",
688
689 "<code>(package private) <T> java.lang.String</code></td>\n"
690 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
691 + "\"#"
692 + "genericMethod2(T)\">genericMethod2</a></span>(<a href=\"RepTypeUseA.html"
693 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
694 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
695 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
696 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> T t)</code>",
697
698 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>"
699 + "<span class=\"memberNameLink\"><a href=\"#"
700 + "test()\">test</a></span>()</code>",
701
702 "java.lang.String test(<a href=\"RepTypeUseA.html\" "
703 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
704 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
705 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
706 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
707 + "title=\"annotation in typeannos\">@RepTypeUseB</a> "
708 + "RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod<<a href="
709 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
710 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
711 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
712 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
713 + "title=\"annotation in typeannos\">@RepTypeUseB</a> T> this)");
714
715 checkOutput("typeannos/RepeatingOnVoidMethodDeclaration.html", true,
716 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
717 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
718 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html"
719 + "\" title=\"annotation in typeannos\">@RepMethodB</a> <a href="
720 + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
721 + "@RepMethodB</a>\nvoid test()");
722 }
723 }
--- EOF ---