TestPackageElement.java revision 1465:b52a38d4536c
119304Speter/*
219304Speter * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
319304Speter * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
419304Speter *
519304Speter * This code is free software; you can redistribute it and/or modify it
619304Speter * under the terms of the GNU General Public License version 2 only, as
719304Speter * published by the Free Software Foundation.
819304Speter *
919304Speter * This code is distributed in the hope that it will be useful, but WITHOUT
1019304Speter * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1119304Speter * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1219304Speter * version 2 for more details (a copy is included in the LICENSE file that
1319304Speter * accompanied this code).
1419304Speter *
1519304Speter * You should have received a copy of the GNU General Public License version
1619304Speter * 2 along with this work; if not, write to the Free Software Foundation,
1719304Speter * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1819304Speter *
1919304Speter * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2019304Speter * or visit www.oracle.com if you need additional information or have any
2119304Speter * questions.
2219304Speter */
2319304Speter
2419304Speter/*
2519304Speter * @test
2619304Speter * @bug 6449798 6399404
2719304Speter * @summary Test basic workings of PackageElement
2819304Speter * @author  Joseph D. Darcy
2919304Speter * @library /tools/javac/lib
3019304Speter * @build   JavacTestingAbstractProcessor TestPackageElement
3119304Speter * @compile -processor TestPackageElement -proc:only TestPackageElement.java
3219304Speter */
33
34import java.util.Set;
35import javax.annotation.processing.*;
36import javax.lang.model.SourceVersion;
37import static javax.lang.model.SourceVersion.*;
38import javax.lang.model.element.*;
39import javax.lang.model.util.*;
40import static javax.lang.model.util.ElementFilter.*;
41import static javax.tools.Diagnostic.Kind.*;
42import static javax.tools.StandardLocation.*;
43
44/**
45 * Test basic workings of PackageElement.
46 */
47public class TestPackageElement extends JavacTestingAbstractProcessor {
48    public boolean process(Set<? extends TypeElement> annotations,
49                           RoundEnvironment roundEnv) {
50        if (!roundEnv.processingOver()) {
51            PackageElement unnamedPkg = eltUtils.getPackageElement("");
52
53            if (!unnamedPkg.getQualifiedName().contentEquals(""))
54                throw new RuntimeException("The unnamed package is named!");
55
56            // The next line tests an implementation detail upon which
57            // some diagnostics depend.
58            if (!unnamedPkg.toString().equals("unnamed package"))
59                throw new RuntimeException(
60                                "toString on unnamed package: " + unnamedPkg);
61
62            if (!unnamedPkg.isUnnamed())
63                throw new RuntimeException("The isUnnamed method on the unnamed package returned false!");
64
65            PackageElement javaLang = eltUtils.getPackageElement("java.lang");
66            if (javaLang.isUnnamed())
67                throw new RuntimeException("Package java.lang is unnamed!");
68        }
69        return true;
70    }
71}
72