LangVers.java revision 3233:b5d08bc0d224
1/*
2 * Copyright (c) 2003, 2015, 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 4909767
27 * @summary Verify that omitting Doclet.languageVersion() hides 1.5 language
28 *      features from the doclet.
29 * @ignore API, re-evaluate, unsure of this test.
30 * @modules jdk.javadoc
31 */
32
33import java.util.Collections;
34import java.util.List;
35import java.util.Set;
36
37import javax.lang.model.SourceVersion;
38
39import jdk.javadoc.doclet.Doclet;
40import jdk.javadoc.doclet.DocletEnvironment;
41
42public class LangVers implements Doclet {
43
44    public static void main(String[] args) {
45        String thisFile = "" +
46            new java.io.File(System.getProperty("test.src", "."),
47                             "LangVers.java");
48
49        String[] toolargs = {
50            "-doclet", "LangVers",
51            "-docletpath", System.getProperty("test.classes", "."),
52        };
53        if (jdk.javadoc.internal.tool.Main.execute(toolargs) != 0)
54            throw new Error("Javadoc encountered warnings or errors.");
55    }
56
57    public boolean run(DocletEnvironment root) {
58        ClassDoc fishdoc = root.classNamed("LangVers.Fish");
59        System.out.println(fishdoc);
60        if (fishdoc.isEnum()) {
61            throw new Error("Enums are not hidden.");
62        }
63
64        for (MethodDoc meth : fishdoc.methods()) {
65            System.out.println(meth);
66            if (meth.flatSignature().indexOf('<') >= 0) {
67                throw new Error("Type parameters are not hidden.");
68            }
69        }
70
71        return true;
72    }
73
74    public enum Fish {
75        One, Two, Red, Blue;
76
77        public void enroll(List<? super Fish> school) {
78            school.add(this);
79        }
80    }
81
82    @Override
83    public String getName() {
84        return "Test";
85    }
86
87    @Override
88    public Set<Option> getSupportedOptions() {
89        return Collections.emptySet();
90    }
91
92    @Override
93    public SourceVersion getSupportedSourceVersion() {
94        return SourceVersion.latest();
95    }
96}
97