--- a/langtools/make/Makefile-classic Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/make/Makefile-classic Sat Feb 18 16:12:28 2012 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2012 Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -115,7 +115,6 @@
JAVADOC_JAR = $(LIB_DIR)/javadoc.jar
JAVAH_JAR = $(LIB_DIR)/javah.jar
JAVAP_JAR = $(LIB_DIR)/javap.jar
-APT_JAR = $(LIB_DIR)/apt.jar
CLASSES_JAR = $(DIST_DIR)/classes.jar
SRC_ZIP = $(DIST_DIR)/src.zip
@@ -163,7 +162,7 @@
#----- useful macros
-TOOLS = javac javadoc javah javap apt
+TOOLS = javac javadoc javah javap
SOURCE_LEVEL = 5
BOOTSTRAP_TARGET_LEVEL = 5
@@ -319,28 +318,6 @@
( $(ECHO) Main-Class: sun.tools.javap.Main ) > $(BUILD_DIR)/javap.mf
$(BOOTJAR) -cfm $@ $(BUILD_DIR)/javap.mf $(patsubst %,-C $(CLASSES_DIR) %, $(JAVAP_DIRS))
-#----- apt
-
-APT_DIRS = \
- com/sun/mirror \
- com/sun/tools/apt
-
-APT_RESOURCE_FILES = \
- $(shell find $(patsubst %,$(SRC_CLASSES_DIR)/%,$(APT_DIRS)) -name SCCS -prune -o -name \*.properties -print )
-
-APT_JAVA_FILES = \
- $(shell find $(patsubst %,$(SRC_CLASSES_DIR)/%,$(APT_DIRS)) -name SCCS -prune -o -name \*.java -print ) \
- $(patsubst $(SRC_CLASSES_DIR)/%.properties,$(GENSRC_DIR)/%.java,$(APT_RESOURCE_FILES))
-
-$(APT_JAR): $(APT_JAVA_FILES) $(JAVAC_JAR) \
- $(patsubst $(SRC_CLASSES_DIR)/%.properties,$(GENSRC_DIR)/%.java,$(APT_RESOURCE_FILES))
- $(MKDIR) -p $(CLASSES_DIR) $(@D)
- $(BOOT_JAVAC) -sourcepath "" -classpath $(CLASSES_DIR) -d $(CLASSES_DIR) -target $(TARGET_LEVEL) $(NO_PROPRIETARY_API_WARNINGS) \
- $(APT_JAVA_FILES) \
- $(patsubst $(SRC_CLASSES_DIR)/%.properties,$(GENSRC_DIR)/%.java,$(APT_RESOURCE_FILES))
- ( $(ECHO) Main-Class: com.sun.tools.apt.Main ; $(ECHO) Class-Path: javac.jar ) > $(BUILD_DIR)/apt.mf
- $(BOOTJAR) -cfm $@ $(BUILD_DIR)/apt.mf $(patsubst %,-C $(CLASSES_DIR) %, $(APT_DIRS))
-
#-----
build-tools: $(BUILDTOOLCLASSES_DIR)/CompileProperties/CompileProperties.class
@@ -366,7 +343,7 @@
#----- all classes
-$(DIST_DIR)/%/classes.jar: $(JAVAC_JAR) $(JAVADOC_JAR) $(JAVAH_JAR) $(JAVAP_JAR) $(APT_JAR)
+$(DIST_DIR)/%/classes.jar: $(JAVAC_JAR) $(JAVADOC_JAR) $(JAVAH_JAR) $(JAVAP_JAR)
$(MKDIR) -p $(@D)
$(BOOTJAR) -cf $@ -C $(CLASSES_DIR) .
@@ -401,7 +378,6 @@
- $(TESTJAVA) -jar $(JAVADOC_JAR) -version
$(TESTJAVA) -jar $(JAVAH_JAR) -version
- $(TESTJAVA) -jar $(JAVAP_JAR) -version
- $(TESTJAVA) -jar $(APT_JAR) -version
#-----
--- a/langtools/make/build.properties Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/make/build.properties Sat Feb 18 16:12:28 2012 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -159,15 +159,6 @@
#
-apt.includes = \
- com/sun/mirror/ \
- com/sun/tools/apt/
-
-apt.tests = \
- tools/apt/
-
-#
-
# The following files require the latest JDK to be available.
# The API can be provided by using a suitable boot.java.home
# or by setting import.jdk
--- a/langtools/make/build.xml Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/make/build.xml Sat Feb 18 16:12:28 2012 -0800
@@ -83,7 +83,7 @@
- global property definitions
- general top level targets
- general diagnostic/debugging targets
- - groups of targets for each tool: javac, javadoc, doclets, javah, javap, apt
+ - groups of targets for each tool: javac, javadoc, doclets, javah, javap
Within each group, the following targets are provided, where applicable
build-bootstrap-TOOL build the bootstrap version of the tool
build-classes-TOOL build the classes for the tool
@@ -245,11 +245,11 @@
/>
<target name="build-all-tools"
- depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"
+ depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap"
/>
<target name="build-all-classes" depends="build-bootstrap-javac,-create-import-jdk-stubs">
- <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/>
+ <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes}"/>
</target>
<!-- clean -->
@@ -657,42 +657,6 @@
<!--
- **** apt targets.
- -->
-
- <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
- <build-bootstrap-classes includes="${apt.includes}"/>
- <build-bootstrap-jar name="apt" includes="${apt.includes}"
- jarclasspath="javac.jar"/>
- <build-bootstrap-tool name="apt"/>
- </target>
-
- <target name="build-apt" depends="build-javac,build-classes-apt">
- <build-jar name="apt" includes="${apt.includes}" jarclasspath="javac.jar"/>
- <build-tool name="apt"/>
- </target>
-
- <target name="build-classes-apt" depends="build-classes-javac">
- <build-classes includes="${apt.includes}"/>
- </target>
-
- <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
- <javadoc-tool name="apt" includes="${apt.includes}"/>
- </target>
-
-
- <target name="jtreg-apt" depends="build-apt,-def-jtreg">
- <jtreg-tool name="apt" tests="${apt.tests}"/>
- </target>
-
- <target name="findbugs-apt" depends="build-apt,-def-findbugs">
- <findbugs-tool name="apt"/>
- </target>
-
- <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
-
-
- <!--
**** Create import JDK stubs.
-->
@@ -967,7 +931,6 @@
<filename name="java/"/>
<filename name="javax/"/>
<filename name="com/sun/javadoc/"/>
- <filename name="com/sun/mirror/"/>
<filename name="com/sun/source/"/>
</or>
</packageset>
@@ -1005,7 +968,7 @@
samevm="@{samevm}" verbose="@{verbose}"
failonerror="false" resultproperty="jtreg.@{name}.result"
javacoptions="-g"
- vmoptions="${coverage.options} -Xbootclasspath/p:${coverage.classpath}:${build.classes.dir} @{jpda.jvmargs}">
+ vmoptions="${coverage.options} -Xbootclasspath/p:${coverage.classpath}${path.separator}${build.classes.dir} @{jpda.jvmargs}">
<arg line="@{keywords}"/>
<arg line="@{options}"/>
<arg line="@{tests}"/>
--- a/langtools/make/netbeans/README Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/make/netbeans/README Sat Feb 18 16:12:28 2012 -0800
@@ -7,7 +7,7 @@
repository.
The repository contains a number of tools:
- apt, javac, javadoc and its doclets, javah and javap.
+ javac, javadoc and its doclets, javah and javap.
Build Properties.
--- a/langtools/make/test/lib/apt.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @summary Verify the basic execution of the apt classes in classes.jar.
-
-TESTSRC=${TESTSRC:-.}
-TOPDIR=${TESTSRC}/../../..
-TESTJAVAEXE="${TESTJAVA:+${TESTJAVA}/bin/}java"
-
-"${TESTJAVAEXE}" -Xbootclasspath/p:${TOPDIR}/dist/lib/classes.jar \
- com.sun.tools.apt.Main \
- -print "${TESTSRC}"/../HelloWorld.java > apt.tmp
-
-if diff ${TESTSRC}/../HelloWorld.apt.gold.txt apt.tmp ; then
- echo "Test passed."
-else
- echo "Test failed."
- exit 1
-fi
--- a/langtools/make/test/lib/src.gold.txt Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/make/test/lib/src.gold.txt Sat Feb 18 16:12:28 2012 -0800
@@ -1,14 +1,4 @@
com/sun/javadoc/package.html
-com/sun/mirror/apt/package.html
-com/sun/mirror/declaration/package.html
-com/sun/mirror/overview.html
-com/sun/mirror/type/package.html
-com/sun/mirror/util/package.html
-com/sun/tools/apt/Main.java
-com/sun/tools/apt/main/Main.java
-com/sun/tools/apt/resources/apt.properties
-com/sun/tools/apt/resources/apt_ja.properties
-com/sun/tools/apt/resources/apt_zh_CN.properties
com/sun/tools/doclets/formats/html/markup/package.html
com/sun/tools/doclets/formats/html/package.html
com/sun/tools/doclets/formats/html/resources/standard.properties
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-
-import java.io.IOException;
-import java.util.Collection;
-
-
-/**
- * An annotation processor, used to examine and process the
- * annotations of program elements. An annotation processor may,
- * for example, create new source files and XML documents to be used
- * in conjunction with the original code.
- *
- * <p> An annotation processor is constructed by a
- * {@linkplain AnnotationProcessorFactory factory}, which provides it with an
- * {@linkplain AnnotationProcessorEnvironment environment} that
- * encapsulates the state it needs.
- * Messages regarding warnings and errors encountered during processing
- * should be directed to the environment's {@link Messager},
- * and new files may be created using the environment's {@link Filer}.
- *
- * <p> Each annotation processor is created to process annotations
- * of a particular annotation type or set of annotation types.
- * It may use its environment to find the program elements with
- * annotations of those types. It may freely examine any other program
- * elements in the course of its processing.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.Processor}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationProcessor {
-
- /**
- * Process all program elements supported by this annotation processor.
- */
- void process();
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-
-import java.util.Collection;
-import java.util.Map;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-
-
-/**
- * The environment encapsulating the state needed by an annotation processor.
- * An annotation processing tool makes this environment available
- * to all annotation processors.
- *
- * <p> When an annotation processing tool is invoked, it is given a
- * set of type declarations on which to operate. These
- * are refered to as the <i>specified</i> types.
- * The type declarations said to be <i>included</i> in this invocation
- * consist of the specified types and any types nested within them.
- *
- * <p> {@link DeclarationFilter}
- * provides a simple way to select just the items of interest
- * when a method returns a collection of declarations.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.ProcessingEnvironment}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationProcessorEnvironment {
-
- /**
- * Returns the options passed to the annotation processing tool.
- * Options are returned in the form of a map from option name
- * (such as <tt>"-encoding"</tt>) to option value.
- * For an option with no value (such as <tt>"-help"</tt>), the
- * corresponding value in the map is <tt>null</tt>.
- *
- * <p> Options beginning with <tt>"-A"</tt> are <i>processor-specific.</i>
- * Such options are unrecognized by the tool, but intended to be used by
- * some annotation processor.
- *
- * @return the options passed to the tool
- */
- Map<String,String> getOptions();
-
- /**
- * Returns the messager used to report errors, warnings, and other
- * notices.
- *
- * @return the messager
- */
- Messager getMessager();
-
- /**
- * Returns the filer used to create new source, class, or auxiliary
- * files.
- *
- * @return the filer
- */
- Filer getFiler();
-
-
- /**
- * Returns the declarations of the types specified when the
- * annotation processing tool was invoked.
- *
- * @return the types specified when the tool was invoked, or an
- * empty collection if there were none
- */
- Collection<TypeDeclaration> getSpecifiedTypeDeclarations();
-
- /**
- * Returns the declaration of a package given its fully qualified name.
- *
- * @param name fully qualified package name, or "" for the unnamed package
- * @return the declaration of the named package, or null if it cannot
- * be found
- */
- PackageDeclaration getPackage(String name);
-
- /**
- * Returns the declaration of a type given its fully qualified name.
- *
- * @param name fully qualified type name
- * @return the declaration of the named type, or null if it cannot be
- * found
- */
- TypeDeclaration getTypeDeclaration(String name);
-
- /**
- * A convenience method that returns the declarations of the types
- * {@linkplain AnnotationProcessorEnvironment <i>included</i>}
- * in this invocation of the annotation processing tool.
- *
- * @return the declarations of the types included in this invocation
- * of the tool, or an empty collection if there are none
- */
- Collection<TypeDeclaration> getTypeDeclarations();
-
- /**
- * Returns the declarations annotated with the given annotation type.
- * Only declarations of the types
- * {@linkplain AnnotationProcessorEnvironment <i>included</i>}
- * in this invocation of the annotation processing tool, or
- * declarations of members, parameters, or type parameters
- * declared within those, are returned.
- *
- * @param a annotation type being requested
- * @return the declarations annotated with the given annotation type,
- * or an empty collection if there are none
- */
- Collection<Declaration> getDeclarationsAnnotatedWith(
- AnnotationTypeDeclaration a);
-
- /**
- * Returns an implementation of some utility methods for
- * operating on declarations.
- *
- * @return declaration utilities
- */
- Declarations getDeclarationUtils();
-
- /**
- * Returns an implementation of some utility methods for
- * operating on types.
- *
- * @return type utilities
- */
- Types getTypeUtils();
-
- /**
- * Add a listener. If the listener is currently registered to listen,
- * adding it again will have no effect.
- *
- * @param listener The listener to add.
- * @throws NullPointerException if the listener is null
- */
- void addListener(AnnotationProcessorListener listener);
-
-
- /**
- * Remove a listener. If the listener is not currently listening,
- * the method call does nothing.
- *
- * @param listener The listener to remove.
- * @throws NullPointerException if the listener is null
- */
- void removeListener(AnnotationProcessorListener listener);
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-
-import java.util.Collection;
-import java.util.Set;
-
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-
-/**
- * A factory for creating annotation processors.
- * Each factory is responsible for creating processors for one or more
- * annotation types.
- * The factory is said to <i>support</i> these types.
- *
- * <p> Each implementation of an <tt>AnnotationProcessorFactory</tt>
- * must provide a public no-argument constructor to be used by tools to
- * instantiate the factory.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.Processor}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationProcessorFactory {
-
- /**
- * Returns the options recognized by this factory or by any of the
- * processors it may create.
- * Only {@linkplain AnnotationProcessorEnvironment#getOptions()
- * processor-specific} options are included, each of which begins
- * with <tt>"-A"</tt>. For example, if this factory recognizes
- * options such as <tt>-Adebug -Aloglevel=3</tt>, it will
- * return the strings <tt>"-Adebug"</tt> and <tt>"-Aloglevel"</tt>.
- *
- * <p> A tool might use this information to determine if any
- * options provided by a user are unrecognized by any processor,
- * in which case it may wish to report an error.
- *
- * @return the options recognized by this factory or by any of the
- * processors it may create, or an empty collection if none
- */
- Collection<String> supportedOptions();
-
- /**
- * Returns the names of the annotation types supported by this factory.
- * An element of the result may be the canonical (fully qualified) name
- * of a supported annotation type. Alternately it may be of the form
- * <tt>"<i>name</i>.*"</tt>
- * representing the set of all annotation types
- * with canonical names beginning with <tt>"<i>name</i>."</tt>
- * Finally, <tt>"*"</tt> by itself represents the set of all
- * annotation types.
- *
- * @return the names of the annotation types supported by this factory
- */
- Collection<String> supportedAnnotationTypes();
-
- /**
- * Returns an annotation processor for a set of annotation
- * types. The set will be empty if the factory supports
- * "<tt>*</tt>" and the specified type declarations have
- * no annotations. Note that the set of annotation types may be
- * empty for other reasons, such as giving the factory an
- * opportunity to register a listener. An
- * <tt>AnnotationProcessorFactory</tt> must gracefully handle an
- * empty set of annotations; an appropriate response to an empty
- * set will often be returning {@link AnnotationProcessors#NO_OP}.
- *
- * @param atds type declarations of the annotation types to be processed
- * @param env environment to use during processing
- * @return an annotation processor for the given annotation types,
- * or <tt>null</tt> if the types are not supported or the
- * processor cannot be created
- */
- AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env);
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-/**
- * Superinterface for all annotation processor event listeners.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. This interface has no
- * direct analog in the standardized API because the different round
- * model renders it unnecessary.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationProcessorListener extends java.util.EventListener {}
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessors.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-import com.sun.mirror.apt.*;
-import java.util.*;
-
-/**
- * Utilities to create specialized annotation processors.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. There is no direct analog
- * of the functionality of this class in the standardized API.
- *
- * @since 1.5
- * @author Joseph D. Darcy
- * @author Scott Seligman
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class AnnotationProcessors {
- static class NoOpAP implements AnnotationProcessor {
- NoOpAP() {}
- public void process(){}
- }
-
- /**
- * Combines multiple annotation processors into a simple composite
- * processor.
- * The composite processor functions by invoking each of its component
- * processors in sequence.
- */
- static class CompositeAnnotationProcessor implements AnnotationProcessor {
-
- private List<AnnotationProcessor> aps =
- new LinkedList<AnnotationProcessor>();
-
- /**
- * Constructs a new composite annotation processor.
- * @param aps the component annotation processors
- */
- public CompositeAnnotationProcessor(Collection<AnnotationProcessor> aps) {
- this.aps.addAll(aps);
- }
-
- /**
- * Constructs a new composite annotation processor.
- * @param aps the component annotation processors
- */
- public CompositeAnnotationProcessor(AnnotationProcessor... aps) {
- for(AnnotationProcessor ap: aps)
- this.aps.add(ap);
- }
-
- /**
- * Invokes the <tt>process</tt> method of each component processor,
- * in the order in which the processors were passed to the constructor.
- */
- public void process() {
- for(AnnotationProcessor ap: aps)
- ap.process();
- }
- }
-
-
- /**
- * An annotation processor that does nothing and has no state.
- * May be used multiple times.
- *
- * @since 1.5
- */
- public final static AnnotationProcessor NO_OP = new NoOpAP();
-
- /**
- * Constructs a new composite annotation processor. A composite
- * annotation processor combines multiple annotation processors
- * into one and functions by invoking each of its component
- * processors' process methods in sequence.
- *
- * @param aps The processors to create a composite of
- * @since 1.5
- */
- public static AnnotationProcessor getCompositeAnnotationProcessor(AnnotationProcessor... aps) {
- return new CompositeAnnotationProcessor(aps);
- }
-
- /**
- * Constructs a new composite annotation processor. A composite
- * annotation processor combines multiple annotation processors
- * into one and functions by invoking each of its component
- * processors' process methods in the sequence the processors are
- * returned by the collection's iterator.
- *
- * @param aps A collection of processors to create a composite of
- * @since 1.5
- */
- public static AnnotationProcessor getCompositeAnnotationProcessor(Collection<AnnotationProcessor> aps) {
- return new CompositeAnnotationProcessor(aps);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/Filer.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-
-import java.io.*;
-
-
-/**
- * This interface supports the creation of new files by an
- * annotation processor.
- * Files created in this way will be known to the annotation processing
- * tool implementing this interface, better enabling the tool to manage them.
- * Four kinds of files are distinguished:
- * source files, class files, other text files, and other binary files.
- * The latter two are collectively referred to as <i>auxiliary</i> files.
- *
- * <p> There are two distinguished locations (subtrees within the
- * file system) where newly created files are placed:
- * one for new source files, and one for new class files.
- * (These might be specified on a tool's command line, for example,
- * using flags such as <tt>-s</tt> and <tt>-d</tt>.)
- * Auxiliary files may be created in either location.
- *
- * <p> During each run of an annotation processing tool, a file
- * with a given pathname may be created only once. If that file already
- * exists before the first attempt to create it, the old contents will
- * be deleted. Any subsequent attempt to create the same file during
- * a run will fail.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.Filer}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface Filer {
-
- /**
- * Creates a new source file and returns a writer for it.
- * The file's name and path (relative to the root of all newly created
- * source files) is based on the type to be declared in that file.
- * If more than one type is being declared, the name of the principal
- * top-level type (the public one, for example) should be used.
- *
- * <p> The {@linkplain java.nio.charset.Charset charset} used to
- * encode the file is determined by the implementation.
- * An annotation processing tool may have an <tt>-encoding</tt>
- * flag or the like for specifying this. It will typically use
- * the platform's default encoding if none is specified.
- *
- * @param name canonical (fully qualified) name of the principal type
- * being declared in this file
- * @return a writer for the new file
- * @throws IOException if the file cannot be created
- */
- PrintWriter createSourceFile(String name) throws IOException;
-
- /**
- * Creates a new class file, and returns a stream for writing to it.
- * The file's name and path (relative to the root of all newly created
- * class files) is based on the name of the type being written.
- *
- * @param name canonical (fully qualified) name of the type being written
- * @return a stream for writing to the new file
- * @throws IOException if the file cannot be created
- */
- OutputStream createClassFile(String name) throws IOException;
-
- /**
- * Creates a new text file, and returns a writer for it.
- * The file is located along with either the
- * newly created source or newly created binary files. It may be
- * named relative to some package (as are source and binary files),
- * and from there by an arbitrary pathname. In a loose sense, the
- * pathname of the new file will be the concatenation of
- * <tt>loc</tt>, <tt>pkg</tt>, and <tt>relPath</tt>.
- *
- * <p> A {@linkplain java.nio.charset.Charset charset} for
- * encoding the file may be provided. If none is given, the
- * charset used to encode source files
- * (see {@link #createSourceFile(String)}) will be used.
- *
- * @param loc location of the new file
- * @param pkg package relative to which the file should be named,
- * or the empty string if none
- * @param relPath final pathname components of the file
- * @param charsetName the name of the charset to use, or null if none
- * is being explicitly specified
- * @return a writer for the new file
- * @throws IOException if the file cannot be created
- */
- PrintWriter createTextFile(Location loc,
- String pkg,
- File relPath,
- String charsetName) throws IOException;
-
- /**
- * Creates a new binary file, and returns a stream for writing to it.
- * The file is located along with either the
- * newly created source or newly created binary files. It may be
- * named relative to some package (as are source and binary files),
- * and from there by an arbitrary pathname. In a loose sense, the
- * pathname of the new file will be the concatenation of
- * <tt>loc</tt>, <tt>pkg</tt>, and <tt>relPath</tt>.
- *
- * @param loc location of the new file
- * @param pkg package relative to which the file should be named,
- * or the empty string if none
- * @param relPath final pathname components of the file
- * @return a stream for writing to the new file
- * @throws IOException if the file cannot be created
- */
- OutputStream createBinaryFile(Location loc,
- String pkg,
- File relPath) throws IOException;
-
-
- /**
- * Locations (subtrees within the file system) where new files are created.
- *
- * @deprecated All components of this API have been superseded by
- * the standardized annotation processing API. The replacement
- * for the functionality of this enum is {@link
- * javax.tools.StandardLocation}.
- */
- @Deprecated
- enum Location {
- /** The location of new source files. */
- SOURCE_TREE,
- /** The location of new class files. */
- CLASS_TREE
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/Messager.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * A <tt>Messager</tt> provides the way for
- * an annotation processor to report error messages, warnings, and
- * other notices.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.Messager}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface Messager {
-
- /**
- * Prints an error message.
- * Equivalent to <tt>printError(null, msg)</tt>.
- * @param msg the message, or an empty string if none
- */
- void printError(String msg);
-
- /**
- * Prints an error message.
- * @param pos the position where the error occured, or null if it is
- * unknown or not applicable
- * @param msg the message, or an empty string if none
- */
- void printError(SourcePosition pos, String msg);
-
- /**
- * Prints a warning message.
- * Equivalent to <tt>printWarning(null, msg)</tt>.
- * @param msg the message, or an empty string if none
- */
- void printWarning(String msg);
-
- /**
- * Prints a warning message.
- * @param pos the position where the warning occured, or null if it is
- * unknown or not applicable
- * @param msg the message, or an empty string if none
- */
- void printWarning(SourcePosition pos, String msg);
-
- /**
- * Prints a notice.
- * Equivalent to <tt>printNotice(null, msg)</tt>.
- * @param msg the message, or an empty string if none
- */
- void printNotice(String msg);
-
- /**
- * Prints a notice.
- * @param pos the position where the noticed occured, or null if it is
- * unknown or not applicable
- * @param msg the message, or an empty string if none
- */
- void printNotice(SourcePosition pos, String msg);
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-/**
- * Event for the completion of a round of annotation processing.
- *
- * <p>While this class extends the serializable <tt>EventObject</tt>, it
- * cannot meaningfully be serialized because all of the annotation
- * processing tool's internal state would potentially be needed.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. This class has no direct
- * analog in the standardized API because the different round model
- * renders it unnecessary.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public abstract class RoundCompleteEvent extends java.util.EventObject {
- private RoundState rs;
-
- /**
- * The current <tt>AnnotationProcessorEnvironment</tt> is regarded
- * as the source of events.
- *
- * @param source The source of events
- * @param rs The state of the round
- */
- protected RoundCompleteEvent(AnnotationProcessorEnvironment source,
- RoundState rs) {
- super(source);
- this.rs = rs;
- }
-
- /**
- * Return round state.
- */
- public RoundState getRoundState() {
- return rs;
- }
-
- /**
- * Return source.
- */
- public AnnotationProcessorEnvironment getSource() {
- return (AnnotationProcessorEnvironment)super.getSource();
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-/**
- * Listener for the completion of a round of annotation processing.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. This interface has no
- * direct analog in the standardized API because the different round
- * model renders it unnecessary.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface RoundCompleteListener extends AnnotationProcessorListener {
- /**
- * Invoked after all processors for a round have run to completion.
- *
- * @param event An event for round completion
- */
- void roundComplete(RoundCompleteEvent event);
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundState.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.apt;
-
-/**
- * Represents the status of a completed round of annotation processing.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.annotation.processing.RoundEnvironment}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface RoundState {
- /**
- * Returns <tt>true</tt> if this was the last round of annotation
- * processing; returns <tt>false</tt> if there will be a subsequent round.
- */
- boolean finalRound();
-
- /**
- * Returns <tt>true</tt> if an error was raised in this round of processing;
- * returns <tt>false</tt> otherwise.
- */
- boolean errorRaised();
-
- /**
- * Returns <tt>true</tt> if new source files were created in this round of
- * processing; returns <tt>false</tt> otherwise.
- */
- boolean sourceFilesCreated();
-
- /**
- * Returns <tt>true</tt> if new class files were created in this round of
- * processing; returns <tt>false</tt> otherwise.
- */
- boolean classFilesCreated();
-}
--- a/langtools/src/share/classes/com/sun/mirror/apt/package-info.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * Classes used to communicate information between {@linkplain
- * com.sun.mirror.apt.AnnotationProcessor annotation processors} and
- * an annotation processing tool.
- *
- * <p>The {@code apt} tool and its associated API have been superseded
- * by the standardized annotation processing API. The replacement for
- * the functionality in this package is {@link
- * javax.annotation.processing}.
- *
- * @since 1.5
- */
-package com.sun.mirror.apt;
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-import java.util.Map;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.util.SourcePosition;
-
-
-/**
- * Represents an annotation. An annotation associates a value with
- * each element of an annotation type.
- *
- * <p> Annotations should not be compared using reference-equality
- * ("<tt>==</tt>"). There is no guarantee that any particular
- * annotation will always be represented by the same object.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.AnnotationMirror}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationMirror {
-
- /**
- * Returns the annotation type of this annotation.
- *
- * @return the annotation type of this annotation
- */
- AnnotationType getAnnotationType();
-
- /**
- * Returns the source position of the beginning of this annotation.
- * Returns null if the position is unknown or not applicable.
- *
- * <p>This source position is intended for use in providing diagnostics,
- * and indicates only approximately where an annotation begins.
- *
- * @return the source position of the beginning of this annotation or
- * null if the position is unknown or not applicable
- */
- SourcePosition getPosition();
-
- /**
- * Returns this annotation's elements and their values.
- * This is returned in the form of a map that associates elements
- * with their corresponding values.
- * Only those elements and values explicitly present in the
- * annotation are included, not those that are implicitly assuming
- * their default values.
- * The order of the map matches the order in which the
- * elements appear in the annotation's source.
- *
- * @return this annotation's elements and their values,
- * or an empty map if there are none
- */
- Map<AnnotationTypeElementDeclaration, AnnotationValue> getElementValues();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-
-/**
- * Represents the declaration of an annotation type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.TypeElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationTypeDeclaration extends InterfaceDeclaration {
-
- /**
- * Returns the annotation type elements of this annotation type.
- * These are the methods that are directly declared in the type's
- * declaration.
- *
- * @return the annotation type elements of this annotation type,
- * or an empty collection if there are none
- */
- Collection<AnnotationTypeElementDeclaration> getMethods();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-/**
- * Represents an element of an annotation type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.ExecutableElement}.
- *
- * @author Joe Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationTypeElementDeclaration extends MethodDeclaration {
-
- /**
- * Returns the default value of this element.
- *
- * @return the default value of this element, or null if this element
- * has no default.
- */
- AnnotationValue getDefaultValue();
-
- /**
- * {@inheritDoc}
- */
- AnnotationTypeDeclaration getDeclaringType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * Represents a value of an annotation type element.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.AnnotationValue}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationValue {
-
- /**
- * Returns the value.
- * The result has one of the following types:
- * <ul><li> a wrapper class (such as {@link Integer}) for a primitive type
- * <li> {@code String}
- * <li> {@code TypeMirror}
- * <li> {@code EnumConstantDeclaration}
- * <li> {@code AnnotationMirror}
- * <li> {@code Collection<AnnotationValue>}
- * (representing the elements, in order, if the value is an array)
- * </ul>
- *
- * @return the value
- */
- Object getValue();
-
- /**
- * Returns the source position of the beginning of this annotation value.
- * Returns null if the position is unknown or not applicable.
- *
- * <p>This source position is intended for use in providing diagnostics,
- * and indicates only approximately where an annotation value begins.
- *
- * @return the source position of the beginning of this annotation value or
- * null if the position is unknown or not applicable
- */
- SourcePosition getPosition();
-
- /**
- * Returns a string representation of this value.
- * This is returned in a form suitable for representing this value
- * in the source code of an annotation.
- *
- * @return a string representation of this value
- */
- String toString();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.type.ClassType;
-
-
-/**
- * Represents the declaration of a class.
- * For the declaration of an interface, see {@link InterfaceDeclaration}.
- * Provides access to information about the class, its members, and
- * its constructors.
- * Note that an {@linkplain EnumDeclaration enum} is a kind of class.
- *
- * <p> While a <tt>ClassDeclaration</tt> represents the <i>declaration</i>
- * of a class, a {@link ClassType} represents a class <i>type</i>.
- * See {@link TypeDeclaration} for more on this distinction.
- *
- * <p> {@link com.sun.mirror.util.DeclarationFilter}
- * provides a simple way to select just the items of interest
- * when a method returns a collection of declarations.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.TypeElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @see ClassType
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ClassDeclaration extends TypeDeclaration {
-
- /**
- * Returns the class type directly extended by this class.
- * The only class with no superclass is <tt>java.lang.Object</tt>,
- * for which this method returns null.
- *
- * @return the class type directly extended by this class, or null
- * if there is none
- */
- ClassType getSuperclass();
-
- /**
- * Returns the constructors of this class.
- * This includes the default constructor if this class has
- * no constructors explicitly declared.
- *
- * @return the constructors of this class
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<ConstructorDeclaration> getConstructors();
-
- /**
- * {@inheritDoc}
- */
- Collection<MethodDeclaration> getMethods();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-/**
- * Represents a constructor of a class or interface.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.ExecutableElement}.
- *
- * @author Joe Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ConstructorDeclaration extends ExecutableDeclaration {
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/Declaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-/**
- * Represents the declaration of a program element such as a package,
- * class, or method. Each declaration represents a static, language-level
- * construct (and not, for example, a runtime construct of the virtual
- * machine), and typically corresponds one-to-one with a particular
- * fragment of source code.
- *
- * <p> Declarations should be compared using the {@link #equals(Object)}
- * method. There is no guarantee that any particular declaration will
- * always be represented by the same object.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.Element}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @see Declarations
- * @see TypeMirror
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface Declaration {
-
- /**
- * Tests whether an object represents the same declaration as this.
- *
- * @param obj the object to be compared with this declaration
- * @return <tt>true</tt> if the specified object represents the same
- * declaration as this
- */
- boolean equals(Object obj);
-
- /**
- * Returns the text of the documentation ("javadoc") comment of
- * this declaration.
- *
- * @return the documentation comment of this declaration, or <tt>null</tt>
- * if there is none
- */
- String getDocComment();
-
- /**
- * Returns the annotations that are directly present on this declaration.
- *
- * @return the annotations directly present on this declaration;
- * an empty collection if there are none
- */
- Collection<AnnotationMirror> getAnnotationMirrors();
-
- /**
- * Returns the annotation of this declaration having the specified
- * type. The annotation may be either inherited or directly
- * present on this declaration.
- *
- * <p> The annotation returned by this method could contain an element
- * whose value is of type <tt>Class</tt>.
- * This value cannot be returned directly: information necessary to
- * locate and load a class (such as the class loader to use) is
- * not available, and the class might not be loadable at all.
- * Attempting to read a <tt>Class</tt> object by invoking the relevant
- * method on the returned annotation
- * will result in a {@link MirroredTypeException},
- * from which the corresponding {@link TypeMirror} may be extracted.
- * Similarly, attempting to read a <tt>Class[]</tt>-valued element
- * will result in a {@link MirroredTypesException}.
- *
- * <blockquote>
- * <i>Note:</i> This method is unlike
- * others in this and related interfaces. It operates on run-time
- * reflective information -- representations of annotation types
- * currently loaded into the VM -- rather than on the mirrored
- * representations defined by and used throughout these
- * interfaces. It is intended for callers that are written to
- * operate on a known, fixed set of annotation types.
- * </blockquote>
- *
- * @param <A> the annotation type
- * @param annotationType the <tt>Class</tt> object corresponding to
- * the annotation type
- * @return the annotation of this declaration having the specified type
- *
- * @see #getAnnotationMirrors()
- */
- <A extends Annotation> A getAnnotation(Class<A> annotationType);
-
- /**
- * Returns the modifiers of this declaration, excluding annotations.
- * Implicit modifiers, such as the <tt>public</tt> and <tt>static</tt>
- * modifiers of interface members, are included.
- *
- * @return the modifiers of this declaration in undefined order;
- * an empty collection if there are none
- */
- Collection<Modifier> getModifiers();
-
- /**
- * Returns the simple (unqualified) name of this declaration.
- * The name of a generic type does not include any reference
- * to its formal type parameters.
- * For example, the simple name of the interface declaration
- * {@code java.util.Set<E>} is <tt>"Set"</tt>.
- * If this declaration represents the empty package, an empty
- * string is returned.
- * If it represents a constructor, the simple name of its
- * declaring class is returned.
- *
- * @return the simple name of this declaration
- */
- String getSimpleName();
-
- /**
- * Returns the source position of the beginning of this declaration.
- * Returns <tt>null</tt> if the position is unknown or not applicable.
- *
- * <p> This source position is intended for use in providing
- * diagnostics, and indicates only approximately where a declaration
- * begins.
- *
- * @return the source position of the beginning of this declaration,
- * or null if the position is unknown or not applicable
- */
- SourcePosition getPosition();
-
- /**
- * Applies a visitor to this declaration.
- *
- * @param v the visitor operating on this declaration
- */
- void accept(DeclarationVisitor v);
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-/**
- * Represents an enum constant declaration.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.VariableElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface EnumConstantDeclaration extends FieldDeclaration {
- /**
- * {@inheritDoc}
- */
- EnumDeclaration getDeclaringType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-
-/**
- * Represents the declaration of an enum type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.TypeElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface EnumDeclaration extends ClassDeclaration {
-
- /**
- * Returns the enum constants defined for this enum.
- *
- * @return the enum constants defined for this enum,
- * or an empty collection if there are none
- */
- Collection<EnumConstantDeclaration> getEnumConstants();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.type.ReferenceType;
-
-
-/**
- * Represents a method or constructor of a class or interface.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.ExecutableElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ExecutableDeclaration extends MemberDeclaration {
-
- /**
- * Returns <tt>true</tt> if this method or constructor accepts a variable
- * number of arguments.
- *
- * @return <tt>true</tt> if this method or constructor accepts a variable
- * number of arguments
- */
- boolean isVarArgs();
-
- /**
- * Returns the formal type parameters of this method or constructor.
- * They are returned in declaration order.
- *
- * @return the formal type parameters of this method or constructor,
- * or an empty collection if there are none
- */
- Collection<TypeParameterDeclaration> getFormalTypeParameters();
-
- /**
- * Returns the formal parameters of this method or constructor.
- * They are returned in declaration order.
- *
- * @return the formal parameters of this method or constructor,
- * or an empty collection if there are none
- */
- Collection<ParameterDeclaration> getParameters();
-
- /**
- * Returns the exceptions and other throwables listed in this
- * method or constructor's <tt>throws</tt> clause.
- *
- * @return the exceptions and other throwables listed in the
- * <tt>throws</tt> clause, or an empty collection if there are none
- */
- Collection<ReferenceType> getThrownTypes();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import com.sun.mirror.type.TypeMirror;
-
-
-/**
- * Represents a field of a type declaration.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.VariableElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface FieldDeclaration extends MemberDeclaration {
-
- /**
- * Returns the type of this field.
- *
- * @return the type of this field
- */
- TypeMirror getType();
-
- /**
- * Returns the value of this field if this field is a compile-time
- * constant. Returns <tt>null</tt> otherwise.
- * The value will be of a primitive type or <tt>String</tt>.
- * If the value is of a primitive type, it is wrapped in the
- * appropriate wrapper class (such as {@link Integer}).
- *
- * @return the value of this field if this field is a compile-time
- * constant, or <tt>null</tt> otherwise
- */
- Object getConstantValue();
-
- /**
- * Returns the text of a <i>constant expression</i> representing the
- * value of this field if this field is a compile-time constant.
- * Returns <tt>null</tt> otherwise.
- * The value will be of a primitive type or <tt>String</tt>.
- * The text returned is in a form suitable for representing the value
- * in source code.
- *
- * @return the text of a constant expression if this field is a
- * compile-time constant, or <tt>null</tt> otherwise
- */
- String getConstantExpression();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import com.sun.mirror.type.InterfaceType;
-
-
-/**
- * Represents the declaration of an interface.
- * Provides access to information about the interface and its members.
- * Note that an {@linkplain AnnotationTypeDeclaration annotation type} is
- * a kind of interface.
- *
- * <p> While an <tt>InterfaceDeclaration</tt> represents the
- * <i>declaration</i> of an interface, an {@link InterfaceType}
- * represents an interface <i>type</i>.
- * See {@link TypeDeclaration} for more on this distinction.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.TypeElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @see InterfaceType
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface InterfaceDeclaration extends TypeDeclaration {
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-/**
- * Represents a declaration that may be a member or constructor of a declared
- * type. This includes fields, constructors, methods, and (since they
- * may be nested) declared types themselves.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.Element}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface MemberDeclaration extends Declaration {
-
- /**
- * Returns the type declaration within which this member or constructor
- * is declared.
- * If this is the declaration of a top-level type (a non-nested class
- * or interface), returns null.
- *
- * @return the type declaration within which this member or constructor
- * is declared, or null if there is none
- */
- TypeDeclaration getDeclaringType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.type.VoidType;
-
-
-/**
- * Represents a method of a class or interface.
- * Note that an
- * {@linkplain AnnotationTypeElementDeclaration annotation type element}
- * is a kind of method.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.ExecutableElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface MethodDeclaration extends ExecutableDeclaration {
-
- /**
- * Returns the formal return type of this method.
- * Returns {@link VoidType} if this method does not return a value.
- *
- * @return the formal return type of this method
- */
- TypeMirror getReturnType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/Modifier.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-/**
- * Represents a modifier on the declaration of a program element such
- * as a class, method, or field.
- *
- * <p> Not all modifiers are applicable to all kinds of declarations.
- * When two or more modifiers appear in the source code of a declaration,
- * then it is customary, though not required, that they appear in the same
- * order as the constants listed in the detail section below.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this enum is {@link javax.lang.model.element.Modifier}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public enum Modifier {
-
- // See JLS2 sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1.
- // java.lang.reflect.Modifier includes INTERFACE, but that's a VMism.
-
- /** The modifier <tt>public</tt> */ PUBLIC,
- /** The modifier <tt>protected</tt> */ PROTECTED,
- /** The modifier <tt>private</tt> */ PRIVATE,
- /** The modifier <tt>abstract</tt> */ ABSTRACT,
- /** The modifier <tt>static</tt> */ STATIC,
- /** The modifier <tt>final</tt> */ FINAL,
- /** The modifier <tt>transient</tt> */ TRANSIENT,
- /** The modifier <tt>volatile</tt> */ VOLATILE,
- /** The modifier <tt>synchronized</tt> */ SYNCHRONIZED,
- /** The modifier <tt>native</tt> */ NATIVE,
- /** The modifier <tt>strictfp</tt> */ STRICTFP;
-
-
- private String lowercase = null; // modifier name in lowercase
-
- /**
- * Returns this modifier's name in lowercase.
- */
- public String toString() {
- if (lowercase == null) {
- lowercase = name().toLowerCase(java.util.Locale.US);
- }
- return lowercase;
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-
-/**
- * Represents the declaration of a package. Provides access to information
- * about the package and its members.
- *
- * <p> {@link com.sun.mirror.util.DeclarationFilter}
- * provides a simple way to select just the items of interest
- * when a method returns a collection of declarations.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.PackageElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface PackageDeclaration extends Declaration {
-
- /**
- * Returns the fully qualified name of this package.
- * This is also known as the package's <i>canonical</i> name.
- *
- * @return the fully qualified name of this package, or the
- * empty string if this is the unnamed package
- */
- String getQualifiedName();
-
- /**
- * Returns the declarations of the top-level classes in this package.
- * Interfaces are not included, but enum types are.
- *
- * @return the declarations of the top-level classes in this package
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<ClassDeclaration> getClasses();
-
- /**
- * Returns the declarations of the top-level enum types in this package.
- *
- * @return the declarations of the top-level enum types in this package
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<EnumDeclaration> getEnums();
-
- /**
- * Returns the declarations of the top-level interfaces in this package.
- * Annotation types are included.
- *
- * @return the declarations of the top-level interfaces in this package
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<InterfaceDeclaration> getInterfaces();
-
- /**
- * Returns the declarations of the top-level annotation types in this
- * package.
- *
- * @return the declarations of the top-level annotation types in this
- * package
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<AnnotationTypeDeclaration> getAnnotationTypes();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import com.sun.mirror.type.TypeMirror;
-
-
-/**
- * Represents a formal parameter of a method or constructor.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.VariableElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ParameterDeclaration extends Declaration {
-
- /**
- * Returns the type of this parameter.
- *
- * @return the type of this parameter
- */
- TypeMirror getType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.type.*;
-
-
-/**
- * Represents the declaration of a class or interface.
- * Provides access to information about the type and its members.
- * Note that an {@linkplain EnumDeclaration enum} is a kind of class,
- * and an {@linkplain AnnotationTypeDeclaration annotation type} is
- * a kind of interface.
- *
- * <p> <a name="DECL_VS_TYPE"></a>
- * While a <tt>TypeDeclaration</tt> represents the <i>declaration</i>
- * of a class or interface, a {@link DeclaredType} represents a class
- * or interface <i>type</i>, the latter being a use
- * (or <i>invocation</i>) of the former.
- * The distinction is most apparent with generic types,
- * for which a single declaration can define a whole
- * family of types. For example, the declaration of
- * {@code java.util.Set} corresponds to the parameterized types
- * {@code java.util.Set<String>} and {@code java.util.Set<Number>}
- * (and many others), and to the raw type {@code java.util.Set}.
- *
- * <p> {@link com.sun.mirror.util.DeclarationFilter}
- * provides a simple way to select just the items of interest
- * when a method returns a collection of declarations.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.element.TypeElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @see DeclaredType
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface TypeDeclaration extends MemberDeclaration {
-
- /**
- * Returns the package within which this type is declared.
- *
- * @return the package within which this type is declared
- */
- PackageDeclaration getPackage();
-
- /**
- * Returns the fully qualified name of this class or interface
- * declaration. More precisely, it returns the <i>canonical</i>
- * name.
- * The name of a generic type does not include any reference
- * to its formal type parameters.
- * For example, the the fully qualified name of the interface declaration
- * {@code java.util.Set<E>} is <tt>"java.util.Set"</tt>.
- *
- * @return the fully qualified name of this class or interface declaration
- */
- String getQualifiedName();
-
- /**
- * Returns the formal type parameters of this class or interface.
- *
- * @return the formal type parameters, or an empty collection
- * if there are none
- */
- Collection<TypeParameterDeclaration> getFormalTypeParameters();
-
- /**
- * Returns the interface types directly implemented by this class
- * or extended by this interface.
- *
- * @return the interface types directly implemented by this class
- * or extended by this interface, or an empty collection if there are none
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<InterfaceType> getSuperinterfaces();
-
- /**
- * Returns the fields that are directly declared by this class or
- * interface. Includes enum constants.
- *
- * @return the fields that are directly declared,
- * or an empty collection if there are none
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<FieldDeclaration> getFields();
-
- /**
- * Returns the methods that are directly declared by this class or
- * interface. Includes annotation type elements. Excludes
- * implicitly declared methods of an interface, such as
- * <tt>toString</tt>, that correspond to the methods of
- * <tt>java.lang.Object</tt>.
- *
- * @return the methods that are directly declared,
- * or an empty collection if there are none
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<? extends MethodDeclaration> getMethods();
-
- /**
- * Returns the declarations of the nested classes and interfaces
- * that are directly declared by this class or interface.
- *
- * @return the declarations of the nested classes and interfaces,
- * or an empty collection if there are none
- *
- * @see com.sun.mirror.util.DeclarationFilter
- */
- Collection<TypeDeclaration> getNestedTypes();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.type.*;
-
-
-/**
- * Represents a formal type parameter of a generic type, method,
- * or constructor declaration.
- * A type parameter declares a {@link TypeVariable}.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.TypeParameterElement}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface TypeParameterDeclaration extends Declaration {
-
- /**
- * Returns the bounds of this type parameter.
- * These are the types given by the <i>extends</i> clause.
- * If there is no explicit <i>extends</i> clause, then
- * <tt>java.lang.Object</tt> is considered to be the sole bound.
- *
- * @return the bounds of this type parameter
- */
- Collection<ReferenceType> getBounds();
-
- /**
- * Returns the type, method, or constructor declaration within which
- * this type parameter is declared.
- *
- * @return the declaration within which this type parameter is declared
- */
- Declaration getOwner();
-}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/package-info.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * Interfaces used to model program element declarations. A
- * declaration is represented by the appropriate subinterface of
- * {@link com.sun.mirror.declaration.Declaration}, and an annotation
- * is represented as an {@link
- * com.sun.mirror.declaration.AnnotationMirror}.
- *
- * <p>The {@code apt} tool and its associated API have been superseded
- * by the standardized annotation processing API. The replacement for
- * the functionality in this package is {@link
- * javax.lang.model.element}.
- *
- * @since 1.5
- */
-package com.sun.mirror.declaration;
--- a/langtools/src/share/classes/com/sun/mirror/overview.html Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-
-<body bgcolor="white">
-
-The Mirror API is used to model the semantic structure of a program.
-It provides representations of the entities
-declared in a program, such as classes, methods, and fields.
-Constructs below the method level, such as
-individual statements and expressions, are not represented.
-
-<p> Also included is support for writing
-{@linkplain com.sun.mirror.apt.AnnotationProcessor annotation processors}
-to examine and process the annotations
-of program elements. An annotation processor may, as an example, create
-new source files and XML documents to be used in conjunction with the
-original code.
-
-
-<h4> Characteristics of the API </h4>
-
-A program is represented at the language level, rather than at the
-level of the virtual machine. Nested classes, for example, are
-handled as first-class constructs,
-rather than in the translated form understood by the VM.
-Both source code and compiled code (class files) may be modeled
-in this way.
-
-<p> Programs are modeled in their static, or build-time, form.
-This differs from the {@linkplain java.lang.reflect reflection} API,
-which provides run-time information about classes and objects.
-
-<p> The API does not provide direct support for generating new code.
-
-
-<h4> Declarations and Types </h4>
-
-The mirror API represents program constructs principally through the
-{@link com.sun.mirror.declaration.Declaration} interface
-and its hierarchy of subinterfaces in the package {@link
-com.sun.mirror.declaration}. A <tt>Declaration</tt> represents a
-program element such as a package, class, or method.
-The interface hierarchy is depicted
-<a href="com/sun/mirror/declaration/package-tree.html"> here</a>.
-
-<p> Types are represented by the {@link com.sun.mirror.type.TypeMirror}
-interface and its hierarchy of subinterfaces in the
-package {@link com.sun.mirror.type}. Types include primitive types,
-class and interface types, array types, type variables, and wildcards.
-The interface hierarchy is depicted
-<a href="com/sun/mirror/type/package-tree.html"> here</a>.
-
-<p> The API makes a clear distinction between declarations and types.
-This is most significant for generic types, where a single declaration
-can define an infinite family of types. For example, the declaration of
-<tt>java.util.Set</tt> defines the raw type <tt>java.util.Set</tt>,
-the parameterized type {@code java.util.Set<String>},
-and much more. Only the declaration can be annotated, for example,
-and only a type can appear in a method signature.
-
-<p> A program being modeled may be incomplete, in that
-it may depend on an unknown class or interface type.
-This may be the result of a processing error such as a missing class file,
-or perhaps the missing type is to be created by an annotation processor.
-See {@link com.sun.mirror.type.DeclaredType} for information on
-how such unknown types are handled.
-
-
-<h4> Utilities and Tool Support </h4>
-
-The {@link com.sun.mirror.util} package provides
-utilities to assist in the processing of declarations and types.
-Included is support for using the visitor design pattern when
-operating on declaration and type objects.
-
-<p> The {@link com.sun.mirror.apt} package supports the writing
-of annotation processors. It provides the mechanism for them to
-interact with an annotation processing tool.
-
-
-@since 1.5
-
-</body>
-</html>
--- a/langtools/src/share/classes/com/sun/mirror/type/AnnotationType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-
-/**
- * Represents an annotation type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.DeclaredType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface AnnotationType extends InterfaceType {
-
- /**
- * {@inheritDoc}
- */
- AnnotationTypeDeclaration getDeclaration();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/ArrayType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-/**
- * Represents an array type.
- * A multidimensional array type is represented as an array type
- * whose component type is also an array type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.ArrayType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ArrayType extends ReferenceType {
-
- /**
- * Returns the component type of this array type.
- *
- * @return the component type of this array type
- */
- TypeMirror getComponentType();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/ClassType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * Represents a class type.
- * Interface types are represented separately by {@link InterfaceType}.
- * Note that an {@linkplain EnumType enum} is a kind of class.
- *
- * <p> While a {@link ClassDeclaration} represents the <i>declaration</i>
- * of a class, a <tt>ClassType</tt> represents a class <i>type</i>.
- * See {@link TypeDeclaration} for more on this distinction.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.DeclaredType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ClassType extends DeclaredType {
-
- /**
- * {@inheritDoc}
- */
- ClassDeclaration getDeclaration();
-
- /**
- * Returns the class type that is a direct supertype of this one.
- * This is the superclass of this type's declaring class, with any
- * type arguments substituted in.
- * The only class with no superclass is <tt>java.lang.Object</tt>,
- * for which this method returns <tt>null</tt>.
- *
- * <p> For example, the class type extended by
- * {@code java.util.TreeSet<String>} is
- * {@code java.util.AbstractSet<String>}.
- *
- * @return the class type that is a direct supertype of this one,
- * or <tt>null</tt> if there is none
- */
- ClassType getSuperclass();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/DeclaredType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.TypeDeclaration;
-
-
-/**
- * Represents a declared type, either a class type or an interface type.
- * This includes parameterized types such as {@code java.util.Set<String>}
- * as well as raw types.
- *
- * <p> While a <tt>TypeDeclaration</tt> represents the <i>declaration</i>
- * of a class or interface, a <tt>DeclaredType</tt> represents a class
- * or interface <i>type</i>, the latter being a use of the former.
- * See {@link TypeDeclaration} for more on this distinction.
- *
- * <p> A <tt>DeclaredType</tt> may represent a type
- * for which details (declaration, supertypes, <i>etc.</i>) are unknown.
- * This may be the result of a processing error, such as a missing class file,
- * and is indicated by {@link #getDeclaration()} returning <tt>null</tt>.
- * Other method invocations on such an unknown type will not, in general,
- * return meaningful results.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.DeclaredType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface DeclaredType extends ReferenceType {
-
- /**
- * Returns the declaration of this type.
- *
- * <p> Returns null if this type's declaration is unknown. This may
- * be the result of a processing error, such as a missing class file.
- *
- * @return the declaration of this type, or null if unknown
- */
- TypeDeclaration getDeclaration();
-
- /**
- * Returns the type that contains this type as a member.
- * Returns <tt>null</tt> if this is a top-level type.
- *
- * <p> For example, the containing type of {@code O.I<S>}
- * is the type {@code O}, and the containing type of
- * {@code O<T>.I<S>} is the type {@code O<T>}.
- *
- * @return the type that contains this type,
- * or <tt>null</tt> if this is a top-level type
- */
- DeclaredType getContainingType();
-
- /**
- * Returns (in order) the actual type arguments of this type.
- * For a generic type nested within another generic type
- * (such as {@code Outer<String>.Inner<Number>}), only the type
- * arguments of the innermost type are included.
- *
- * @return the actual type arguments of this type, or an empty collection
- * if there are none
- */
- Collection<TypeMirror> getActualTypeArguments();
-
- /**
- * Returns the interface types that are direct supertypes of this type.
- * These are the interface types implemented or extended
- * by this type's declaration, with any type arguments
- * substituted in.
- *
- * <p> For example, the interface type extended by
- * {@code java.util.Set<String>} is {@code java.util.Collection<String>}.
- *
- * @return the interface types that are direct supertypes of this type,
- * or an empty collection if there are none
- */
- Collection<InterfaceType> getSuperinterfaces();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/EnumType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.EnumDeclaration;
-
-
-/**
- * Represents an enum type.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.DeclaredType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface EnumType extends ClassType {
-
- /**
- * {@inheritDoc}
- */
- EnumDeclaration getDeclaration();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/InterfaceType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * Represents an interface type.
- * Note that an {@linkplain AnnotationType annotation type} is
- * a kind of interface.
- *
- * <p> While an {@link InterfaceDeclaration} represents the
- * <i>declaration</i> of an interface, an <tt>InterfaceType</tt>
- * represents an interface <i>type</i>.
- * See {@link TypeDeclaration} for more on this distinction.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.DeclaredType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface InterfaceType extends DeclaredType {
-
- /**
- * {@inheritDoc}
- */
- InterfaceDeclaration getDeclaration();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/MirroredTypeException.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import java.lang.annotation.Annotation;
-
-import com.sun.mirror.declaration.Declaration;
-
-
-/**
- * Thrown when an application attempts to access the {@link Class} object
- * corresponding to a {@link TypeMirror}.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this exception is {@link
- * javax.lang.model.type.MirroredTypeException}.
- *
- * @see MirroredTypesException
- * @see Declaration#getAnnotation(Class)
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class MirroredTypeException extends RuntimeException {
-
- private static final long serialVersionUID = 1;
-
- private transient TypeMirror type; // cannot be serialized
- private String name; // type's qualified "name"
-
- /**
- * Constructs a new MirroredTypeException for the specified type.
- *
- * @param type the type being accessed
- */
- public MirroredTypeException(TypeMirror type) {
- super("Attempt to access Class object for TypeMirror " + type);
- this.type = type;
- name = type.toString();
- }
-
- /**
- * Returns the type mirror corresponding to the type being accessed.
- * The type mirror may be unavailable if this exception has been
- * serialized and then read back in.
- *
- * @return the type mirror, or <tt>null</tt> if unavailable
- */
- public TypeMirror getTypeMirror() {
- return type;
- }
-
- /**
- * Returns the fully qualified name of the type being accessed.
- * More precisely, returns the canonical name of a class,
- * interface, array, or primitive, and returns <tt>"void"</tt> for
- * the pseudo-type representing the type of <tt>void</tt>.
- *
- * @return the fully qualified name of the type being accessed
- */
- public String getQualifiedName() {
- return name;
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/MirroredTypesException.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-import com.sun.mirror.declaration.Declaration;
-
-
-/**
- * Thrown when an application attempts to access a sequence of {@link Class}
- * objects each corresponding to a {@link TypeMirror}.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this exception is {@link
- * javax.lang.model.type.MirroredTypesException}.
- *
- * @see MirroredTypeException
- * @see Declaration#getAnnotation(Class)
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class MirroredTypesException extends RuntimeException {
-
- private static final long serialVersionUID = 1;
-
- private transient Collection<TypeMirror> types; // cannot be serialized
- private Collection<String> names; // types' qualified "names"
-
- /**
- * Constructs a new MirroredTypesException for the specified types.
- *
- * @param types an ordered collection of the types being accessed
- */
- public MirroredTypesException(Collection<TypeMirror> types) {
- super("Attempt to access Class objects for TypeMirrors " + types);
- this.types = types;
- names = new ArrayList<String>();
- for (TypeMirror t : types) {
- names.add(t.toString());
- }
- }
-
- /**
- * Returns the type mirrors corresponding to the types being accessed.
- * The type mirrors may be unavailable if this exception has been
- * serialized and then read back in.
- *
- * @return the type mirrors in order, or <tt>null</tt> if unavailable
- */
- public Collection<TypeMirror> getTypeMirrors() {
- return (types != null)
- ? Collections.unmodifiableCollection(types)
- : null;
- }
-
- /**
- * Returns the fully qualified names of the types being accessed.
- * More precisely, returns the canonical names of each class,
- * interface, array, or primitive, and <tt>"void"</tt> for
- * the pseudo-type representing the type of <tt>void</tt>.
- *
- * @return the fully qualified names, in order, of the types being
- * accessed
- */
- public Collection<String> getQualifiedNames() {
- return Collections.unmodifiableCollection(names);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/PrimitiveType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-/**
- * Represents a primitive type. These include
- * <tt>boolean</tt>, <tt>byte</tt>, <tt>short</tt>, <tt>int</tt>,
- * <tt>long</tt>, <tt>char</tt>, <tt>float</tt>, and <tt>double</tt>.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.PrimitiveType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface PrimitiveType extends TypeMirror {
-
- /**
- * Returns the kind of primitive type that this object represents.
- *
- * @return the kind of primitive type that this object represents
- */
- Kind getKind();
-
- /**
- * An enumeration of the different kinds of primitive types.
- *
- * @deprecated All components of this API have been superseded by
- * the standardized annotation processing API. The replacement
- * for the functionality of this enum is {@link
- * javax.lang.model.type.TypeKind}.
- */
- @Deprecated
- enum Kind {
- /** The primitive type <tt>boolean</tt> */ BOOLEAN,
- /** The primitive type <tt>byte</tt> */ BYTE,
- /** The primitive type <tt>short</tt> */ SHORT,
- /** The primitive type <tt>int</tt> */ INT,
- /** The primitive type <tt>long</tt> */ LONG,
- /** The primitive type <tt>char</tt> */ CHAR,
- /** The primitive type <tt>float</tt> */ FLOAT,
- /** The primitive type <tt>double</tt> */ DOUBLE
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/ReferenceType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-/**
- * Represents a reference type.
- * These include class and interface types, array types, and type variables.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.ReferenceType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface ReferenceType extends TypeMirror {
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/TypeMirror.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.util.Types;
-import com.sun.mirror.util.TypeVisitor;
-
-
-/**
- * Represents a type in the Java programming language.
- * Types include primitive types, class and interface types, array
- * types, and type variables. Wildcard type arguments, and the
- * pseudo-type representing the type of <tt>void</tt>, are represented
- * by type mirrors as well.
- *
- * <p> Types may be compared using the utility methods in
- * {@link Types}.
- * There is no guarantee that any particular type will
- * always be represented by the same object.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.TypeMirror}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @see Declaration
- * @see Types
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface TypeMirror {
-
- /**
- * Returns a string representation of this type.
- * Any names embedded in the expression are qualified.
- *
- * @return a string representation of this type
- */
- String toString();
-
- /**
- * Tests whether two types represent the same type.
- *
- * @param obj the object to be compared with this type
- * @return <tt>true</tt> if the specified object represents the same
- * type as this.
- */
- boolean equals(Object obj);
-
- /**
- * Applies a visitor to this type.
- *
- * @param v the visitor operating on this type
- */
- void accept(TypeVisitor v);
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/TypeVariable.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * Represents a type variable.
- * A type variable is declared by a
- * {@linkplain TypeParameterDeclaration type parameter} of a
- * type, method, or constructor.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.TypeVariable}.
- *
- * @author Joe Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface TypeVariable extends ReferenceType {
-
- /**
- * Returns the type parameter that declared this type variable.
- *
- * @return the type parameter that declared this type variable
- */
- TypeParameterDeclaration getDeclaration();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/VoidType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import com.sun.mirror.declaration.MethodDeclaration;
-
-
-/**
- * A pseudo-type representing the type of <tt>void</tt>.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is included in {@link
- * javax.lang.model.type.NoType}.
- *
- * @see MethodDeclaration#getReturnType()
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface VoidType extends TypeMirror {
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/WildcardType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.type;
-
-
-import java.util.Collection;
-
-
-/**
- * Represents a wildcard type argument.
- * Examples include: <pre><tt>
- * ?
- * ? extends Number
- * ? super T
- * </tt></pre>
- *
- * <p> A wildcard may have its upper bound explicitly set by an
- * <tt>extends</tt> clause, its lower bound explicitly set by a
- * <tt>super</tt> clause, or neither (but not both).
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.type.WildcardType}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface WildcardType extends TypeMirror {
-
- /**
- * Returns the upper bounds of this wildcard.
- * If no upper bound is explicitly declared, then
- * an empty collection is returned.
- *
- * @return the upper bounds of this wildcard
- */
- Collection<ReferenceType> getUpperBounds();
-
- /**
- * Returns the lower bounds of this wildcard.
- * If no lower bound is explicitly declared, then
- * an empty collection is returned.
- *
- * @return the lower bounds of this wildcard
- */
- Collection<ReferenceType> getLowerBounds();
-}
--- a/langtools/src/share/classes/com/sun/mirror/type/package-info.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * Interfaces used to model types. A type is represented by the
- * appropriate subinterface of {@link com.sun.mirror.type.TypeMirror}.
- *
- * <p>The {@code apt} tool and its associated API have been
- * superseded by the standardized annotation processing API. The
- * replacement for the functionality in this package is {@link
- * javax.lang.model.type}.
- *
- * @since 1.5
- */
-package com.sun.mirror.type;
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationFilter.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.Modifier;
-
-import static com.sun.mirror.declaration.Modifier.*;
-
-
-/**
- * A filter for selecting just the items of interest
- * from a collection of declarations.
- * The filter is said to <i>select</i> or to <i>match</i> those declarations.
- * Filters can be created in several ways:
- * by the static methods described below,
- * by negating or composing existing filters,
- * or by subclasses that implement arbitrary matching rules.
- *
- * <p> A subclass can create an arbitrary filter simply by implementing
- * the {@link #matches(Declaration)} method.
- *
- * <p> Examples.
- * <p> Selecting the <tt>public</tt> declarations from a collection:
- * <blockquote><pre>
- * result = FILTER_PUBLIC.filter(decls); </pre></blockquote>
- * Selecting class declarations (including enums):
- * <blockquote><pre>
- * classFilter = DeclarationFilter.getFilter(ClassDeclaration.class);
- * result = classFilter.filter(decls); </pre></blockquote>
- * Selecting class declarations but excluding enums:
- * <blockquote><pre>
- * enumFilter = DeclarationFilter.getFilter(EnumDeclaration.class);
- * compoundFilter = classFilter.and(enumFilter.not());
- * result = compoundFilter.filter(decls); </pre></blockquote>
- * Selecting declarations named "Bob":
- * <blockquote><pre>
- * nameFilter = new DeclarationFilter() {
- * public boolean matches(Declaration d) {
- * return d.getSimpleName().equals("Bob");
- * }
- * };
- * result = nameFilter.filter(decls); </pre></blockquote>
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this class is {@link
- * javax.lang.model.util.ElementFilter}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class DeclarationFilter {
-
- // Predefined filters for convenience.
-
- /**
- * A filter that selects only <tt>public</tt> declarations.
- */
- public static final DeclarationFilter FILTER_PUBLIC =
- new AccessFilter(PUBLIC);
-
- /**
- * A filter that selects only <tt>protected</tt> declarations.
- */
- public static final DeclarationFilter FILTER_PROTECTED =
- new AccessFilter(PROTECTED);
-
- /**
- * A filter that selects only <tt>public</tt> or <tt>protected</tt>
- * declarations.
- */
- public static final DeclarationFilter FILTER_PUBLIC_OR_PROTECTED =
- new AccessFilter(PUBLIC, PROTECTED);
-
- /**
- * A filter that selects only package-private (<i>default</i>)
- * declarations.
- */
- public static final DeclarationFilter FILTER_PACKAGE =
- new AccessFilter();
-
- /**
- * A filter that selects only <tt>private</tt> declarations.
- */
- public static final DeclarationFilter FILTER_PRIVATE =
- new AccessFilter(PRIVATE);
-
-
- /**
- * Constructs an identity filter: one that selects all declarations.
- */
- public DeclarationFilter() {
- }
-
-
-
- // Methods to create a filter.
-
- /**
- * Returns a filter that selects declarations containing all of a
- * collection of modifiers.
- *
- * @param mods the modifiers to match (non-null)
- * @return a filter that matches declarations containing <tt>mods</tt>
- */
- public static DeclarationFilter getFilter(
- final Collection<Modifier> mods) {
- return new DeclarationFilter() {
- public boolean matches(Declaration d) {
- return d.getModifiers().containsAll(mods);
- }
- };
- }
-
- /**
- * Returns a filter that selects declarations of a particular kind.
- * For example, there may be a filter that selects only class
- * declarations, or only fields.
- * The filter will select declarations of the specified kind,
- * and also any subtypes of that kind; for example, a field filter
- * will also select enum constants.
- *
- * @param kind the kind of declarations to select
- * @return a filter that selects declarations of a particular kind
- */
- public static DeclarationFilter getFilter(
- final Class<? extends Declaration> kind) {
- return new DeclarationFilter() {
- public boolean matches(Declaration d) {
- return kind.isInstance(d);
- }
- };
- }
-
- /**
- * Returns a filter that selects those declarations selected
- * by both this filter and another.
- *
- * @param f filter to be composed with this one
- * @return a filter that selects those declarations selected by
- * both this filter and another
- */
- public DeclarationFilter and(DeclarationFilter f) {
- final DeclarationFilter f1 = this;
- final DeclarationFilter f2 = f;
- return new DeclarationFilter() {
- public boolean matches(Declaration d) {
- return f1.matches(d) && f2.matches(d);
- }
- };
- }
-
- /**
- * Returns a filter that selects those declarations selected
- * by either this filter or another.
- *
- * @param f filter to be composed with this one
- * @return a filter that selects those declarations selected by
- * either this filter or another
- */
- public DeclarationFilter or(DeclarationFilter f) {
- final DeclarationFilter f1 = this;
- final DeclarationFilter f2 = f;
- return new DeclarationFilter() {
- public boolean matches(Declaration d) {
- return f1.matches(d) || f2.matches(d);
- }
- };
- }
-
- /**
- * Returns a filter that selects those declarations not selected
- * by this filter.
- *
- * @return a filter that selects those declarations not selected
- * by this filter
- */
- public DeclarationFilter not() {
- return new DeclarationFilter() {
- public boolean matches(Declaration d) {
- return !DeclarationFilter.this.matches(d);
- }
- };
- }
-
-
-
- // Methods to apply a filter.
-
- /**
- * Tests whether this filter matches a given declaration.
- * The default implementation always returns <tt>true</tt>;
- * subclasses should override this.
- *
- * @param decl the declaration to match
- * @return <tt>true</tt> if this filter matches the given declaration
- */
- public boolean matches(Declaration decl) {
- return true;
- }
-
- /**
- * Returns the declarations matched by this filter.
- * The result is a collection of the same type as the argument;
- * the {@linkplain #filter(Collection, Class) two-parameter version}
- * of <tt>filter</tt> offers control over the result type.
- *
- * @param <D> type of the declarations being filtered
- * @param decls declarations being filtered
- * @return the declarations matched by this filter
- */
- public <D extends Declaration> Collection<D> filter(Collection<D> decls) {
- ArrayList<D> res = new ArrayList<D>(decls.size());
- for (D d : decls) {
- if (matches(d)) {
- res.add(d);
- }
- }
- return res;
- }
-
- /**
- * Returns the declarations matched by this filter, with the result
- * being restricted to declarations of a given kind.
- * Similar to the simpler
- * {@linkplain #filter(Collection) single-parameter version}
- * of <tt>filter</tt>, but the result type is specified explicitly.
- *
- * @param <D> type of the declarations being returned
- * @param decls declarations being filtered
- * @param resType type of the declarations being returned --
- * the reflective view of <tt>D</tt>
- * @return the declarations matched by this filter, restricted to those
- * of the specified type
- */
- public <D extends Declaration> Collection<D>
- filter(Collection<? extends Declaration> decls, Class<D> resType) {
- ArrayList<D> res = new ArrayList<D>(decls.size());
- for (Declaration d : decls) {
- if (resType.isInstance(d) && matches(d)) {
- res.add(resType.cast(d));
- }
- }
- return res;
- }
-
-
-
- /*
- * A filter based on access modifiers.
- */
- private static class AccessFilter extends DeclarationFilter {
-
- // The first access modifier to filter on, or null if we're looking
- // for declarations with no access modifiers.
- private Modifier mod1 = null;
-
- // The second access modifier to filter on, or null if none.
- private Modifier mod2 = null;
-
- // Returns a filter that matches declarations with no access
- // modifiers.
- AccessFilter() {
- }
-
- // Returns a filter that matches m.
- AccessFilter(Modifier m) {
- mod1 = m;
- }
-
- // Returns a filter that matches either m1 or m2.
- AccessFilter(Modifier m1, Modifier m2) {
- mod1 = m1;
- mod2 = m2;
- }
-
- public boolean matches(Declaration d) {
- Collection<Modifier> mods = d.getModifiers();
- if (mod1 == null) { // looking for package private
- return !(mods.contains(PUBLIC) ||
- mods.contains(PROTECTED) ||
- mods.contains(PRIVATE));
- }
- return mods.contains(mod1) &&
- (mod2 == null || mods.contains(mod2));
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationScanner.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-import com.sun.mirror.declaration.*;
-
-/**
- * A visitor for declarations that scans declarations contained within
- * the given declaration. For example, when visiting a class, the
- * methods, fields, constructors, and nested types of the class are
- * also visited.
- *
- * <p> To control the processing done on a declaration, users of this
- * class pass in their own visitors for pre and post processing. The
- * preprocessing visitor is called before the contained declarations
- * are scanned; the postprocessing visitor is called after the
- * contained declarations are scanned.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this class is {@link
- * javax.lang.model.util.ElementScanner6}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-class DeclarationScanner implements DeclarationVisitor {
- protected DeclarationVisitor pre;
- protected DeclarationVisitor post;
-
- DeclarationScanner(DeclarationVisitor pre, DeclarationVisitor post) {
- this.pre = pre;
- this.post = post;
- }
-
- /**
- * Visits a declaration.
- *
- * @param d the declaration to visit
- */
- public void visitDeclaration(Declaration d) {
- d.accept(pre);
- d.accept(post);
- }
-
- /**
- * Visits a package declaration.
- *
- * @param d the declaration to visit
- */
- public void visitPackageDeclaration(PackageDeclaration d) {
- d.accept(pre);
-
- for(ClassDeclaration classDecl: d.getClasses()) {
- classDecl.accept(this);
- }
-
- for(InterfaceDeclaration interfaceDecl: d.getInterfaces()) {
- interfaceDecl.accept(this);
- }
-
- d.accept(post);
- }
-
- /**
- * Visits a member or constructor declaration.
- *
- * @param d the declaration to visit
- */
- public void visitMemberDeclaration(MemberDeclaration d) {
- visitDeclaration(d);
- }
-
- /**
- * Visits a type declaration.
- *
- * @param d the declaration to visit
- */
- public void visitTypeDeclaration(TypeDeclaration d) {
- d.accept(pre);
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters()) {
- tpDecl.accept(this);
- }
-
- for(FieldDeclaration fieldDecl: d.getFields()) {
- fieldDecl.accept(this);
- }
-
- for(MethodDeclaration methodDecl: d.getMethods()) {
- methodDecl.accept(this);
- }
-
- for(TypeDeclaration typeDecl: d.getNestedTypes()) {
- typeDecl.accept(this);
- }
-
- d.accept(post);
- }
-
- /**
- * Visits a class declaration.
- *
- * @param d the declaration to visit
- */
- public void visitClassDeclaration(ClassDeclaration d) {
- d.accept(pre);
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters()) {
- tpDecl.accept(this);
- }
-
- for(FieldDeclaration fieldDecl: d.getFields()) {
- fieldDecl.accept(this);
- }
-
- for(MethodDeclaration methodDecl: d.getMethods()) {
- methodDecl.accept(this);
- }
-
- for(TypeDeclaration typeDecl: d.getNestedTypes()) {
- typeDecl.accept(this);
- }
-
- for(ConstructorDeclaration ctorDecl: d.getConstructors()) {
- ctorDecl.accept(this);
- }
-
- d.accept(post);
- }
-
- /**
- * Visits an enum declaration.
- *
- * @param d the declaration to visit
- */
- public void visitEnumDeclaration(EnumDeclaration d) {
- visitClassDeclaration(d);
- }
-
- /**
- * Visits an interface declaration.
- *
- * @param d the declaration to visit
- */
- public void visitInterfaceDeclaration(InterfaceDeclaration d) {
- visitTypeDeclaration(d);
- }
-
- /**
- * Visits an annotation type declaration.
- *
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeDeclaration(AnnotationTypeDeclaration d) {
- visitInterfaceDeclaration(d);
- }
-
- /**
- * Visits a field declaration.
- *
- * @param d the declaration to visit
- */
- public void visitFieldDeclaration(FieldDeclaration d) {
- visitMemberDeclaration(d);
- }
-
- /**
- * Visits an enum constant declaration.
- *
- * @param d the declaration to visit
- */
- public void visitEnumConstantDeclaration(EnumConstantDeclaration d) {
- visitFieldDeclaration(d);
- }
-
- /**
- * Visits a method or constructor declaration.
- *
- * @param d the declaration to visit
- */
- public void visitExecutableDeclaration(ExecutableDeclaration d) {
- d.accept(pre);
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters()) {
- tpDecl.accept(this);
- }
-
- for(ParameterDeclaration pDecl: d.getParameters()) {
- pDecl.accept(this);
- }
-
- d.accept(post);
- }
-
- /**
- * Visits a constructor declaration.
- *
- * @param d the declaration to visit
- */
- public void visitConstructorDeclaration(ConstructorDeclaration d) {
- visitExecutableDeclaration(d);
- }
-
- /**
- * Visits a method declaration.
- *
- * @param d the declaration to visit
- */
- public void visitMethodDeclaration(MethodDeclaration d) {
- visitExecutableDeclaration(d);
- }
-
- /**
- * Visits an annotation type element declaration.
- *
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeElementDeclaration(
- AnnotationTypeElementDeclaration d) {
- visitMethodDeclaration(d);
- }
-
- /**
- * Visits a parameter declaration.
- *
- * @param d the declaration to visit
- */
- public void visitParameterDeclaration(ParameterDeclaration d) {
- visitDeclaration(d);
- }
-
- /**
- * Visits a type parameter declaration.
- *
- * @param d the declaration to visit
- */
- public void visitTypeParameterDeclaration(TypeParameterDeclaration d) {
- visitDeclaration(d);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * A visitor for declarations, in the style of the standard visitor
- * design pattern. Classes implementing this interface are used to
- * operate on a declaration when the kind of declaration is unknown at
- * compile time. When a visitor is passed to a declaration's {@link
- * Declaration#accept accept} method, the most specific
- * <tt>visit<i>Xxx</i></tt> method applicable to that declaration is
- * invoked.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.ElementVisitor}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface DeclarationVisitor {
-
- /**
- * Visits a declaration.
- * @param d the declaration to visit
- */
- public void visitDeclaration(Declaration d);
-
- /**
- * Visits a package declaration.
- * @param d the declaration to visit
- */
- public void visitPackageDeclaration(PackageDeclaration d);
-
- /**
- * Visits a member or constructor declaration.
- * @param d the declaration to visit
- */
- public void visitMemberDeclaration(MemberDeclaration d);
-
- /**
- * Visits a type declaration.
- * @param d the declaration to visit
- */
- public void visitTypeDeclaration(TypeDeclaration d);
-
- /**
- * Visits a class declaration.
- * @param d the declaration to visit
- */
- public void visitClassDeclaration(ClassDeclaration d);
-
- /**
- * Visits an enum declaration.
- * @param d the declaration to visit
- */
- public void visitEnumDeclaration(EnumDeclaration d);
-
- /**
- * Visits an interface declaration.
- * @param d the declaration to visit
- */
- public void visitInterfaceDeclaration(InterfaceDeclaration d);
-
- /**
- * Visits an annotation type declaration.
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeDeclaration(AnnotationTypeDeclaration d);
-
- /**
- * Visits a field declaration.
- * @param d the declaration to visit
- */
- public void visitFieldDeclaration(FieldDeclaration d);
-
- /**
- * Visits an enum constant declaration.
- * @param d the declaration to visit
- */
- public void visitEnumConstantDeclaration(EnumConstantDeclaration d);
-
- /**
- * Visits a method or constructor declaration.
- * @param d the declaration to visit
- */
- public void visitExecutableDeclaration(ExecutableDeclaration d);
-
- /**
- * Visits a constructor declaration.
- * @param d the declaration to visit
- */
- public void visitConstructorDeclaration(ConstructorDeclaration d);
-
- /**
- * Visits a method declaration.
- * @param d the declaration to visit
- */
- public void visitMethodDeclaration(MethodDeclaration d);
-
- /**
- * Visits an annotation type element declaration.
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeElementDeclaration(
- AnnotationTypeElementDeclaration d);
-
- /**
- * Visits a parameter declaration.
- * @param d the declaration to visit
- */
- public void visitParameterDeclaration(ParameterDeclaration d);
-
- /**
- * Visits a type parameter declaration.
- * @param d the declaration to visit
- */
- public void visitTypeParameterDeclaration(TypeParameterDeclaration d);
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-/**
- * Utilities to create specialized <tt>DeclarationVisitor</tt> instances.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. There is no direct
- * replacement for the functionality of this class in the standardized
- * API due to that API's different visitor structure.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class DeclarationVisitors {
- private DeclarationVisitors(){} // do not instantiate.
-
- /**
- * A visitor that has no side effects and keeps no state.
- */
- public static final DeclarationVisitor NO_OP = new SimpleDeclarationVisitor();
-
- /**
- * Return a <tt>DeclarationVisitor</tt> that will scan the
- * declaration structure, visiting declarations contained in
- * another declaration. For example, when visiting a class, the
- * fields, methods, constructors, etc. of the class are also
- * visited. The order in which the contained declarations are scanned is
- * not specified.
- *
- * <p>The <tt>pre</tt> and <tt>post</tt>
- * <tt>DeclarationVisitor</tt> parameters specify,
- * respectively, the processing the scanner will do before or
- * after visiting the contained declarations. If only one of pre
- * and post processing is needed, use {@link
- * DeclarationVisitors#NO_OP DeclarationVisitors.NO_OP} for the
- * other parameter.
- *
- * @param pre visitor representing processing to do before
- * visiting contained declarations.
- *
- * @param post visitor representing processing to do after
- * visiting contained declarations.
- */
- public static DeclarationVisitor getDeclarationScanner(DeclarationVisitor pre,
- DeclarationVisitor post) {
- return new DeclarationScanner(pre, post);
- }
-
- /**
- * Return a <tt>DeclarationVisitor</tt> that will scan the
- * declaration structure, visiting declarations contained in
- * another declaration in source code order. For example, when
- * visiting a class, the fields, methods, constructors, etc. of
- * the class are also visited. The order in which the contained
- * declarations are visited is as close to source code order as
- * possible; declaration mirrors created from class files instead
- * of source code will not have source position information.
- *
- * <p>The <tt>pre</tt> and <tt>post</tt>
- * <tt>DeclarationVisitor</tt> parameters specify,
- * respectively, the processing the scanner will do before or
- * after visiting the contained declarations. If only one of pre
- * and post processing is needed, use {@link
- * DeclarationVisitors#NO_OP DeclarationVisitors.NO_OP} for the other parameter.
- *
- * @param pre visitor representing processing to do before
- * visiting contained declarations.
- *
- * @param post visitor representing processing to do after
- * visiting contained declarations.
- */
- public static DeclarationVisitor getSourceOrderDeclarationScanner(DeclarationVisitor pre,
- DeclarationVisitor post) {
- return new SourceOrderDeclScanner(pre, post);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/Declarations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * Utility methods for operating on declarations.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.util.Elements}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface Declarations {
-
- /**
- * Tests whether one type, method, or field declaration hides another.
- *
- * @param sub the first member
- * @param sup the second member
- * @return <tt>true</tt> if and only if the first member hides
- * the second
- */
- boolean hides(MemberDeclaration sub, MemberDeclaration sup);
-
- /**
- * Tests whether one method overrides another. When a
- * non-abstract method overrides an abstract one, the
- * former is also said to <i>implement</i> the latter.
- *
- * @param sub the first method
- * @param sup the second method
- * @return <tt>true</tt> if and only if the first method overrides
- * the second
- */
- boolean overrides(MethodDeclaration sub, MethodDeclaration sup);
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import com.sun.mirror.declaration.*;
-
-
-/**
- * A simple visitor for declarations.
- *
- * <p> The implementations of the methods of this class do nothing but
- * delegate up the declaration hierarchy. A subclass should override the
- * methods that correspond to the kinds of declarations on which it
- * will operate.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this class is {@link
- * javax.lang.model.util.SimpleElementVisitor6}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class SimpleDeclarationVisitor implements DeclarationVisitor {
-
- /**
- * Creates a new <tt>SimpleDeclarationVisitor</tt>.
- */
- public SimpleDeclarationVisitor(){}
-
- /**
- * Visits a declaration.
- * The implementation does nothing.
- * @param d the declaration to visit
- */
- public void visitDeclaration(Declaration d) {
- }
-
- /**
- * Visits a package declaration.
- * The implementation simply invokes
- * {@link #visitDeclaration visitDeclaration}.
- * @param d the declaration to visit
- */
- public void visitPackageDeclaration(PackageDeclaration d) {
- visitDeclaration(d);
- }
-
- /**
- * Visits a member or constructor declaration.
- * The implementation simply invokes
- * {@link #visitDeclaration visitDeclaration}.
- * @param d the declaration to visit
- */
- public void visitMemberDeclaration(MemberDeclaration d) {
- visitDeclaration(d);
- }
-
- /**
- * Visits a type declaration.
- * The implementation simply invokes
- * {@link #visitMemberDeclaration visitMemberDeclaration}.
- * @param d the declaration to visit
- */
- public void visitTypeDeclaration(TypeDeclaration d) {
- visitMemberDeclaration(d);
- }
-
- /**
- * Visits a class declaration.
- * The implementation simply invokes
- * {@link #visitTypeDeclaration visitTypeDeclaration}.
- * @param d the declaration to visit
- */
- public void visitClassDeclaration(ClassDeclaration d) {
- visitTypeDeclaration(d);
- }
-
- /**
- * Visits an enum declaration.
- * The implementation simply invokes
- * {@link #visitClassDeclaration visitClassDeclaration}.
- * @param d the declaration to visit
- */
- public void visitEnumDeclaration(EnumDeclaration d) {
- visitClassDeclaration(d);
- }
-
- /**
- * Visits an interface declaration.
- * The implementation simply invokes
- * {@link #visitTypeDeclaration visitTypeDeclaration}.
- * @param d the declaration to visit
- */
- public void visitInterfaceDeclaration(InterfaceDeclaration d) {
- visitTypeDeclaration(d);
- }
-
- /**
- * Visits an annotation type declaration.
- * The implementation simply invokes
- * {@link #visitInterfaceDeclaration visitInterfaceDeclaration}.
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeDeclaration(AnnotationTypeDeclaration d) {
- visitInterfaceDeclaration(d);
- }
-
- /**
- * Visits a field declaration.
- * The implementation simply invokes
- * {@link #visitMemberDeclaration visitMemberDeclaration}.
- * @param d the declaration to visit
- */
- public void visitFieldDeclaration(FieldDeclaration d) {
- visitMemberDeclaration(d);
- }
-
- /**
- * Visits an enum constant declaration.
- * The implementation simply invokes
- * {@link #visitFieldDeclaration visitFieldDeclaration}.
- * @param d the declaration to visit
- */
- public void visitEnumConstantDeclaration(EnumConstantDeclaration d) {
- visitFieldDeclaration(d);
- }
-
- /**
- * Visits a method or constructor declaration.
- * The implementation simply invokes
- * {@link #visitMemberDeclaration visitMemberDeclaration}.
- * @param d the declaration to visit
- */
- public void visitExecutableDeclaration(ExecutableDeclaration d) {
- visitMemberDeclaration(d);
- }
-
- /**
- * Visits a constructor declaration.
- * The implementation simply invokes
- * {@link #visitExecutableDeclaration visitExecutableDeclaration}.
- * @param d the declaration to visit
- */
- public void visitConstructorDeclaration(ConstructorDeclaration d) {
- visitExecutableDeclaration(d);
- }
-
- /**
- * Visits a method declaration.
- * The implementation simply invokes
- * {@link #visitExecutableDeclaration visitExecutableDeclaration}.
- * @param d the declaration to visit
- */
- public void visitMethodDeclaration(MethodDeclaration d) {
- visitExecutableDeclaration(d);
- }
-
- /**
- * Visits an annotation type element declaration.
- * The implementation simply invokes
- * {@link #visitMethodDeclaration visitMethodDeclaration}.
- * @param d the declaration to visit
- */
- public void visitAnnotationTypeElementDeclaration(
- AnnotationTypeElementDeclaration d) {
- visitMethodDeclaration(d);
- }
-
- /**
- * Visits a parameter declaration.
- * The implementation simply invokes
- * {@link #visitDeclaration visitDeclaration}.
- * @param d the declaration to visit
- */
- public void visitParameterDeclaration(ParameterDeclaration d) {
- visitDeclaration(d);
- }
-
- /**
- * Visits a type parameter declaration.
- * The implementation simply invokes
- * {@link #visitDeclaration visitDeclaration}.
- * @param d the declaration to visit
- */
- public void visitTypeParameterDeclaration(TypeParameterDeclaration d) {
- visitDeclaration(d);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import com.sun.mirror.type.*;
-
-
-/**
- * A simple visitor for types.
- *
- * <p> The implementations of the methods of this class do nothing but
- * delegate up the type hierarchy. A subclass should override the
- * methods that correspond to the kinds of types on which it will
- * operate.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this class is {@link
- * javax.lang.model.util.SimpleTypeVisitor6}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public class SimpleTypeVisitor implements TypeVisitor {
-
- /**
- * Creates a new <tt>SimpleTypeVisitor</tt>.
- */
- public SimpleTypeVisitor() {}
-
- /**
- * Visits a type mirror.
- * The implementation does nothing.
- * @param t the type to visit
- */
- public void visitTypeMirror(TypeMirror t) {
- }
-
- /**
- * Visits a primitive type.
- * The implementation simply invokes
- * {@link #visitTypeMirror visitTypeMirror}.
- * @param t the type to visit
- */
- public void visitPrimitiveType(PrimitiveType t) {
- visitTypeMirror(t);
- }
-
- /**
- * Visits a void type.
- * The implementation simply invokes
- * {@link #visitTypeMirror visitTypeMirror}.
- * @param t the type to visit
- */
- public void visitVoidType(VoidType t) {
- visitTypeMirror(t);
- }
-
- /**
- * Visits a reference type.
- * The implementation simply invokes
- * {@link #visitTypeMirror visitTypeMirror}.
- * @param t the type to visit
- */
- public void visitReferenceType(ReferenceType t) {
- visitTypeMirror(t);
- }
-
- /**
- * Visits a declared type.
- * The implementation simply invokes
- * {@link #visitReferenceType visitReferenceType}.
- * @param t the type to visit
- */
- public void visitDeclaredType(DeclaredType t) {
- visitReferenceType(t);
- }
-
- /**
- * Visits a class type.
- * The implementation simply invokes
- * {@link #visitDeclaredType visitDeclaredType}.
- * @param t the type to visit
- */
- public void visitClassType(ClassType t) {
- visitDeclaredType(t);
- }
-
- /**
- * Visits an enum type.
- * The implementation simply invokes
- * {@link #visitClassType visitClassType}.
- * @param t the type to visit
- */
- public void visitEnumType(EnumType t) {
- visitClassType(t);
- }
-
- /**
- * Visits an interface type.
- * The implementation simply invokes
- * {@link #visitDeclaredType visitDeclaredType}.
- * @param t the type to visit
- */
- public void visitInterfaceType(InterfaceType t) {
- visitDeclaredType(t);
- }
-
- /**
- * Visits an annotation type.
- * The implementation simply invokes
- * {@link #visitInterfaceType visitInterfaceType}.
- * @param t the type to visit
- */
- public void visitAnnotationType(AnnotationType t) {
- visitInterfaceType(t);
- }
-
- /**
- * Visits an array type.
- * The implementation simply invokes
- * {@link #visitReferenceType visitReferenceType}.
- * @param t the type to visit
- */
- public void visitArrayType(ArrayType t) {
- visitReferenceType(t);
- }
-
- /**
- * Visits a type variable.
- * The implementation simply invokes
- * {@link #visitReferenceType visitReferenceType}.
- * @param t the type to visit
- */
- public void visitTypeVariable(TypeVariable t) {
- visitReferenceType(t);
- }
-
- /**
- * Visits a wildcard.
- * The implementation simply invokes
- * {@link #visitTypeMirror visitTypeMirror}.
- * @param t the type to visit
- */
- public void visitWildcardType(WildcardType t) {
- visitTypeMirror(t);
- }
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-import com.sun.mirror.declaration.*;
-
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-/**
- * A visitor for declarations that scans declarations contained within
- * the given declaration in source code order. For example, when
- * visiting a class, the methods, fields, constructors, and nested
- * types of the class are also visited.
- *
- * To control the processing done on a declaration, users of this
- * class pass in their own visitors for pre and post processing. The
- * preprocessing visitor is called before the contained declarations
- * are scanned; the postprocessing visitor is called after the
- * contained declarations are scanned.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this class is {@link
- * javax.lang.model.util.SimpleElementVisitor6}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-class SourceOrderDeclScanner extends DeclarationScanner {
- static class SourceOrderComparator implements java.util.Comparator<Declaration> {
- SourceOrderComparator(){}
-
-
- static boolean equals(Declaration d1, Declaration d2) {
- return d1 == d2 || (d1 != null && d1.equals(d2));
- }
-
- private static class DeclPartialOrder extends com.sun.mirror.util.SimpleDeclarationVisitor {
- private int value = 1000;
- private static int staticAdjust(Declaration d) {
- return d.getModifiers().contains(Modifier.STATIC)?0:1;
- }
-
- DeclPartialOrder() {}
-
- public int getValue() { return value; }
-
- @Override
- public void visitTypeParameterDeclaration(TypeParameterDeclaration d) {value = 0;}
-
- @Override
- public void visitEnumConstantDeclaration(EnumConstantDeclaration d) {value = 1;}
-
- @Override
- public void visitClassDeclaration(ClassDeclaration d) {value = 2 + staticAdjust(d);}
-
- @Override
- public void visitInterfaceDeclaration(InterfaceDeclaration d) {value = 4;}
-
- @Override
- public void visitEnumDeclaration(EnumDeclaration d) {value = 6;}
-
- @Override
- public void visitAnnotationTypeDeclaration(AnnotationTypeDeclaration d) {value = 8;}
-
- @Override
- public void visitFieldDeclaration(FieldDeclaration d) {value = 10 + staticAdjust(d);}
-
- @Override
- public void visitConstructorDeclaration(ConstructorDeclaration d) {value = 12;}
-
- @Override
- public void visitMethodDeclaration(MethodDeclaration d) {value = 14 + staticAdjust(d);}
- }
- @SuppressWarnings("cast")
- private int compareEqualPosition(Declaration d1, Declaration d2) {
- assert
- (d1.getPosition() == d2.getPosition()) || // Handles two null positions.
- (d1.getPosition().file().compareTo(d2.getPosition().file()) == 0 &&
- d1.getPosition().line() == d2.getPosition().line() &&
- d1.getPosition().column() == d2.getPosition().column());
-
- DeclPartialOrder dpo1 = new DeclPartialOrder();
- DeclPartialOrder dpo2 = new DeclPartialOrder();
-
- d1.accept(dpo1);
- d2.accept(dpo2);
-
- int difference = dpo1.getValue() - dpo2.getValue();
- if (difference != 0)
- return difference;
- else {
- int result = d1.getSimpleName().compareTo(d2.getSimpleName());
- if (result != 0)
- return result;
- return (int)( Long.signum((long)System.identityHashCode(d1) -
- (long)System.identityHashCode(d2)));
- }
- }
-
- public int compare(Declaration d1, Declaration d2) {
- if (equals(d1, d2))
- return 0;
-
- SourcePosition p1 = d1.getPosition();
- SourcePosition p2 = d2.getPosition();
-
- if (p1 == null && p2 != null)
- return 1;
- else if (p1 != null && p2 == null)
- return -1;
- else if(p1 == null && p2 == null)
- return compareEqualPosition(d1, d2);
- else {
- assert p1 != null && p2 != null;
- int fileComp = p1.file().compareTo(p2.file()) ;
- if (fileComp == 0) {
- long diff = (long)p1.line() - (long)p2.line();
- if (diff == 0) {
- diff = Long.signum((long)p1.column() - (long)p2.column());
- if (diff != 0)
- return (int)diff;
- else {
- // declarations may be two
- // compiler-generated members with the
- // same source position
- return compareEqualPosition(d1, d2);
- }
- } else
- return (diff<0)? -1:1;
- } else
- return fileComp;
- }
- }
- }
-
- final static java.util.Comparator<Declaration> comparator = new SourceOrderComparator();
-
- SourceOrderDeclScanner(DeclarationVisitor pre, DeclarationVisitor post) {
- super(pre, post);
- }
-
- /**
- * Visits a type declaration.
- *
- * @param d the declaration to visit
- */
- public void visitTypeDeclaration(TypeDeclaration d) {
- d.accept(pre);
-
- SortedSet<Declaration> decls = new
- TreeSet<Declaration>(SourceOrderDeclScanner.comparator) ;
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters()) {
- decls.add(tpDecl);
- }
-
- for(FieldDeclaration fieldDecl: d.getFields()) {
- decls.add(fieldDecl);
- }
-
- for(MethodDeclaration methodDecl: d.getMethods()) {
- decls.add(methodDecl);
- }
-
- for(TypeDeclaration typeDecl: d.getNestedTypes()) {
- decls.add(typeDecl);
- }
-
- for(Declaration decl: decls )
- decl.accept(this);
-
- d.accept(post);
- }
-
- /**
- * Visits a class declaration.
- *
- * @param d the declaration to visit
- */
- public void visitClassDeclaration(ClassDeclaration d) {
- d.accept(pre);
-
- SortedSet<Declaration> decls = new
- TreeSet<Declaration>(SourceOrderDeclScanner.comparator) ;
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters()) {
- decls.add(tpDecl);
- }
-
- for(FieldDeclaration fieldDecl: d.getFields()) {
- decls.add(fieldDecl);
- }
-
- for(MethodDeclaration methodDecl: d.getMethods()) {
- decls.add(methodDecl);
- }
-
- for(TypeDeclaration typeDecl: d.getNestedTypes()) {
- decls.add(typeDecl);
- }
-
- for(ConstructorDeclaration ctorDecl: d.getConstructors()) {
- decls.add(ctorDecl);
- }
-
- for(Declaration decl: decls )
- decl.accept(this);
-
- d.accept(post);
- }
-
- public void visitExecutableDeclaration(ExecutableDeclaration d) {
- d.accept(pre);
-
- SortedSet<Declaration> decls = new
- TreeSet<Declaration>(SourceOrderDeclScanner.comparator) ;
-
- for(TypeParameterDeclaration tpDecl: d.getFormalTypeParameters())
- decls.add(tpDecl);
-
- for(ParameterDeclaration pDecl: d.getParameters())
- decls.add(pDecl);
-
- for(Declaration decl: decls )
- decl.accept(this);
-
- d.accept(post);
- }
-
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/SourcePosition.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import java.io.File;
-
-
-/**
- * Represents a position in a source file.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. There is no direct
- * replacement for the functionality of this interface since the
- * standardized {@link javax.annotation.processing.Messager Messager}
- * API implicitly takes a source position argument via any element,
- * annotation mirror, or annotation value passed along with the
- * message.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface SourcePosition {
-
- /**
- * Returns the source file containing this position.
- *
- * @return the source file containing this position; never null
- */
- File file();
-
- /**
- * Returns the line number of this position. Lines are numbered
- * starting with 1.
- *
- * @return the line number of this position, or 0 if the line
- * number is unknown or not applicable
- */
- int line();
-
- /**
- * Returns the column number of this position. Columns are numbered
- * starting with 1.
- *
- * @return the column number of this position, or 0 if the column
- * number is unknown or not applicable
- */
- int column();
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/TypeVisitor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import com.sun.mirror.type.*;
-
-
-/**
- * A visitor for types, in the style of the standard visitor design pattern.
- * This is used to operate on a type when the kind
- * of type is unknown at compile time.
- * When a visitor is passed to a type's
- * {@link TypeMirror#accept accept} method,
- * the most specific <tt>visit<i>Xxx</i></tt> method applicable to
- * that type is invoked.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.element.TypeVisitor}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface TypeVisitor {
-
- /**
- * Visits a type mirror.
- *
- * @param t the type to visit
- */
- public void visitTypeMirror(TypeMirror t);
-
- /**
- * Visits a primitive type.
-
- * @param t the type to visit
- */
- public void visitPrimitiveType(PrimitiveType t);
-
- /**
- * Visits a void type.
- *
- * @param t the type to visit
- */
- public void visitVoidType(VoidType t);
-
- /**
- * Visits a reference type.
- *
- * @param t the type to visit
- */
- public void visitReferenceType(ReferenceType t);
-
- /**
- * Visits a declared type.
- *
- * @param t the type to visit
- */
- public void visitDeclaredType(DeclaredType t);
-
- /**
- * Visits a class type.
- *
- * @param t the type to visit
- */
- public void visitClassType(ClassType t);
-
- /**
- * Visits an enum type.
- *
- * @param t the type to visit
- */
- public void visitEnumType(EnumType t);
-
- /**
- * Visits an interface type.
- *
- * @param t the type to visit
- */
- public void visitInterfaceType(InterfaceType t);
-
- /**
- * Visits an annotation type.
- *
- * @param t the type to visit
- */
- public void visitAnnotationType(AnnotationType t);
-
- /**
- * Visits an array type.
- *
- * @param t the type to visit
- */
- public void visitArrayType(ArrayType t);
-
- /**
- * Visits a type variable.
- *
- * @param t the type to visit
- */
- public void visitTypeVariable(TypeVariable t);
-
- /**
- * Visits a wildcard.
- *
- * @param t the type to visit
- */
- public void visitWildcardType(WildcardType t);
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/Types.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.mirror.util;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-
-
-/**
- * Utility methods for operating on types.
- *
- * @deprecated All components of this API have been superseded by the
- * standardized annotation processing API. The replacement for the
- * functionality of this interface is {@link
- * javax.lang.model.util.Types}.
- *
- * @author Joseph D. Darcy
- * @author Scott Seligman
- * @since 1.5
- */
-@Deprecated
-@SuppressWarnings("deprecation")
-public interface Types {
-
- /**
- * Tests whether one type is a subtype of the another.
- * Any type is considered to be a subtype of itself.
- *
- * @param t1 the first type
- * @param t2 the second type
- * @return <tt>true</tt> if and only if the first type is a subtype
- * of the second
- */
- boolean isSubtype(TypeMirror t1, TypeMirror t2);
-
- /**
- * Tests whether one type is assignable to another.
- *
- * @param t1 the first type
- * @param t2 the second type
- * @return <tt>true</tt> if and only if the first type is assignable
- * to the second
- */
- boolean isAssignable(TypeMirror t1, TypeMirror t2);
-
- /**
- * Returns the erasure of a type.
- *
- * @param t the type to be erased
- * @return the erasure of the given type
- */
- TypeMirror getErasure(TypeMirror t);
-
- /**
- * Returns a primitive type.
- *
- * @param kind the kind of primitive type to return
- * @return a primitive type
- */
- PrimitiveType getPrimitiveType(PrimitiveType.Kind kind);
-
- /**
- * Returns the pseudo-type representing the type of <tt>void</tt>.
- *
- * @return the pseudo-type representing the type of <tt>void</tt>
- */
- VoidType getVoidType();
-
- /**
- * Returns an array type with the specified component type.
- *
- * @param componentType the component type
- * @return an array type with the specified component type.
- * @throws IllegalArgumentException if the component type is not valid for
- * an array
- */
- ArrayType getArrayType(TypeMirror componentType);
-
- /**
- * Returns the type variable declared by a type parameter.
- *
- * @param tparam the type parameter
- * @return the type variable declared by the type parameter
- */
- TypeVariable getTypeVariable(TypeParameterDeclaration tparam);
-
- /**
- * Returns a new wildcard.
- * Either the wildcards's upper bounds or lower bounds may be
- * specified, or neither, but not both.
- *
- * @param upperBounds the upper bounds of this wildcard,
- * or an empty collection if none
- * @param lowerBounds the lower bounds of this wildcard,
- * or an empty collection if none
- * @return a new wildcard
- * @throws IllegalArgumentException if bounds are not valid
- */
- WildcardType getWildcardType(Collection<ReferenceType> upperBounds,
- Collection<ReferenceType> lowerBounds);
-
- /**
- * Returns the type corresponding to a type declaration and
- * actual type arguments.
- * Given the declaration for <tt>String</tt>, for example, this
- * method may be used to get the <tt>String</tt> type. It may
- * then be invoked a second time, with the declaration for <tt>Set</tt>,
- * to make the parameterized type {@code Set<String>}.
- *
- * <p> The number of type arguments must either equal the
- * number of the declaration's formal type parameters, or must be
- * zero. If zero, and if the declaration is generic,
- * then the declaration's raw type is returned.
- *
- * <p> If a parameterized type is being returned, its declaration
- * must not be contained within a generic outer class.
- * The parameterized type {@code Outer<String>.Inner<Number>},
- * for example, may be constructed by first using this
- * method to get the type {@code Outer<String>}, and then invoking
- * {@link #getDeclaredType(DeclaredType, TypeDeclaration, TypeMirror...)}.
- *
- * @param decl the type declaration
- * @param typeArgs the actual type arguments
- * @return the type corresponding to the type declaration and
- * actual type arguments
- * @throws IllegalArgumentException if too many or too few
- * type arguments are given, or if an inappropriate type
- * argument or declaration is provided
- */
- DeclaredType getDeclaredType(TypeDeclaration decl,
- TypeMirror... typeArgs);
-
- /**
- * Returns the type corresponding to a type declaration
- * and actual arguments, given a
- * {@linkplain DeclaredType#getContainingType() containing type}
- * of which it is a member.
- * The parameterized type {@code Outer<String>.Inner<Number>},
- * for example, may be constructed by first using
- * {@link #getDeclaredType(TypeDeclaration, TypeMirror...)}
- * to get the type {@code Outer<String>}, and then invoking
- * this method.
- *
- * <p> If the containing type is a parameterized type,
- * the number of type arguments must equal the
- * number of the declaration's formal type parameters.
- * If it is not parameterized or if it is <tt>null</tt>, this method is
- * equivalent to <tt>getDeclaredType(decl, typeArgs)</tt>.
- *
- * @param containing the containing type, or <tt>null</tt> if none
- * @param decl the type declaration
- * @param typeArgs the actual type arguments
- * @return the type corresponding to the type declaration and
- * actual type arguments,
- * contained within the given type
- * @throws IllegalArgumentException if too many or too few
- * type arguments are given, or if an inappropriate type
- * argument, declaration, or containing type is provided
- */
- DeclaredType getDeclaredType(DeclaredType containing,
- TypeDeclaration decl,
- TypeMirror... typeArgs);
-}
--- a/langtools/src/share/classes/com/sun/mirror/util/package-info.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * Utilities to assist in the processing of {@linkplain
- * com.sun.mirror.declaration declarations} and {@linkplain
- * com.sun.mirror.type types}.
- *
- * <p>The {@code apt} tool and its associated API have been superseded
- * by the standardized annotation processing API. The replacement for
- * the functionality in this package is {@link javax.lang.model.util}.
- *
- * @since 1.5
- */
-package com.sun.mirror.util;
--- a/langtools/src/share/classes/com/sun/tools/apt/Main.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt;
-
-import java.io.PrintWriter;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * The main program for the command-line tool apt.
- *
- * <p>Nothing described in this source file is part of any supported
- * API. If you write code that depends on this, you do so at your own
- * risk. This code and its internal interfaces are subject to change
- * or deletion without notice.
- */
-public class Main {
-
- static {
- ClassLoader loader = Main.class.getClassLoader();
- if (loader != null)
- loader.setPackageAssertionStatus("com.sun.tools.apt", true);
- }
-
- /** Command line interface. If args is <tt>null</tt>, a
- * <tt>NullPointerException</tt> is thrown.
- * @param args The command line parameters.
- */
- public static void main(String... args) {
- System.exit(process(args));
- }
-
- /** Programatic interface. If args is <tt>null</tt>, a
- * <tt>NullPointerException</tt> is thrown.
- * Output is directed to <tt>System.err</tt>.
- * @param args The command line parameters.
- */
- public static int process(String... args) {
- return processing(null, null, args);
- }
-
- /** Programmatic interface. If any argument
- * is <tt>null</tt>, a <tt>NullPointerException</tt> is thrown.
- * @param args The command line parameters.
- * @param out Where the tool's output is directed.
- */
- public static int process(PrintWriter out, String... args) {
- if (out == null)
- throw new NullPointerException("Parameter out cannot be null.");
- return processing(null, out, args);
- }
-
- /** Programmatic interface. If <tt>factory</tt> or <tt>args</tt>
- * is <tt>null</tt>, a <tt>NullPointerException</tt> is thrown.
- * The "<tt>-factory</tt>" and "<tt>-factorypath</tt>"
- * command line parameters are ignored by this entry point.
- * Output is directed to <tt>System.err</tt>.
- *
- * @param factory The annotation processor factory to use
- * @param args The command line parameters.
- */
- public static int process(AnnotationProcessorFactory factory, String... args) {
- return process(factory, new PrintWriter(System.err, true), args);
- }
-
- /** Programmatic interface. If any argument
- * is <tt>null</tt>, a <tt>NullPointerException</tt> is thrown.
- * The "<tt>-factory</tt>" and "<tt>-factorypath</tt>"
- * command line parameters are ignored by this entry point.
- *
- * @param factory The annotation processor factory to use
- * @param args The command line parameters.
- * @param out Where the tool's output is directed.
- */
- public static int process(AnnotationProcessorFactory factory, PrintWriter out,
- String... args) {
- if (out == null)
- throw new NullPointerException("Parameter out cannot be null.");
- if (factory == null)
- throw new NullPointerException("Parameter factory cannot be null");
- return processing(factory, out, args);
- }
-
- private static int processing(AnnotationProcessorFactory factory,
- PrintWriter out,
- String... args) {
- if (out == null)
- out = new PrintWriter(System.err, true);
- com.sun.tools.apt.main.Main compiler =
- new com.sun.tools.apt.main.Main("apt", out);
- return compiler.compile(args, factory);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/AnnotationProcessingError.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.comp;
-
-public class AnnotationProcessingError extends Error {
- private static final long serialVersionUID = 3279196183341719287L;
- AnnotationProcessingError(Throwable cause) {
- super(cause);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/Apt.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,509 +0,0 @@
-/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.comp;
-
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.comp.*;
-import com.sun.tools.javac.tree.*;
-import com.sun.tools.javac.util.*;
-import com.sun.tools.javac.tree.TreeScanner;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.apt.util.Bark;
-import com.sun.tools.javac.util.Position;
-
-import java.util.*;
-import java.util.regex.*;
-import java.lang.reflect.*;
-import java.lang.reflect.InvocationTargetException;
-import java.io.IOException;
-
-import com.sun.tools.apt.*;
-import com.sun.tools.apt.comp.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.apt.*;
-// import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.apt.AnnotationProcessors;
-
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.apt.mirror.apt.FilerImpl;
-import com.sun.tools.apt.mirror.apt.AnnotationProcessorEnvironmentImpl;
-
-
-import static com.sun.tools.apt.mirror.declaration.DeclarationMaker.isJavaIdentifier;
-
-/**
- * Apt compiler phase.
- *
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own
- * risk. This code and its internal interfaces are subject to change
- * or deletion without notice.</b>
- */
-@SuppressWarnings("deprecation")
-public class Apt extends ListBuffer<Env<AttrContext>> {
- java.util.Set<String> genSourceFileNames = new java.util.LinkedHashSet<String>();
- public java.util.Set<String> getSourceFileNames() {
- return genSourceFileNames;
- }
-
- /** List of names of generated class files.
- */
- java.util.Set<String> genClassFileNames = new java.util.LinkedHashSet<String>();
- public java.util.Set<String> getClassFileNames() {
- return genClassFileNames;
- }
-
- /* AptEnvironment */
- AptEnv aptenv;
-
- private Context context;
-
- /** The context key for the todo list. */
-
- protected static final Context.Key<Apt> aptKey =
- new Context.Key<Apt>();
-
- /** Get the Apt instance for this context. */
- public static Apt instance(Context context) {
- Apt instance = context.get(aptKey);
- if (instance == null)
- instance = new Apt(context);
- return instance;
- }
-
- /** Create a new apt list. */
- protected Apt(Context context) {
- this.context = context;
-
- context.put(aptKey, this);
- aptenv = AptEnv.instance(context);
- }
-
- /**
- * Used to scan javac trees to build data structures needed for
- * bootstrapping the apt environment. In particular:
- *
- * <ul>
- *
- * <li> Generate list of canonical names of annotation types that
- * appear in source files given on the command line
- *
- * <li> Collect list of javac symbols representing source files
- * given on the command line
- *
- * </ul>
- */
- static class AptTreeScanner extends TreeScanner {
-
- // Set of fully qualified names of annotation types present in
- // examined source
- private Set<String> annotationSet;
-
- // Symbols to build bootstrapping declaration list
- private Collection<ClassSymbol> specifiedDeclCollection;
- private Collection<ClassSymbol> declCollection;
-
- public Set<String> getAnnotationSet() {
- return annotationSet;
- }
-
- public AptTreeScanner() {
- annotationSet = new LinkedHashSet<String>();
- specifiedDeclCollection = new LinkedHashSet<ClassSymbol>();
- declCollection = new LinkedHashSet<ClassSymbol>();
- }
-
- public void visitTopLevel(JCTree.JCCompilationUnit tree) {
- super.visitTopLevel(tree);
- // Print out contents -- what are we dealing with?
-
- for(JCTree d: tree.defs) {
- if (d instanceof JCTree.JCClassDecl)
- specifiedDeclCollection.add(((JCTree.JCClassDecl) d).sym);
- }
-
- }
-
- public void visitBlock(JCTree.JCBlock tree) {
- ; // Do nothing.
- }
-
-
- // should add nested classes to packages, etc.
- public void visitClassDef(JCTree.JCClassDecl tree) {
- if (tree.sym == null) {
- // could be an anon class w/in an initializer
- return;
- }
-
- super.visitClassDef(tree);
-
- declCollection.add(tree.sym);
- }
-
- public void visitMethodDef(JCTree.JCMethodDecl tree) {
- super.visitMethodDef(tree);
- }
-
- public void visitVarDef(JCTree.JCVariableDecl tree) {
- super.visitVarDef(tree);
- }
-
- public void visitAnnotation(JCTree.JCAnnotation tree) {
- super.visitAnnotation(tree);
- annotationSet.add(tree.type.tsym.toString());
- }
- }
-
- Set<String> computeAnnotationSet(Collection<ClassSymbol> classSymbols) {
- Set<String> annotationSet = new HashSet<String>();
-
- for(ClassSymbol classSymbol: classSymbols) {
- computeAnnotationSet(classSymbol, annotationSet);
- }
- return annotationSet;
- }
-
- void computeAnnotationSet(Symbol symbol, Set<String> annotationSet) {
- if (symbol != null ) {
- if (symbol.getAnnotationMirrors() != null)
- for(Attribute.Compound compound: symbol.getAnnotationMirrors())
- annotationSet.add(compound.type.tsym.toString()); // should fullName be used instead of toString?
-
- if (symbol instanceof Symbol.MethodSymbol) // add parameter annotations
- for(Symbol param: ((MethodSymbol) symbol).params())
- computeAnnotationSet(param, annotationSet);
-
- if (symbol.members() != null) {
- for(Scope.Entry e = symbol.members().elems; e != null; e = e.sibling)
- computeAnnotationSet(e.sym, annotationSet);
- }
- }
- }
-
- public void main(com.sun.tools.javac.util.List<JCTree.JCCompilationUnit> treeList,
- ListBuffer<ClassSymbol> classes,
- Map<String, String> origOptions,
- ClassLoader aptCL,
- AnnotationProcessorFactory providedFactory,
- java.util.Set<Class<? extends AnnotationProcessorFactory> > productiveFactories) {
- Bark bark = Bark.instance(context);
- java.io.PrintWriter out = bark.getWriter(Log.WriterKind.WARNING);
- Options options = Options.instance(context);
-
- Collection<TypeDeclaration> spectypedecls = new LinkedHashSet<TypeDeclaration>();
- Collection<TypeDeclaration> typedecls = new LinkedHashSet<TypeDeclaration>();
- Set<String> unmatchedAnnotations = new LinkedHashSet<String>();
- Set<AnnotationTypeDeclaration> emptyATDS = Collections.emptySet();
- Set<Class<? extends AnnotationProcessorFactory> > currentRoundFactories =
- new LinkedHashSet<Class<? extends AnnotationProcessorFactory> >();
-
- // Determine what annotations are present on the input source
- // files, create collections of specified type declarations,
- // and type declarations.
- AptTreeScanner ats = new AptTreeScanner();
- for(JCTree t: treeList) {
- t.accept(ats);
- }
-
- // Turn collection of ClassSymbols into Collection of apt decls
- for (ClassSymbol cs : ats.specifiedDeclCollection) {
- TypeDeclaration decl = aptenv.declMaker.getTypeDeclaration(cs);
- spectypedecls.add(decl);
- }
-
- for (ClassSymbol cs : ats.declCollection) {
- TypeDeclaration decl = aptenv.declMaker.getTypeDeclaration(cs);
- typedecls.add(decl);
- }
-
- unmatchedAnnotations.addAll(ats.getAnnotationSet());
-
- // Process input class files
- for(ClassSymbol cs : classes) {
- TypeDeclaration decl = aptenv.declMaker.getTypeDeclaration(cs);
- // System.out.println("Adding a class to spectypedecls");
- spectypedecls.add(decl);
- typedecls.add(decl);
- computeAnnotationSet(cs, unmatchedAnnotations);
- }
-
- if (options.get("-XListAnnotationTypes") != null) {
- out.println("Set of annotations found:" +
- (new TreeSet<String>(unmatchedAnnotations)).toString());
- }
-
- AnnotationProcessorEnvironmentImpl trivAPE =
- new AnnotationProcessorEnvironmentImpl(spectypedecls, typedecls, origOptions, context);
-
- if (options.get("-XListDeclarations") != null) {
- out.println("Set of Specified Declarations:" +
- spectypedecls);
-
- out.println("Set of Included Declarations: " +
- typedecls);
- }
-
- if (options.get("-print") != null) {
- if (spectypedecls.size() == 0 )
- throw new UsageMessageNeededException();
-
- // Run the printing processor
- AnnotationProcessor proc = (new BootstrapAPF()).getProcessorFor(new HashSet<AnnotationTypeDeclaration>(),
- trivAPE);
- proc.process();
- } else {
- // Discovery process
-
- // List of annotation processory factory instances
- java.util.Iterator<AnnotationProcessorFactory> providers = null;
- {
- /*
- * If a factory is provided by the user, the
- * "-factory" and "-factorypath" options are not used.
- *
- * Otherwise, if the "-factory" option is used, search
- * the appropriate path for the named class.
- * Otherwise, use sun.misc.Service to implement the
- * default discovery policy.
- */
-
- java.util.List<AnnotationProcessorFactory> list =
- new LinkedList<AnnotationProcessorFactory>();
- String factoryName = options.get("-factory");
-
- if (providedFactory != null) {
- list.add(providedFactory);
- providers = list.iterator();
- } else if (factoryName != null) {
- try {
- AnnotationProcessorFactory factory =
- (AnnotationProcessorFactory) (aptCL.loadClass(factoryName).newInstance());
- list.add(factory);
- } catch (ClassNotFoundException cnfe) {
- bark.aptWarning("FactoryNotFound", factoryName);
- } catch (ClassCastException cce) {
- bark.aptWarning("FactoryWrongType", factoryName);
- } catch (Exception e ) {
- bark.aptWarning("FactoryCantInstantiate", factoryName);
- } catch(Throwable t) {
- throw new AnnotationProcessingError(t);
- }
-
- providers = list.iterator();
- } else {
- @SuppressWarnings("unchecked")
- Iterator<AnnotationProcessorFactory> iter =
- sun.misc.Service.providers(AnnotationProcessorFactory.class, aptCL);
- providers = iter;
-
- }
- }
-
- java.util.Map<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>> factoryToAnnotation =
- new LinkedHashMap<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>>();
-
- if (!providers.hasNext() && productiveFactories.size() == 0) {
- if (unmatchedAnnotations.size() > 0)
- bark.aptWarning("NoAnnotationProcessors");
- if (spectypedecls.size() == 0)
- throw new UsageMessageNeededException();
- return; // no processors; nothing else to do
- } else {
- // If there are no annotations, still give
- // processors that match everything a chance to
- // run.
-
- if(unmatchedAnnotations.size() == 0)
- unmatchedAnnotations.add("");
-
- Set<String> emptyStringSet = new HashSet<String>();
- emptyStringSet.add("");
- emptyStringSet = Collections.unmodifiableSet(emptyStringSet);
-
- while (providers.hasNext() ) {
- Object provider = providers.next();
- try {
- Set<String> matchedStrings = new HashSet<String>();
-
- AnnotationProcessorFactory apf = (AnnotationProcessorFactory) provider;
- Collection<String> supportedTypes = apf.supportedAnnotationTypes();
-
- Collection<Pattern> supportedTypePatterns = new LinkedList<Pattern>();
- for(String s: supportedTypes)
- supportedTypePatterns.add(importStringToPattern(s));
-
- for(String s: unmatchedAnnotations) {
- for(Pattern p: supportedTypePatterns) {
- if (p.matcher(s).matches()) {
- matchedStrings.add(s);
- break;
- }
- }
- }
-
- unmatchedAnnotations.removeAll(matchedStrings);
-
- if (options.get("-XPrintFactoryInfo") != null) {
- out.println("Factory " + apf.getClass().getName() +
- " matches " +
- ((matchedStrings.size() == 0)?
- "nothing.": matchedStrings));
- }
-
- if (matchedStrings.size() > 0) {
- // convert annotation names to annotation
- // type decls
- Set<AnnotationTypeDeclaration> atds = new HashSet<AnnotationTypeDeclaration>();
-
- // If a "*" processor is called on the
- // empty string, pass in an empty set of
- // annotation type declarations.
- if (!matchedStrings.equals(emptyStringSet)) {
- for(String s: matchedStrings) {
- TypeDeclaration decl = aptenv.declMaker.getTypeDeclaration(s);
- AnnotationTypeDeclaration annotdecl;
- if (decl == null) {
- bark.aptError("DeclarationCreation", s);
- } else {
- try {
- annotdecl = (AnnotationTypeDeclaration)decl;
- atds.add(annotdecl);
-
- } catch (ClassCastException cce) {
- bark.aptError("BadDeclaration", s);
- }
- }
- }
- }
-
- currentRoundFactories.add(apf.getClass());
- productiveFactories.add(apf.getClass());
- factoryToAnnotation.put(apf, atds);
- } else if (productiveFactories.contains(apf.getClass())) {
- // If a factory provided a processor in a
- // previous round but doesn't match any
- // annotations this round, call it with an
- // empty set of declarations.
- currentRoundFactories.add(apf.getClass());
- factoryToAnnotation.put(apf, emptyATDS );
- }
-
- if (unmatchedAnnotations.size() == 0)
- break;
-
- } catch (ClassCastException cce) {
- bark.aptWarning("BadFactory", cce);
- }
- }
-
- unmatchedAnnotations.remove("");
- }
-
- // If the set difference of productiveFactories and
- // currentRoundFactories is non-empty, call the remaining
- // productive factories with an empty set of declarations.
- {
- java.util.Set<Class<? extends AnnotationProcessorFactory> > neglectedFactories =
- new LinkedHashSet<Class<? extends AnnotationProcessorFactory>>(productiveFactories);
- neglectedFactories.removeAll(currentRoundFactories);
- for(Class<? extends AnnotationProcessorFactory> working : neglectedFactories) {
- try {
- AnnotationProcessorFactory factory = working.newInstance();
- factoryToAnnotation.put(factory, emptyATDS);
- } catch (Exception e ) {
- bark.aptWarning("FactoryCantInstantiate", working.getName());
- } catch(Throwable t) {
- throw new AnnotationProcessingError(t);
- }
- }
- }
-
- if (unmatchedAnnotations.size() > 0)
- bark.aptWarning("AnnotationsWithoutProcessors", unmatchedAnnotations);
-
- Set<AnnotationProcessor> processors = new LinkedHashSet<AnnotationProcessor>();
-
- // If there were no source files AND no factory matching "*",
- // make sure the usage message is printed
- if (spectypedecls.size() == 0 &&
- factoryToAnnotation.keySet().size() == 0 )
- throw new UsageMessageNeededException();
-
- try {
- for(Map.Entry<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>> entry :
- factoryToAnnotation.entrySet()) {
- AnnotationProcessorFactory apFactory = entry.getKey();
- AnnotationProcessor processor = apFactory.getProcessorFor(entry.getValue(),
- trivAPE);
- if (processor != null)
- processors.add(processor);
- else
- bark.aptWarning("NullProcessor", apFactory.getClass().getName());
- }
- } catch(Throwable t) {
- throw new AnnotationProcessingError(t);
- }
-
- LinkedList<AnnotationProcessor> temp = new LinkedList<AnnotationProcessor>();
- temp.addAll(processors);
-
- AnnotationProcessor proc = AnnotationProcessors.getCompositeAnnotationProcessor(temp);
-
- try {
- proc.process();
- } catch (Throwable t) {
- throw new AnnotationProcessingError(t);
- }
-
- // Invoke listener callback mechanism
- trivAPE.roundComplete();
-
- FilerImpl filerimpl = (FilerImpl)trivAPE.getFiler();
- genSourceFileNames = filerimpl.getSourceFileNames();
- genClassFileNames = filerimpl.getClassFileNames();
- filerimpl.flush(); // Make sure new files are written out
- }
- }
-
- /**
- * Convert import-style string to regex matching that string. If
- * the string is a valid import-style string, return a regex that
- * won't match anything.
- */
- Pattern importStringToPattern(String s) {
- if (com.sun.tools.javac.processing.JavacProcessingEnvironment.isValidImportString(s)) {
- return com.sun.tools.javac.processing.JavacProcessingEnvironment.validImportStringToPattern(s);
- } else {
- Bark bark = Bark.instance(context);
- bark.aptWarning("MalformedSupportedString", s);
- return com.sun.tools.javac.processing.JavacProcessingEnvironment.noMatches;
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/BootstrapAPF.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.comp;
-
-import java.util.*;
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-@SuppressWarnings("deprecation")
-public class BootstrapAPF implements AnnotationProcessorFactory {
-
- static final Collection<String> supportedOptions =
- Collections.unmodifiableSet(new HashSet<String>());
-
- static Collection<String> supportedAnnotations;
- static {
- Collection<String> c = new HashSet<String>();
- c.add("*");
- supportedAnnotations = Collections.unmodifiableCollection(c);
- }
-
- public BootstrapAPF(){}
-
- public Collection<String> supportedOptions() {
- return BootstrapAPF.supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new PrintAP(env);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/PrintAP.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,467 +0,0 @@
-/*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.comp;
-
-import com.sun.mirror.declaration.*;
-import static com.sun.mirror.declaration.Modifier.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.apt.*;
-
-import java.util.*;
-import com.sun.mirror.util.*;
-
-/**
- * Class used to implement "-print" option.
- */
-@SuppressWarnings("deprecation")
-public class PrintAP implements AnnotationProcessor {
-
-
- static class PrintingVisitors {
- int indentation = 0; // Indentation level;
- AnnotationProcessorEnvironment env;
- Messager out;
- Declaration java_lang_Object;
- Declaration java_lang_annotation_Annotation;
-
- static Set<Modifier> EMPTY_ELIDES = Collections.emptySet();
- static Set<Modifier> INTERFACE_ELIDES = EnumSet.of(ABSTRACT);
- static Set<Modifier> ENUM_ELIDES = EnumSet.of(FINAL, ABSTRACT);
- static Set<Modifier> INTERFACE_MEMBER_ELIDES = EnumSet.of(ABSTRACT, PUBLIC, STATIC, FINAL);
-
- PrintingVisitors(AnnotationProcessorEnvironment env) {
- this.env = env;
- this.out = env.getMessager();
- this.java_lang_Object = env.getTypeDeclaration("java.lang.Object");
- this.java_lang_annotation_Annotation = env.getTypeDeclaration("java.lang.annotation.Annotation");
- }
-
-
- static String [] spaces = {
- "",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " "
- };
-
-
- String indent(){
- int indentation = this.indentation;
- if (indentation < 0)
- return "";
- else if (indentation <= 10)
- return spaces[indentation];
- else {
- StringBuilder sb = new StringBuilder();
- while (indentation > 10) {
- sb.append(spaces[indentation]);
- indentation -= 10;
- }
- sb.append(spaces[indentation]);
- return sb.toString();
- }
- }
-
-
- class PrePrinting extends SimpleDeclarationVisitor {
- Map<EnumDeclaration, Integer> enumCardinality = new HashMap<EnumDeclaration, Integer>();
- Map<EnumDeclaration, Integer> enumConstVisited = new HashMap<EnumDeclaration, Integer>();
-
- PrePrinting(){}
-
- public void visitClassDeclaration(ClassDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d, EMPTY_ELIDES);
- System.out.print("class " + d.getSimpleName());
- printFormalTypeParameters(d);
-
- // Elide "extends Object"
- ClassType Super = d.getSuperclass();
- if (Super != null && !java_lang_Object.equals(Super.getDeclaration()) )
- System.out.print(" extends " + Super.toString());
-
- printInterfaces(d);
-
- System.out.println(" {");
-
- PrintingVisitors.this.indentation++;
- }
-
- public void visitEnumDeclaration(EnumDeclaration d) {
- enumCardinality.put(d, d.getEnumConstants().size());
- enumConstVisited.put(d, 1);
-
- System.out.println();
- printDocComment(d);
- printModifiers(d, ENUM_ELIDES);
-
- System.out.print("enum " + d.getSimpleName());
- printFormalTypeParameters(d);
- printInterfaces(d);
-
- System.out.println(" {");
-
- PrintingVisitors.this.indentation++;
- }
-
-
- public void visitInterfaceDeclaration(InterfaceDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d, INTERFACE_ELIDES);
- System.out.print("interface " + d.getSimpleName());
-
- printFormalTypeParameters(d);
- printInterfaces(d);
-
- System.out.println(" {");
-
- PrintingVisitors.this.indentation++;
- }
-
- public void visitAnnotationTypeDeclaration(AnnotationTypeDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d, INTERFACE_ELIDES);
- System.out.print("@interface " + d.getSimpleName());
- printFormalTypeParameters(d);
-
- printInterfaces(d);
-
- System.out.println(" {");
-
- PrintingVisitors.this.indentation++;
- }
-
- public void visitFieldDeclaration(FieldDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d,
- (d.getDeclaringType() instanceof InterfaceDeclaration)?
- INTERFACE_MEMBER_ELIDES : EMPTY_ELIDES);
- System.out.print(d.getType().toString() + " " +
- d.getSimpleName() );
- String constantExpr = d.getConstantExpression();
- if (constantExpr != null) {
- System.out.print(" = " + constantExpr);
- }
- System.out.println(";" );
- }
-
- public void visitEnumConstantDeclaration(EnumConstantDeclaration d) {
- EnumDeclaration ed = d.getDeclaringType();
- int enumCard = enumCardinality.get(ed);
- int enumVisit = enumConstVisited.get(ed);
-
- System.out.println();
- printDocComment(d);
- System.out.print(PrintingVisitors.this.indent());
- System.out.print(d.getSimpleName() );
- System.out.println((enumVisit < enumCard )? ",":";" );
-
- enumConstVisited.put(ed, enumVisit+1);
- }
-
- public void visitMethodDeclaration(MethodDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d,
- (d.getDeclaringType() instanceof InterfaceDeclaration)?
- INTERFACE_MEMBER_ELIDES : EMPTY_ELIDES);
- printFormalTypeParameters(d);
- System.out.print(d.getReturnType().toString() + " ");
- System.out.print(d.getSimpleName() + "(");
- printParameters(d);
- System.out.print(")");
- printThrows(d);
- System.out.println(";");
- }
-
- public void visitConstructorDeclaration(ConstructorDeclaration d) {
- System.out.println();
- printDocComment(d);
- printModifiers(d, EMPTY_ELIDES);
- printFormalTypeParameters(d);
- System.out.print(d.getSimpleName() + "(");
- printParameters(d);
- System.out.print(")");
- printThrows(d);
- System.out.println(";");
- }
-
-
- }
-
- class PostPrinting extends SimpleDeclarationVisitor {
- PostPrinting(){}
-
- public void visitTypeDeclaration(TypeDeclaration d) {
- PrintingVisitors.this.indentation--;
-
- System.out.print(PrintingVisitors.this.indent());
- System.out.println("}");
- }
- }
-
- private void printAnnotations(Collection<AnnotationMirror> annots) {
-
- for(AnnotationMirror annot: annots) {
- System.out.print(this.indent());
- System.out.print(annot.toString());
- System.out.println();
- }
- }
-
- private void printAnnotationsInline(Collection<AnnotationMirror> annots) {
-
- for(AnnotationMirror annot: annots) {
- System.out.print(annot);
- System.out.print(" ");
- }
- }
-
-
- private void printParameters(ExecutableDeclaration ex) {
-
- Collection<ParameterDeclaration> parameters = ex.getParameters();
- int size = parameters.size();
-
- switch (size) {
- case 0:
- break;
-
- case 1:
- for(ParameterDeclaration parameter: parameters) {
- printModifiers(parameter, EMPTY_ELIDES);
-
- if (ex.isVarArgs() ) {
- System.out.print(((ArrayType)parameter.getType()).getComponentType() );
- System.out.print("...");
- } else
- System.out.print(parameter.getType());
- System.out.print(" " + parameter.getSimpleName());
- }
- break;
-
- default:
- {
- int i = 1;
- for(ParameterDeclaration parameter: parameters) {
- if (i == 2)
- PrintingVisitors.this.indentation++;
-
- if (i > 1)
- System.out.print(PrintingVisitors.this.indent());
-
- printModifiers(parameter, EMPTY_ELIDES);
-
- if (i == size && ex.isVarArgs() ) {
- System.out.print(((ArrayType)parameter.getType()).getComponentType() );
- System.out.print("...");
- } else
- System.out.print(parameter.getType());
- System.out.print(" " + parameter.getSimpleName());
-
- if (i < size)
- System.out.println(",");
-
- i++;
- }
-
- if (parameters.size() >= 2)
- PrintingVisitors.this.indentation--;
- }
- break;
- }
- }
-
- private void printDocComment(Declaration d) {
- String docComment = d.getDocComment();
-
- if (docComment != null) {
- // Break comment into lines
- java.util.StringTokenizer st = new StringTokenizer(docComment,
- "\n\r");
- System.out.print(PrintingVisitors.this.indent());
- System.out.println("/**");
-
- while(st.hasMoreTokens()) {
- System.out.print(PrintingVisitors.this.indent());
- System.out.print(" *");
- System.out.println(st.nextToken());
- }
-
- System.out.print(PrintingVisitors.this.indent());
- System.out.println(" */");
- }
- }
-
- private void printModifiers(Declaration d, Collection<Modifier> elides) {
- printAnnotations(d.getAnnotationMirrors());
-
- System.out.print(PrintingVisitors.this.indent());
-
- for(Modifier m: adjustModifiers(d.getModifiers(), elides) ){
- System.out.print(m.toString() + " ");
- }
- }
-
- private void printModifiers(ParameterDeclaration d, Collection<Modifier> elides) {
- printAnnotationsInline(d.getAnnotationMirrors());
-
- for(Modifier m: adjustModifiers(d.getModifiers(), elides) ) {
- System.out.print(m.toString() + " ");
- }
- }
-
- private Collection<Modifier> adjustModifiers(Collection<Modifier> mods,
- Collection<Modifier> elides) {
- if (elides.isEmpty())
- return mods;
- else {
- Collection<Modifier> newMods = new LinkedHashSet<Modifier>();
- newMods.addAll(mods);
- newMods.removeAll(elides);
- return newMods;
- }
- }
-
- private void printFormalTypeParameters(ExecutableDeclaration e) {
- printFormalTypeParameterSet(e.getFormalTypeParameters(), true);
- }
-
- private void printFormalTypeParameters(TypeDeclaration d) {
- printFormalTypeParameterSet(d.getFormalTypeParameters(), false);
- }
-
- private void printFormalTypeParameterSet(Collection<TypeParameterDeclaration> typeParams, boolean pad) {
- if (typeParams.size() != 0) {
- System.out.print("<");
-
- boolean first = true;
- for(TypeParameterDeclaration tpd: typeParams) {
- if (!first)
- System.out.print(", ");
- System.out.print(tpd.toString());
- }
-
- System.out.print(">");
- if (pad)
- System.out.print(" ");
-
- }
- }
-
- private void printInterfaceSet(Collection<InterfaceType> interfaces,
- boolean classNotInterface) {
- if (interfaces.size() != 0) {
- System.out.print((classNotInterface?" implements" : " extends"));
-
- boolean first = true;
- for(InterfaceType interType: interfaces) {
- if (!first)
- System.out.print(",");
- System.out.print(" ");
- System.out.print(interType.toString());
- first = false;
- }
- }
- }
-
- private void printInterfaces(TypeDeclaration d) {
- printInterfaceSet(d.getSuperinterfaces(), d instanceof ClassDeclaration);
- }
-
- private void printInterfaces(AnnotationTypeDeclaration d) {
- Collection<InterfaceType> interfaces = new HashSet<InterfaceType>(d.getSuperinterfaces());
-
- for(InterfaceType interType: interfaces) {
- if (java_lang_annotation_Annotation.equals(interType.getDeclaration()) )
- interfaces.remove(interType);
- }
-
- printInterfaceSet(interfaces, d instanceof ClassDeclaration);
- }
-
- private void printThrows(ExecutableDeclaration d) {
- Collection<ReferenceType> thrownTypes = d.getThrownTypes();
- final int size = thrownTypes.size();
- if (size != 0) {
- System.out.print(" throws");
-
- int i = 1;
- for(ReferenceType thrownType: thrownTypes) {
- if (i == 1) {
- System.out.print(" ");
- }
-
- if (i == 2)
- PrintingVisitors.this.indentation++;
-
- if (i >= 2)
- System.out.print(PrintingVisitors.this.indent());
-
- System.out.print(thrownType.toString());
-
-
- if (i != size) {
- System.out.println(", ");
- }
- i++;
- }
-
- if (size >= 2)
- PrintingVisitors.this.indentation--;
- }
- }
-
- DeclarationVisitor getPrintingVisitor() {
- return DeclarationVisitors.getSourceOrderDeclarationScanner(new PrePrinting(),
- new PostPrinting());
- }
- }
-
- AnnotationProcessorEnvironment env;
- PrintAP(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
-
- public void process() {
- Collection<TypeDeclaration> typedecls = env.getSpecifiedTypeDeclarations();
-
- for (TypeDeclaration td: typedecls)
- td.accept((new PrintingVisitors(env)).getPrintingVisitor());
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/UsageMessageNeededException.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.comp;
-
-
-public class UsageMessageNeededException extends RuntimeException {
- private static final long serialVersionUID = -3265159608992825840L;
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/main/AptJavaCompiler.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,291 +0,0 @@
-/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.main;
-
-import java.io.*;
-import java.util.Map;
-
-import javax.tools.JavaFileManager;
-import javax.tools.JavaFileObject;
-
-import com.sun.tools.javac.file.JavacFileManager;
-import com.sun.tools.javac.util.*;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.jvm.*;
-
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.tree.JCTree.*;
-
-import com.sun.tools.apt.comp.*;
-import com.sun.tools.apt.util.Bark;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own
- * risk. This code and its internal interfaces are subject to change
- * or deletion without notice.</b>
- */
-@SuppressWarnings("deprecation")
-public class AptJavaCompiler extends com.sun.tools.javac.main.JavaCompiler {
- /** The context key for the compiler. */
- protected static final Context.Key<AptJavaCompiler> compilerKey =
- new Context.Key<AptJavaCompiler>();
-
- /** Get the JavaCompiler instance for this context. */
- public static AptJavaCompiler instance(Context context) {
- AptJavaCompiler instance = context.get(compilerKey);
- if (instance == null)
- instance = new AptJavaCompiler(context);
- return instance;
- }
-
-
- java.util.Set<String> genSourceFileNames;
- java.util.Set<String> genClassFileNames;
-
- public java.util.Set<String> getSourceFileNames() {
- return genSourceFileNames;
- }
-
- /** List of names of generated class files.
- */
- public java.util.Set<String> getClassFileNames() {
- return genClassFileNames;
- }
-
- java.util.Set<java.io.File> aggregateGenFiles = java.util.Collections.emptySet();
-
- public java.util.Set<java.io.File> getAggregateGenFiles() {
- return aggregateGenFiles;
- }
-
- /** The bark to be used for error reporting.
- */
- Bark bark;
-
- /** The log to be used for error reporting.
- */
- Log log;
-
- /** The annotation framework
- */
- Apt apt;
-
- private static Context preRegister(Context context) {
- Bark.preRegister(context);
-
- if (context.get(JavaFileManager.class) == null)
- JavacFileManager.preRegister(context);
-
- return context;
- }
-
- /** Construct a new compiler from a shared context.
- */
- public AptJavaCompiler(Context context) {
- super(preRegister(context));
-
- context.put(compilerKey, this);
- apt = Apt.instance(context);
-
- ClassReader classReader = ClassReader.instance(context);
- classReader.preferSource = true;
-
- // TEMPORARY NOTE: bark==log, but while refactoring, we maintain their
- // original identities, to remember the original intent.
- log = Log.instance(context);
- bark = Bark.instance(context);
-
- Options options = Options.instance(context);
- classOutput = options.get("-retrofit") == null;
- nocompile = options.get("-nocompile") != null;
- print = options.get("-print") != null;
- classesAsDecls= options.get("-XclassesAsDecls") != null;
-
- genSourceFileNames = new java.util.LinkedHashSet<String>();
- genClassFileNames = new java.util.LinkedHashSet<String>();
-
- // this forces a copy of the line map to be kept in the tree,
- // for use by com.sun.mirror.util.SourcePosition.
- lineDebugInfo = true;
- }
-
- /* Switches:
- */
-
- /** Emit class files. This switch is always set, except for the first
- * phase of retrofitting, where signatures are parsed.
- */
- public boolean classOutput;
-
- /** The internal printing annotation processor should be used.
- */
- public boolean print;
-
- /** Compilation should not be done after annotation processing.
- */
- public boolean nocompile;
-
- /** Are class files being treated as declarations
- */
- public boolean classesAsDecls;
-
- /** Try to open input stream with given name.
- * Report an error if this fails.
- * @param filename The file name of the input stream to be opened.
- */
- // PROVIDED FOR EXTREME BACKWARDS COMPATIBILITY
- // There are some very obscure errors that can arise while translating
- // the contents of a file from bytes to characters. In Tiger, these
- // diagnostics were ignored. This method provides compatibility with
- // that behavior. It would be better to honor those diagnostics, in which
- // case, this method can be deleted.
- @Override
- public CharSequence readSource(JavaFileObject filename) {
- try {
- inputFiles.add(filename);
- boolean prev = bark.setDiagnosticsIgnored(true);
- try {
- return filename.getCharContent(false);
- }
- finally {
- bark.setDiagnosticsIgnored(prev);
- }
- } catch (IOException e) {
- bark.error(Position.NOPOS, "cant.read.file", filename);
- return null;
- }
- }
-
- /** Parse contents of input stream.
- * @param filename The name of the file from which input stream comes.
- * @param input The input stream to be parsed.
- */
- // PROVIDED FOR BACKWARDS COMPATIBILITY
- // In Tiger, diagnostics from the scanner and parser were ignored.
- // This method provides compatibility with that behavior.
- // It would be better to honor those diagnostics, in which
- // case, this method can be deleted.
- @Override
- protected JCCompilationUnit parse(JavaFileObject filename, CharSequence content) {
- boolean prev = bark.setDiagnosticsIgnored(true);
- try {
- return super.parse(filename, content);
- }
- finally {
- bark.setDiagnosticsIgnored(prev);
- }
- }
-
- @Override
- protected boolean keepComments() {
- return true; // make doc comments available to mirror API impl.
- }
-
- /** Track when the JavaCompiler has been used to compile something. */
- private boolean hasBeenUsed = false;
-
- /** Main method: compile a list of files, return all compiled classes
- * @param filenames The names of all files to be compiled.
- */
- public List<ClassSymbol> compile(List<String> filenames,
- Map<String, String> origOptions,
- ClassLoader aptCL,
- AnnotationProcessorFactory providedFactory,
- java.util.Set<Class<? extends AnnotationProcessorFactory> > productiveFactories,
- java.util.Set<java.io.File> aggregateGenFiles)
- throws Throwable {
- // as a JavaCompiler can only be used once, throw an exception if
- // it has been used before.
- assert !hasBeenUsed : "attempt to reuse JavaCompiler";
- hasBeenUsed = true;
-
- this.aggregateGenFiles = aggregateGenFiles;
-
- long msec = System.currentTimeMillis();
-
- ListBuffer<ClassSymbol> classes = new ListBuffer<ClassSymbol>();
- try {
- JavacFileManager fm = (JavacFileManager)fileManager;
- //parse all files
- ListBuffer<JCCompilationUnit> trees = new ListBuffer<JCCompilationUnit>();
- for (List<String> l = filenames; l.nonEmpty(); l = l.tail) {
- if (classesAsDecls) {
- if (! l.head.endsWith(".java") ) { // process as class file
- ClassSymbol cs = reader.enterClass(names.fromString(l.head));
- try {
- cs.complete();
- } catch(Symbol.CompletionFailure cf) {
- bark.aptError("CantFindClass", l);
- continue;
- }
-
- classes.append(cs); // add to list of classes
- continue;
- }
- }
- JavaFileObject fo = fm.getJavaFileObjectsFromStrings(List.of(l.head)).iterator().next();
- trees.append(parse(fo));
- }
-
- //enter symbols for all files
- List<JCCompilationUnit> roots = trees.toList();
-
- if (errorCount() == 0) {
- boolean prev = bark.setDiagnosticsIgnored(true);
- try {
- enter.main(roots);
- }
- finally {
- bark.setDiagnosticsIgnored(prev);
- }
- }
-
- if (errorCount() == 0) {
- apt.main(roots,
- classes,
- origOptions, aptCL,
- providedFactory,
- productiveFactories);
- genSourceFileNames.addAll(apt.getSourceFileNames());
- genClassFileNames.addAll(apt.getClassFileNames());
- }
-
- } catch (Abort ex) {
- }
-
- if (verbose)
- log.printVerbose("total", Long.toString(System.currentTimeMillis() - msec));
-
- chk.reportDeferredDiagnostics();
-
- printCount("error", errorCount());
- printCount("warn", warningCount());
-
- return classes.toList();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/main/CommandLine.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.main;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.FileReader;
-import java.io.BufferedReader;
-import java.io.StreamTokenizer;
-import com.sun.tools.javac.util.ListBuffer;
-
-/**
- * Various utility methods for processing Java tool command line arguments.
- *
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.</b>
- */
-public class CommandLine {
- /**
- * Process Win32-style command files for the specified command line
- * arguments and return the resulting arguments. A command file argument
- * is of the form '@file' where 'file' is the name of the file whose
- * contents are to be parsed for additional arguments. The contents of
- * the command file are parsed using StreamTokenizer and the original
- * '@file' argument replaced with the resulting tokens. Recursive command
- * files are not supported. The '@' character itself can be quoted with
- * the sequence '@@'.
- */
- public static String[] parse(String[] args)
- throws IOException
- {
- ListBuffer<String> newArgs = new ListBuffer<String>();
- for (int i = 0; i < args.length; i++) {
- String arg = args[i];
- if (arg.length() > 1 && arg.charAt(0) == '@') {
- arg = arg.substring(1);
- if (arg.charAt(0) == '@') {
- newArgs.append(arg);
- } else {
- loadCmdFile(arg, newArgs);
- }
- } else {
- newArgs.append(arg);
- }
- }
- return newArgs.toList().toArray(new String[newArgs.length()]);
- }
-
- private static void loadCmdFile(String name, ListBuffer<String> args)
- throws IOException
- {
- Reader r = new BufferedReader(new FileReader(name));
- StreamTokenizer st = new StreamTokenizer(r);
- st.resetSyntax();
- st.wordChars(' ', 255);
- st.whitespaceChars(0, ' ');
- st.commentChar('#');
- st.quoteChar('"');
- st.quoteChar('\'');
- while (st.nextToken() != StreamTokenizer.TT_EOF) {
- args.append(st.sval);
- }
- r.close();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/main/Main.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1281 +0,0 @@
-/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.main;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.text.MessageFormat;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-import java.util.StringTokenizer;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Collections;
-
-import java.net.URLClassLoader;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-import javax.tools.JavaFileManager;
-import javax.tools.StandardLocation;
-
-import com.sun.tools.javac.file.JavacFileManager;
-import com.sun.tools.javac.code.Source;
-import com.sun.tools.javac.code.Symbol;
-import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.jvm.Target;
-import com.sun.tools.javac.util.*;
-
-import com.sun.tools.apt.comp.AnnotationProcessingError;
-import com.sun.tools.apt.comp.UsageMessageNeededException;
-import com.sun.tools.apt.util.Bark;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-import static com.sun.tools.javac.file.Locations.pathToURLs;
-
-/** This class provides a commandline interface to the apt build-time
- * tool.
- *
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own
- * risk. This code and its internal interfaces are subject to change
- * or deletion without notice.</b>
- */
-@SuppressWarnings("deprecation")
-public class Main {
-
- /** For testing: enter any options you want to be set implicitly
- * here.
- */
- static String[] forcedOpts = {
- // Preserve parameter names from class files if the class was
- // compiled with debug enabled
- "-XDsave-parameter-names"
- };
-
- /** The name of the compiler, for use in diagnostics.
- */
- String ownName;
-
- /** The writer to use for diagnostic output.
- */
- PrintWriter out;
-
-
- /** Instantiated factory to use in lieu of discovery process.
- */
- AnnotationProcessorFactory providedFactory = null;
-
- /** Map representing original command-line arguments.
- */
- Map<String,String> origOptions = new HashMap<String, String>();
-
- /** Classloader to use for finding factories.
- */
- ClassLoader aptCL = null;
-
- /** Result codes.
- */
- static final int
- EXIT_OK = 0, // Compilation completed with no errors.
- EXIT_ERROR = 1, // Completed but reported errors.
- EXIT_CMDERR = 2, // Bad command-line arguments
- EXIT_SYSERR = 3, // System error or resource exhaustion.
- EXIT_ABNORMAL = 4; // Compiler terminated abnormally
-
- /** This class represents an option recognized by the main program
- */
- private class Option {
- /** Whether or not the option is used only aptOnly.
- */
- boolean aptOnly = false;
-
- /** Option string.
- */
- String name;
-
- /** Documentation key for arguments.
- */
- String argsNameKey;
-
- /** Documentation key for description.
- */
- String descrKey;
-
- /** Suffix option (-foo=bar or -foo:bar)
- */
- boolean hasSuffix;
-
- Option(String name, String argsNameKey, String descrKey) {
- this.name = name;
- this.argsNameKey = argsNameKey;
- this.descrKey = descrKey;
- char lastChar = name.charAt(name.length()-1);
- hasSuffix = lastChar == ':' || lastChar == '=';
- }
- Option(String name, String descrKey) {
- this(name, null, descrKey);
- }
-
- public String toString() {
- return name;
- }
-
- /** Does this option take a (separate) operand?
- */
- boolean hasArg() {
- return argsNameKey != null && !hasSuffix;
- }
-
- /** Does argument string match option pattern?
- * @param arg The command line argument string.
- */
- boolean matches(String arg) {
- return hasSuffix ? arg.startsWith(name) : arg.equals(name);
- }
-
- /** For javac-only options, print nothing.
- */
- void help() {
- }
-
- String helpSynopsis() {
- return name +
- (argsNameKey == null ? "" :
- ((hasSuffix ? "" : " ") +
- getLocalizedString(argsNameKey)));
- }
-
- /** Print a line of documentation describing this option, if non-standard.
- */
- void xhelp() {}
-
- /** Process the option (with arg). Return true if error detected.
- */
- boolean process(String option, String arg) {
- options.put(option, arg);
- return false;
- }
-
- /** Process the option (without arg). Return true if error detected.
- */
- boolean process(String option) {
- if (hasSuffix)
- return process(name, option.substring(name.length()));
- else
- return process(option, option);
- }
- };
-
- private class SharedOption extends Option {
- SharedOption(String name, String argsNameKey, String descrKey) {
- super(name, argsNameKey, descrKey);
- }
-
- SharedOption(String name, String descrKey) {
- super(name, descrKey);
- }
-
- void help() {
- String s = " " + helpSynopsis();
- out.print(s);
- for (int j = s.length(); j < 29; j++) out.print(" ");
- Bark.printRawLines(out, getLocalizedString(descrKey));
- }
-
- }
-
- private class AptOption extends Option {
- AptOption(String name, String argsNameKey, String descrKey) {
- super(name, argsNameKey, descrKey);
- aptOnly = true;
- }
-
- AptOption(String name, String descrKey) {
- super(name, descrKey);
- aptOnly = true;
- }
-
- /** Print a line of documentation describing this option, if standard.
- */
- void help() {
- String s = " " + helpSynopsis();
- out.print(s);
- for (int j = s.length(); j < 29; j++) out.print(" ");
- Bark.printRawLines(out, getLocalizedString(descrKey));
- }
-
- }
-
- /** A nonstandard or extended (-X) option
- */
- private class XOption extends Option {
- XOption(String name, String argsNameKey, String descrKey) {
- super(name, argsNameKey, descrKey);
- }
- XOption(String name, String descrKey) {
- this(name, null, descrKey);
- }
- void help() {}
- void xhelp() {}
- };
-
- /** A nonstandard or extended (-X) option
- */
- private class AptXOption extends Option {
- AptXOption(String name, String argsNameKey, String descrKey) {
- super(name, argsNameKey, descrKey);
- aptOnly = true;
- }
- AptXOption(String name, String descrKey) {
- this(name, null, descrKey);
- }
- void xhelp() {
- String s = " " + helpSynopsis();
- out.print(s);
- for (int j = s.length(); j < 29; j++) out.print(" ");
- Log.printRawLines(out, getLocalizedString(descrKey));
- }
- };
-
- /** A hidden (implementor) option
- */
- private class HiddenOption extends Option {
- HiddenOption(String name) {
- super(name, null, null);
- }
- HiddenOption(String name, String argsNameKey) {
- super(name, argsNameKey, null);
- }
- void help() {}
- void xhelp() {}
- };
-
- private class AptHiddenOption extends HiddenOption {
- AptHiddenOption(String name) {
- super(name);
- aptOnly = true;
- }
- AptHiddenOption(String name, String argsNameKey) {
- super(name, argsNameKey);
- aptOnly = true;
- }
- }
-
- private Option[] recognizedOptions = {
- new Option("-g", "opt.g"),
- new Option("-g:none", "opt.g.none") {
- boolean process(String option) {
- options.put("-g:", "none");
- return false;
- }
- },
-
- new Option("-g:{lines,vars,source}", "opt.g.lines.vars.source") {
- boolean matches(String s) {
- return s.startsWith("-g:");
- }
- boolean process(String option) {
- String suboptions = option.substring(3);
- options.put("-g:", suboptions);
- // enter all the -g suboptions as "-g:suboption"
- for (StringTokenizer t = new StringTokenizer(suboptions, ","); t.hasMoreTokens(); ) {
- String tok = t.nextToken();
- String opt = "-g:" + tok;
- options.put(opt, opt);
- }
- return false;
- }
- },
-
- new XOption("-Xlint", "opt.Xlint"),
- new XOption("-Xlint:{"
- + "all,"
- + "cast,deprecation,divzero,empty,unchecked,fallthrough,path,serial,finally,overrides,"
- + "-cast,-deprecation,-divzero,-empty,-unchecked,-fallthrough,-path,-serial,-finally,-overrides,"
- + "none}",
- "opt.Xlint.suboptlist") {
- boolean matches(String s) {
- return s.startsWith("-Xlint:");
- }
- boolean process(String option) {
- String suboptions = option.substring(7);
- options.put("-Xlint:", suboptions);
- // enter all the -Xlint suboptions as "-Xlint:suboption"
- for (StringTokenizer t = new StringTokenizer(suboptions, ","); t.hasMoreTokens(); ) {
- String tok = t.nextToken();
- String opt = "-Xlint:" + tok;
- options.put(opt, opt);
- }
- return false;
- }
- },
-
- new Option("-nowarn", "opt.nowarn"),
- new Option("-verbose", "opt.verbose"),
-
- // -deprecation is retained for command-line backward compatibility
- new Option("-deprecation", "opt.deprecation") {
- boolean process(String option) {
- options.put("-Xlint:deprecation", option);
- return false;
- }
- },
-
- new SharedOption("-classpath", "opt.arg.path", "opt.classpath"),
- new SharedOption("-cp", "opt.arg.path", "opt.classpath") {
- boolean process(String option, String arg) {
- return super.process("-classpath", arg);
- }
- },
- new Option("-sourcepath", "opt.arg.path", "opt.sourcepath"),
- new Option("-bootclasspath", "opt.arg.path", "opt.bootclasspath") {
- boolean process(String option, String arg) {
- options.remove("-Xbootclasspath/p:");
- options.remove("-Xbootclasspath/a:");
- return super.process(option, arg);
- }
- },
- new XOption("-Xbootclasspath/p:", "opt.arg.path", "opt.Xbootclasspath.p"),
- new XOption("-Xbootclasspath/a:", "opt.arg.path", "opt.Xbootclasspath.a"),
- new XOption("-Xbootclasspath:", "opt.arg.path", "opt.bootclasspath") {
- boolean process(String option, String arg) {
- options.remove("-Xbootclasspath/p:");
- options.remove("-Xbootclasspath/a:");
- return super.process("-bootclasspath", arg);
- }
- },
- new Option("-extdirs", "opt.arg.dirs", "opt.extdirs"),
- new XOption("-Djava.ext.dirs=", "opt.arg.dirs", "opt.extdirs") {
- boolean process(String option, String arg) {
- return super.process("-extdirs", arg);
- }
- },
- new Option("-endorseddirs", "opt.arg.dirs", "opt.endorseddirs"),
- new XOption("-Djava.endorsed.dirs=","opt.arg.dirs", "opt.endorseddirs") {
- boolean process(String option, String arg) {
- return super.process("-endorseddirs", arg);
- }
- },
- new Option("-proc:{none, only}", "opt.proc.none.only") {
- public boolean matches(String s) {
- return s.equals("-proc:none") || s.equals("-proc:only");
- }
- },
- new Option("-processor", "opt.arg.class", "opt.processor"),
- new Option("-processorpath", "opt.arg.path", "opt.processorpath"),
-
- new SharedOption("-d", "opt.arg.path", "opt.d"),
- new SharedOption("-s", "opt.arg.path", "opt.s"),
- new Option("-encoding", "opt.arg.encoding", "opt.encoding"),
- new SharedOption("-source", "opt.arg.release", "opt.source") {
- boolean process(String option, String operand) {
- Source source = Source.lookup(operand);
- if (source == null) {
- error("err.invalid.source", operand);
- return true;
- } else if (source.compareTo(Source.JDK1_5) > 0) {
- error("err.unsupported.source.version", operand);
- return true;
- }
- return super.process(option, operand);
- }
- },
- new Option("-target", "opt.arg.release", "opt.target") {
- boolean process(String option, String operand) {
- Target target = Target.lookup(operand);
- if (target == null) {
- error("err.invalid.target", operand);
- return true;
- } else if (target.compareTo(Target.JDK1_5) > 0) {
- error("err.unsupported.target.version", operand);
- return true;
- }
- return super.process(option, operand);
- }
- },
- new AptOption("-version", "opt.version") {
- boolean process(String option) {
- Bark.printRawLines(out, ownName + " " + AptJavaCompiler.version());
- return super.process(option);
- }
- },
- new HiddenOption("-fullversion"),
- new AptOption("-help", "opt.help") {
- boolean process(String option) {
- Main.this.help();
- return super.process(option);
- }
- },
- new SharedOption("-X", "opt.X") {
- boolean process(String option) {
- Main.this.xhelp();
- return super.process(option);
- }
- },
-
- // This option exists only for the purpose of documenting itself.
- // It's actually implemented by the launcher.
- new AptOption("-J", "opt.arg.flag", "opt.J") {
- String helpSynopsis() {
- hasSuffix = true;
- return super.helpSynopsis();
- }
- boolean process(String option) {
- throw new AssertionError
- ("the -J flag should be caught by the launcher.");
- }
- },
-
-
- new SharedOption("-A", "opt.proc.flag", "opt.A") {
- String helpSynopsis() {
- hasSuffix = true;
- return super.helpSynopsis();
- }
-
- boolean matches(String arg) {
- return arg.startsWith("-A");
- }
-
- boolean hasArg() {
- return false;
- }
-
- boolean process(String option) {
- return process(option, option);
- }
- },
-
- new AptOption("-nocompile", "opt.nocompile"),
-
- new AptOption("-print", "opt.print"),
-
- new AptOption("-factorypath", "opt.arg.path", "opt.factorypath"),
-
- new AptOption("-factory", "opt.arg.class", "opt.factory"),
-
- new AptXOption("-XListAnnotationTypes", "opt.XListAnnotationTypes"),
-
- new AptXOption("-XListDeclarations", "opt.XListDeclarations"),
-
- new AptXOption("-XPrintAptRounds", "opt.XPrintAptRounds"),
-
- new AptXOption("-XPrintFactoryInfo", "opt.XPrintFactoryInfo"),
-
- /*
- * Option to treat both classes and source files as
- * declarations that can be given on the command line and
- * processed as the result of an apt round.
- */
- new AptXOption("-XclassesAsDecls", "opt.XClassesAsDecls"),
-
- // new Option("-moreinfo", "opt.moreinfo") {
- new HiddenOption("-moreinfo") {
- boolean process(String option) {
- Type.moreInfo = true;
- return super.process(option);
- }
- },
-
- // treat warnings as errors
- new HiddenOption("-Werror"),
-
- // use complex inference from context in the position of a method call argument
- new HiddenOption("-complexinference"),
-
- // prompt after each error
- // new Option("-prompt", "opt.prompt"),
- new HiddenOption("-prompt"),
-
- // dump stack on error
- new HiddenOption("-doe"),
-
- // display warnings for generic unchecked and unsafe operations
- new HiddenOption("-warnunchecked") {
- boolean process(String option) {
- options.put("-Xlint:unchecked", option);
- return false;
- }
- },
-
- new HiddenOption("-Xswitchcheck") {
- boolean process(String option) {
- options.put("-Xlint:switchcheck", option);
- return false;
- }
- },
-
- // generate trace output for subtyping operations
- new HiddenOption("-debugsubtyping"),
-
- new XOption("-Xmaxerrs", "opt.arg.number", "opt.maxerrs"),
- new XOption("-Xmaxwarns", "opt.arg.number", "opt.maxwarns"),
- new XOption("-Xstdout", "opt.arg.file", "opt.Xstdout") {
- boolean process(String option, String arg) {
- try {
- out = new PrintWriter(new FileWriter(arg), true);
- } catch (java.io.IOException e) {
- error("err.error.writing.file", arg, e);
- return true;
- }
- return super.process(option, arg);
- }
- },
-
- new XOption("-Xprint", "opt.print"),
-
- new XOption("-XprintRounds", "opt.printRounds"),
-
- new XOption("-XprintProcessorInfo", "opt.printProcessorInfo"),
-
-
- /* -O is a no-op, accepted for backward compatibility. */
- new HiddenOption("-O"),
-
- /* -Xjcov produces tables to support the code coverage tool jcov. */
- new HiddenOption("-Xjcov"),
-
- /* This is a back door to the compiler's option table.
- * -Dx=y sets the option x to the value y.
- * -Dx sets the option x to the value x.
- */
- new HiddenOption("-XD") {
- String s;
- boolean matches(String s) {
- this.s = s;
- return s.startsWith(name);
- }
- boolean process(String option) {
- s = s.substring(name.length());
- int eq = s.indexOf('=');
- String key = (eq < 0) ? s : s.substring(0, eq);
- String value = (eq < 0) ? s : s.substring(eq+1);
- options.put(key, value);
- return false;
- }
- },
-
- new HiddenOption("sourcefile") {
- String s;
- boolean matches(String s) {
- this.s = s;
- return s.endsWith(".java") ||
- (options.get("-XclassesAsDecls") != null);
- }
- boolean process(String option) {
- if (s.endsWith(".java")) {
- if (!sourceFileNames.contains(s))
- sourceFileNames.add(s);
- } else if (options.get("-XclassesAsDecls") != null) {
- classFileNames.add(s);
- }
- return false;
- }
- },
- };
-
- /**
- * Construct a compiler instance.
- */
- public Main(String name) {
- this(name, new PrintWriter(System.err, true));
- }
-
- /**
- * Construct a compiler instance.
- */
- public Main(String name, PrintWriter out) {
- this.ownName = name;
- this.out = out;
- }
-
- /** A table of all options that's passed to the JavaCompiler constructor. */
- private Options options = null;
-
- /** The list of source files to process
- */
- java.util.List<String> sourceFileNames = new java.util.LinkedList<String>();
-
- /** The list of class files to process
- */
- java.util.List<String> classFileNames = new java.util.LinkedList<String>();
-
- /** List of top level names of generated source files from most recent apt round.
- */
- java.util.Set<String> genSourceFileNames = new java.util.LinkedHashSet<String>();
-
- /** List of names of generated class files from most recent apt round.
- */
- java.util.Set<String> genClassFileNames = new java.util.LinkedHashSet<String>();
-
- /**
- * List of all the generated source file names across all apt rounds.
- */
- java.util.Set<String> aggregateGenSourceFileNames = new java.util.LinkedHashSet<String>();
-
- /**
- * List of all the generated class file names across all apt rounds.
- */
- java.util.Set<String> aggregateGenClassFileNames = new java.util.LinkedHashSet<String>();
-
- /**
- * List of all the generated file names across all apt rounds.
- */
- java.util.Set<java.io.File> aggregateGenFiles = new java.util.LinkedHashSet<java.io.File>();
-
- /**
- * Set of all factories that have provided a processor on some apt round.
- */
- java.util.Set<Class<? extends AnnotationProcessorFactory> > productiveFactories =
- new java.util.LinkedHashSet<Class<? extends AnnotationProcessorFactory> >();
-
-
-
- /** Print a string that explains usage.
- */
- void help() {
- Bark.printRawLines(out, getLocalizedString("msg.usage.header", ownName));
- for (int i=0; i < recognizedOptions.length; i++) {
- recognizedOptions[i].help();
- }
- Bark.printRawLines(out, getLocalizedString("msg.usage.footer"));
- out.println();
- }
-
- /** Print a string that explains usage for X options.
- */
- void xhelp() {
- for (int i=0; i<recognizedOptions.length; i++) {
- recognizedOptions[i].xhelp();
- }
- out.println();
- Bark.printRawLines(out, getLocalizedString("msg.usage.nonstandard.footer"));
- }
-
- /** Report a usage error.
- */
- void error(String key, Object... args) {
- warning(key, args);
- help();
- }
-
- /** Report a warning.
- */
- void warning(String key, Object... args) {
- Bark.printRawLines(out, ownName + ": "
- + getLocalizedString(key, args));
- }
-
- /** Process command line arguments: store all command line options
- * in `options' table and return all source filenames.
- * @param args The array of command line arguments.
- */
- protected java.util.List<String> processArgs(String[] flags) {
- int ac = 0;
- while (ac < flags.length) {
- String flag = flags[ac];
- ac++;
-
- int j;
- for (j=0; j < recognizedOptions.length; j++)
- if (recognizedOptions[j].matches(flag))
- break;
-
- if (j == recognizedOptions.length) {
- error("err.invalid.flag", flag);
- return null;
- }
-
- Option option = recognizedOptions[j];
- if (option.hasArg()) {
- if (ac == flags.length) {
- error("err.req.arg", flag);
- return null;
- }
- String operand = flags[ac];
- ac++;
- if (option.process(flag, operand))
- return null;
- } else {
- if (option.process(flag))
- return null;
- }
- }
-
- String sourceString = options.get("-source");
- Source source = (sourceString != null)
- ? Source.lookup(sourceString)
- : Source.JDK1_5; // JDK 5 is the latest supported source version
- String targetString = options.get("-target");
- Target target = (targetString != null)
- ? Target.lookup(targetString)
- : Target.JDK1_5; // JDK 5 is the latest supported source version
- // We don't check source/target consistency for CLDC, as J2ME
- // profiles are not aligned with J2SE targets; moreover, a
- // single CLDC target may have many profiles. In addition,
- // this is needed for the continued functioning of the JSR14
- // prototype.
- if (Character.isDigit(target.name.charAt(0)) &&
- target.compareTo(source.requiredTarget()) < 0) {
- if (targetString != null) {
- if (sourceString == null) {
- warning("warn.target.default.source.conflict",
- targetString,
- source.requiredTarget().name);
- } else {
- warning("warn.source.target.conflict",
- sourceString,
- source.requiredTarget().name);
- }
- return null;
- } else {
- options.put("-target", source.requiredTarget().name);
- }
- }
- return sourceFileNames;
- }
-
- /** Programmatic interface for main function.
- * @param args The command line parameters.
- */
- public int compile(String[] args, AnnotationProcessorFactory factory) {
- int returnCode = 0;
- providedFactory = factory;
-
- Context context = new Context();
- JavacFileManager.preRegister(context);
- options = Options.instance(context);
- Bark bark;
-
- /*
- * Process the command line options to create the intial
- * options data. This processing is at least partially reused
- * by any recursive apt calls.
- */
-
- // For testing: assume all arguments in forcedOpts are
- // prefixed to command line arguments.
- processArgs(forcedOpts);
-
- /*
- * A run of apt only gets passed the most recently generated
- * files; the initial run of apt gets passed the files from
- * the command line.
- */
-
- java.util.List<String> origFilenames;
- try {
- // assign args the result of parse to capture results of
- // '@file' expansion
- origFilenames = processArgs((args=CommandLine.parse(args)));
-
- if (options.get("suppress-tool-api-removal-message") == null) {
- Bark.printRawLines(out, getLocalizedString("misc.Deprecation"));
- }
-
- if (origFilenames == null) {
- return EXIT_CMDERR;
- } else if (origFilenames.size() == 0) {
- // it is allowed to compile nothing if just asking for help
- if (options.get("-help") != null ||
- options.get("-X") != null)
- return EXIT_OK;
- }
- } catch (java.io.FileNotFoundException e) {
- Bark.printRawLines(out, ownName + ": " +
- getLocalizedString("err.file.not.found",
- e.getMessage()));
- return EXIT_SYSERR;
- } catch (IOException ex) {
- ioMessage(ex);
- return EXIT_SYSERR;
- } catch (OutOfMemoryError ex) {
- resourceMessage(ex);
- return EXIT_SYSERR;
- } catch (StackOverflowError ex) {
- resourceMessage(ex);
- return EXIT_SYSERR;
- } catch (FatalError ex) {
- feMessage(ex);
- return EXIT_SYSERR;
- } catch (sun.misc.ServiceConfigurationError sce) {
- sceMessage(sce);
- return EXIT_ABNORMAL;
- } catch (Throwable ex) {
- bugMessage(ex);
- return EXIT_ABNORMAL;
- }
-
-
- boolean firstRound = true;
- boolean needSourcePath = false;
- boolean needClassPath = false;
- boolean classesAsDecls = options.get("-XclassesAsDecls") != null;
-
- /*
- * Create augumented classpath and sourcepath values.
- *
- * If any of the prior apt rounds generated any new source
- * files, the n'th apt round (and any javac invocation) has the
- * source destination path ("-s path") as the last element of
- * the "-sourcepath" to the n'th call.
- *
- * If any of the prior apt rounds generated any new class files,
- * the n'th apt round (and any javac invocation) has the class
- * destination path ("-d path") as the last element of the
- * "-classpath" to the n'th call.
- */
- String augmentedSourcePath = "";
- String augmentedClassPath = "";
- String baseClassPath = "";
-
- try {
- /*
- * Record original options for future annotation processor
- * invocations.
- */
- origOptions = new HashMap<String, String>(options.size());
- for(String s: options.keySet()) {
- String value;
- if (s.equals(value = options.get(s)))
- origOptions.put(s, (String)null);
- else
- origOptions.put(s, value);
- }
- origOptions = Collections.unmodifiableMap(origOptions);
-
- JavacFileManager fm = (JavacFileManager) context.get(JavaFileManager.class);
- {
- // Note: it might be necessary to check for an empty
- // component ("") of the source path or class path
-
- String sourceDest = options.get("-s");
- if (fm.hasLocation(StandardLocation.SOURCE_PATH)) {
- for(File f: fm.getLocation(StandardLocation.SOURCE_PATH))
- augmentedSourcePath += (f + File.pathSeparator);
- augmentedSourcePath += (sourceDest == null)?".":sourceDest;
- } else {
- augmentedSourcePath = ".";
-
- if (sourceDest != null)
- augmentedSourcePath += (File.pathSeparator + sourceDest);
- }
-
- String classDest = options.get("-d");
- if (fm.hasLocation(StandardLocation.CLASS_PATH)) {
- for(File f: fm.getLocation(StandardLocation.CLASS_PATH))
- baseClassPath += (f + File.pathSeparator);
- // put baseClassPath into map to handle any
- // value needed for the classloader
- options.put("-classpath", baseClassPath);
-
- augmentedClassPath = baseClassPath + ((classDest == null)?".":classDest);
- } else {
- baseClassPath = ".";
- if (classDest != null)
- augmentedClassPath = baseClassPath + (File.pathSeparator + classDest);
- }
- assert options.get("-classpath") != null;
- }
-
- /*
- * Create base and augmented class loaders
- */
- ClassLoader augmentedAptCL = null;
- {
- /*
- * Use a url class loader to look for classes on the
- * user-specified class path. Prepend computed bootclass
- * path, which includes extdirs, to the URLClassLoader apt
- * uses.
- */
- String aptclasspath = "";
- String bcp = "";
- Iterable<? extends File> bootclasspath = fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH);
-
- if (bootclasspath != null) {
- for(File f: bootclasspath)
- bcp += (f + File.pathSeparator);
- }
-
- // If the factory path is set, use that path
- if (providedFactory == null)
- aptclasspath = options.get("-factorypath");
- if (aptclasspath == null)
- aptclasspath = options.get("-classpath");
-
- assert aptclasspath != null;
- aptclasspath = (bcp + aptclasspath);
- aptCL = new URLClassLoader(pathToURLs(aptclasspath));
-
- if (providedFactory == null &&
- options.get("-factorypath") != null) // same CL even if new class files written
- augmentedAptCL = aptCL;
- else {
- // Create class loader in case new class files are
- // written
- augmentedAptCL = new URLClassLoader(pathToURLs(augmentedClassPath.
- substring(baseClassPath.length())),
- aptCL);
- }
- }
-
- int round = 0; // For -XPrintAptRounds
- do {
- round++;
-
- Context newContext = new Context();
- Options newOptions = Options.instance(newContext); // creates a new context
- newOptions.putAll(options);
-
- // populate with old options... don't bother reparsing command line, etc.
-
- // if genSource files, must add destination to source path
- if (genSourceFileNames.size() > 0 && !firstRound) {
- newOptions.put("-sourcepath", augmentedSourcePath);
- needSourcePath = true;
- }
- aggregateGenSourceFileNames.addAll(genSourceFileNames);
- sourceFileNames.addAll(genSourceFileNames);
- genSourceFileNames.clear();
-
- // Don't really need to track this; just have to add -d
- // "foo" to class path if any class files are generated
- if (genClassFileNames.size() > 0) {
- newOptions.put("-classpath", augmentedClassPath);
- aptCL = augmentedAptCL;
- needClassPath = true;
- }
- aggregateGenClassFileNames.addAll(genClassFileNames);
- classFileNames.addAll(genClassFileNames);
- genClassFileNames.clear();
-
- options = newOptions;
-
- if (options.get("-XPrintAptRounds") != null) {
- out.println("apt Round : " + round);
- out.println("filenames: " + sourceFileNames);
- if (classesAsDecls)
- out.println("classnames: " + classFileNames);
- out.println("options: " + options);
- }
-
- returnCode = compile(args, newContext);
- firstRound = false;
-
- // Check for reported errors before continuing
- bark = Bark.instance(newContext);
- } while(((genSourceFileNames.size() != 0 ) ||
- (classesAsDecls && genClassFileNames.size() != 0)) &&
- bark.nerrors == 0);
- } catch (UsageMessageNeededException umne) {
- help();
- return EXIT_CMDERR; // will cause usage message to be printed
- }
-
- /*
- * Do not compile if a processor has reported an error or if
- * there are no source files to process. A more sophisticated
- * test would also fail for syntax errors caught by javac.
- */
- if (options.get("-nocompile") == null &&
- options.get("-print") == null &&
- bark.nerrors == 0 &&
- (origFilenames.size() > 0 || aggregateGenSourceFileNames.size() > 0 )) {
- /*
- * Need to create new argument string for calling javac:
- * 1. apt specific arguments (e.g. -factory) must be stripped out
- * 2. proper settings for sourcepath and classpath must be used
- * 3. generated class names must be added
- * 4. class file names as declarations must be removed
- */
-
- int newArgsLength = args.length +
- (needSourcePath?1:0) +
- (needClassPath?1:0) +
- aggregateGenSourceFileNames.size();
-
- // Null out apt-specific options and don't copy over into
- // newArgs. This loop should be a lot faster; the options
- // array should be replaced with a better data structure
- // which includes a map from strings to options.
- //
- // If treating classes as declarations, must strip out
- // class names from the javac argument list
- argLoop:
- for(int i = 0; i < args.length; i++) {
- int matchPosition = -1;
-
- // "-A" by itself is recognized by apt but not javac
- if (args[i] != null && args[i].equals("-A")) {
- newArgsLength--;
- args[i] = null;
- continue argLoop;
- } else {
- optionLoop:
- for(int j = 0; j < recognizedOptions.length; j++) {
- if (args[i] != null && recognizedOptions[j].matches(args[i])) {
- matchPosition = j;
- break optionLoop;
- }
- }
-
- if (matchPosition != -1) {
- Option op = recognizedOptions[matchPosition];
- if (op.aptOnly) {
- newArgsLength--;
- args[i] = null;
- if (op.hasArg()) {
- newArgsLength--;
- args[i+1] = null;
- }
- } else {
- if (op.hasArg()) { // skip over next string
- i++;
- continue argLoop;
- }
-
- if ((options.get("-XclassesAsDecls") != null) &&
- (matchPosition == (recognizedOptions.length-1)) ){
- // Remove class file names from
- // consideration by javac.
- if (! args[i].endsWith(".java")) {
- newArgsLength--;
- args[i] = null;
- }
- }
- }
- }
- }
- }
-
- String newArgs[] = new String[newArgsLength];
-
- int j = 0;
- for(int i=0; i < args.length; i++) {
- if (args[i] != null)
- newArgs[j++] = args[i];
- }
-
- if (needClassPath)
- newArgs[j++] = "-XD-classpath=" + augmentedClassPath;
-
- if (needSourcePath) {
- newArgs[j++] = "-XD-sourcepath=" + augmentedSourcePath;
-
- for(String s: aggregateGenSourceFileNames)
- newArgs[j++] = s;
- }
-
- returnCode = com.sun.tools.javac.Main.compile(newArgs);
- }
-
- return returnCode;
- }
-
- /** Programmatic interface for main function.
- * @param args The command line parameters.
- */
- int compile(String[] args, Context context) {
- boolean assertionsEnabled = false;
- assert assertionsEnabled = true;
- if (!assertionsEnabled) {
- // Bark.printLines(out, "fatal error: assertions must be enabled when running javac");
- // return EXIT_ABNORMAL;
- }
- int exitCode = EXIT_OK;
-
- AptJavaCompiler comp = null;
- try {
- context.put(Bark.outKey, out);
-
- comp = AptJavaCompiler.instance(context);
- if (comp == null)
- return EXIT_SYSERR;
-
- java.util.List<String> nameList = new java.util.LinkedList<String>();
- nameList.addAll(sourceFileNames);
- if (options.get("-XclassesAsDecls") != null)
- nameList.addAll(classFileNames);
-
- List<Symbol.ClassSymbol> cs
- = comp.compile(List.from(nameList.toArray(new String[0])),
- origOptions,
- aptCL,
- providedFactory,
- productiveFactories,
- aggregateGenFiles);
-
- /*
- * If there aren't new source files, we shouldn't bother
- * running javac if there were errors.
- *
- * If there are new files, we should try running javac in
- * case there were typing errors.
- *
- */
-
- if (comp.errorCount() != 0 ||
- options.get("-Werror") != null && comp.warningCount() != 0)
- return EXIT_ERROR;
- } catch (IOException ex) {
- ioMessage(ex);
- return EXIT_SYSERR;
- } catch (OutOfMemoryError ex) {
- resourceMessage(ex);
- return EXIT_SYSERR;
- } catch (StackOverflowError ex) {
- resourceMessage(ex);
- return EXIT_SYSERR;
- } catch (FatalError ex) {
- feMessage(ex);
- return EXIT_SYSERR;
- } catch (UsageMessageNeededException umne) {
- help();
- return EXIT_CMDERR; // will cause usage message to be printed
- } catch (AnnotationProcessingError ex) {
- apMessage(ex);
- return EXIT_ABNORMAL;
- } catch (sun.misc.ServiceConfigurationError sce) {
- sceMessage(sce);
- return EXIT_ABNORMAL;
- } catch (Throwable ex) {
- bugMessage(ex);
- return EXIT_ABNORMAL;
- } finally {
- if (comp != null) {
- comp.close();
- genSourceFileNames.addAll(comp.getSourceFileNames());
- genClassFileNames.addAll(comp.getClassFileNames());
- }
- sourceFileNames = new java.util.LinkedList<String>();
- classFileNames = new java.util.LinkedList<String>();
- }
- return exitCode;
- }
-
- /** Print a message reporting an internal error.
- */
- void bugMessage(Throwable ex) {
- Bark.printRawLines(out, getLocalizedString("msg.bug",
- AptJavaCompiler.version()));
- ex.printStackTrace(out);
- }
-
- /** Print a message reporting an fatal error.
- */
- void apMessage(AnnotationProcessingError ex) {
- Bark.printRawLines(out, getLocalizedString("misc.Problem"));
- ex.getCause().printStackTrace(out);
- }
-
- /** Print a message about sun.misc.Service problem.
- */
- void sceMessage(sun.misc.ServiceConfigurationError ex) {
- Bark.printRawLines(out, getLocalizedString("misc.SunMiscService"));
- ex.printStackTrace(out);
- }
-
- /** Print a message reporting an fatal error.
- */
- void feMessage(Throwable ex) {
- Bark.printRawLines(out, ex.toString());
- }
-
- /** Print a message reporting an input/output error.
- */
- void ioMessage(Throwable ex) {
- Bark.printRawLines(out, getLocalizedString("msg.io"));
- ex.printStackTrace(out);
- }
-
- /** Print a message reporting an out-of-resources error.
- */
- void resourceMessage(Throwable ex) {
- Bark.printRawLines(out, getLocalizedString("msg.resource"));
- ex.printStackTrace(out);
- }
-
- /* ************************************************************************
- * Internationalization
- *************************************************************************/
-
- /** Find a localized string in the resource bundle.
- * @param key The key for the localized string.
- */
- private static String getLocalizedString(String key, Object... args) {
- return getText(key, args);
- }
-
- private static final String javacRB =
- "com.sun.tools.javac.resources.javac";
-
- private static final String aptRB =
- "com.sun.tools.apt.resources.apt";
-
- private static ResourceBundle messageRBjavac;
- private static ResourceBundle messageRBapt;
-
- /** Initialize ResourceBundle.
- */
- private static void initResource() {
- try {
- messageRBapt = ResourceBundle.getBundle(aptRB);
- messageRBjavac = ResourceBundle.getBundle(javacRB);
- } catch (MissingResourceException e) {
- Error x = new FatalError("Fatal Error: Resource for apt or javac is missing");
- x.initCause(e);
- throw x;
- }
- }
-
- /** Get and format message string from resource.
- */
- private static String getText(String key, Object... _args) {
- String[] args = new String[_args.length];
- for (int i=0; i<_args.length; i++) {
- args[i] = "" + _args[i];
- }
- if (messageRBapt == null || messageRBjavac == null )
- initResource();
- try {
- return MessageFormat.format(messageRBapt.getString("apt." + key),
- (Object[]) args);
- } catch (MissingResourceException e) {
- try {
- return MessageFormat.format(messageRBjavac.getString("javac." + key),
- (Object[]) args);
- } catch (MissingResourceException f) {
- String msg = "apt or javac message file broken: key={0} "
- + "arguments={1}, {2}";
- return MessageFormat.format(msg, (Object[]) args);
- }
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror;
-
-
-import com.sun.tools.apt.mirror.declaration.DeclarationMaker;
-import com.sun.tools.apt.mirror.type.TypeMaker;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.CompletionFailure;
-import com.sun.tools.javac.comp.Attr;
-import com.sun.tools.javac.comp.Enter;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Names;
-
-
-/**
- * The environment for a run of apt.
- */
-@SuppressWarnings("deprecation")
-public class AptEnv {
-
- public Names names; // javac's name table
- public Symtab symtab; // javac's predefined symbols
- public Types jctypes; // javac's type utilities
- public Enter enter; // javac's enter phase
- public Attr attr; // javac's attr phase (to evaluate
- // constant initializers)
- public TypeMaker typeMaker; // apt's internal type utilities
- public DeclarationMaker declMaker; // apt's internal declaration utilities
-
-
- private static final Context.Key<AptEnv> aptEnvKey =
- new Context.Key<AptEnv>();
-
- public static AptEnv instance(Context context) {
- AptEnv instance = context.get(aptEnvKey);
- if (instance == null) {
- instance = new AptEnv(context);
- }
- return instance;
- }
-
- private AptEnv(Context context) {
- context.put(aptEnvKey, this);
-
- names = Names.instance(context);
- symtab = Symtab.instance(context);
- jctypes = Types.instance(context);
- enter = Enter.instance(context);
- attr = Attr.instance(context);
- typeMaker = TypeMaker.instance(context);
- declMaker = DeclarationMaker.instance(context);
- }
-
-
- /**
- * Does a symbol have a given flag? Forces symbol completion.
- */
- public static boolean hasFlag(Symbol sym, long flag) {
- return (getFlags(sym) & flag) != 0;
- }
-
- /**
- * Returns a symbol's flags. Forces completion.
- */
- public static long getFlags(Symbol sym) {
- complete(sym);
- return sym.flags();
- }
-
- /**
- * Completes a symbol, ignoring completion failures.
- */
- private static void complete(Symbol sym) {
- while (true) {
- try {
- sym.complete();
- return;
- } catch (CompletionFailure e) {
- // Should never see two in a row, but loop just to be sure.
- }
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/AnnotationProcessorEnvironmentImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.apt;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-import com.sun.mirror.apt.*;
-import com.sun.tools.apt.mirror.apt.*;
-import com.sun.tools.apt.mirror.declaration.DeclarationMaker;
-import com.sun.tools.apt.mirror.util.*;
-import com.sun.tools.apt.util.Bark;
-import com.sun.tools.javac.util.Context;
-
-import com.sun.tools.apt.mirror.apt.FilerImpl;
-import com.sun.tools.apt.mirror.apt.MessagerImpl;
-import com.sun.tools.apt.mirror.apt.RoundStateImpl;
-import com.sun.tools.apt.mirror.apt.RoundCompleteEventImpl;
-
-import com.sun.tools.javac.util.Context;
-
-import java.util.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Annotation Processor Environment implementation.
- */
-@SuppressWarnings("deprecation")
-public class AnnotationProcessorEnvironmentImpl implements AnnotationProcessorEnvironment {
-
- Collection<TypeDeclaration> spectypedecls;
- Collection<TypeDeclaration> typedecls;
- Map<String, String> origOptions;
- DeclarationMaker declMaker;
- Declarations declUtils;
- Types typeUtils;
- Messager messager;
- FilerImpl filer;
- Bark bark;
- Set<RoundCompleteListener> roundCompleteListeners;
-
- public AnnotationProcessorEnvironmentImpl(Collection<TypeDeclaration> spectypedecls,
- Collection<TypeDeclaration> typedecls,
- Map<String, String> origOptions,
- Context context) {
- // Safer to copy collections before applying unmodifiable
- // wrapper.
- this.spectypedecls = Collections.unmodifiableCollection(spectypedecls);
- this.typedecls = Collections.unmodifiableCollection(typedecls);
- this.origOptions = Collections.unmodifiableMap(origOptions);
-
- declMaker = DeclarationMaker.instance(context);
- declUtils = DeclarationsImpl.instance(context);
- typeUtils = TypesImpl.instance(context);
- messager = MessagerImpl.instance(context);
- filer = FilerImpl.instance(context);
- bark = Bark.instance(context);
- roundCompleteListeners = new LinkedHashSet<RoundCompleteListener>();
- }
-
- public Map<String,String> getOptions() {
- return origOptions;
- }
-
- public Messager getMessager() {
- return messager;
- }
-
- public Filer getFiler() {
- return filer;
- }
-
- public Collection<TypeDeclaration> getSpecifiedTypeDeclarations() {
- return spectypedecls;
- }
-
- public PackageDeclaration getPackage(String name) {
- return declMaker.getPackageDeclaration(name);
- }
-
- public TypeDeclaration getTypeDeclaration(String name) {
- return declMaker.getTypeDeclaration(name);
- }
-
- public Collection<TypeDeclaration> getTypeDeclarations() {
- return typedecls;
- }
-
- public Collection<Declaration> getDeclarationsAnnotatedWith(
- AnnotationTypeDeclaration a) {
- /*
- * create collection of Declarations annotated with a given
- * annotation.
- */
-
- CollectingAP proc = new CollectingAP(this, a);
- proc.process();
- return proc.decls;
- }
-
- private static class CollectingAP implements AnnotationProcessor {
- AnnotationProcessorEnvironment env;
- Collection<Declaration> decls;
- AnnotationTypeDeclaration atd;
- CollectingAP(AnnotationProcessorEnvironment env,
- AnnotationTypeDeclaration atd) {
- this.env = env;
- this.atd = atd;
- decls = new HashSet<Declaration>();
- }
-
- private class CollectingVisitor extends SimpleDeclarationVisitor {
- public void visitDeclaration(Declaration d) {
- for(AnnotationMirror am: d.getAnnotationMirrors()) {
- if (am.getAnnotationType().getDeclaration().equals(CollectingAP.this.atd))
- CollectingAP.this.decls.add(d);
- }
- }
- }
-
- public void process() {
- for(TypeDeclaration d: env.getSpecifiedTypeDeclarations())
- d.accept(getSourceOrderDeclarationScanner(new CollectingVisitor(),
- NO_OP));
- }
- }
-
- public Declarations getDeclarationUtils() {
- return declUtils;
- }
-
- public Types getTypeUtils() {
- return typeUtils;
- }
-
- public void addListener(AnnotationProcessorListener listener) {
- if (listener == null)
- throw new NullPointerException();
- else {
- if (listener instanceof RoundCompleteListener)
- roundCompleteListeners.add((RoundCompleteListener)listener);
- }
- }
-
- public void removeListener(AnnotationProcessorListener listener) {
- if (listener == null)
- throw new NullPointerException();
- else
- roundCompleteListeners.remove(listener);
- }
-
- public void roundComplete() {
- RoundState roundState = new RoundStateImpl(bark.nerrors > 0,
- filer.getSourceFileNames().size() > 0,
- filer.getClassFileNames().size() > 0,
- origOptions);
- RoundCompleteEvent roundCompleteEvent = new RoundCompleteEventImpl(this, roundState);
-
- filer.roundOver();
- for(RoundCompleteListener rcl: roundCompleteListeners)
- rcl.roundComplete(roundCompleteEvent);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,354 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.apt;
-
-
-import java.io.*;
-import java.util.Collection;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.Set;
-
-import com.sun.mirror.apt.Filer;
-import com.sun.tools.apt.mirror.declaration.DeclarationMaker;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Options;
-import com.sun.tools.javac.util.Position;
-import com.sun.tools.apt.util.Bark;
-
-import static com.sun.mirror.apt.Filer.Location.*;
-
-
-/**
- * Implementation of Filer.
- */
-@SuppressWarnings("deprecation")
-public class FilerImpl implements Filer {
- /*
- * The Filer class must maintain a number of constraints. First,
- * multiple attempts to open the same path within the same
- * invocation of apt results in an IOException being thrown. For
- * example, trying to open the same source file twice:
- *
- * createSourceFile("foo.Bar")
- * ...
- * createSourceFile("foo.Bar")
- *
- * is disallowed as is opening a text file that happens to have
- * the same name as a source file:
- *
- * createSourceFile("foo.Bar")
- * ...
- * createTextFile(SOURCE_TREE, "foo", new File("Bar"), null)
- *
- * Additionally, creating a source file that corresponds to an
- * already created class file (or vice versa) generates at least a
- * warning. This is an error if -XclassesAsDecls is being used
- * since you can't create the same type twice. However, if the
- * Filer is used to create a text file named *.java that happens
- * to correspond to an existing class file, a warning is *not*
- * generated. Similarly, a warning is not generated for a binary
- * file named *.class and an existing source file.
- *
- * The reason for this difference is that source files and class
- * files are registered with apt and can get passed on as
- * declarations to the next round of processing. Files that are
- * just named *.java and *.class are not processed in that manner;
- * although having extra source files and class files on the
- * source path and class path can alter the behavior of the tool
- * and any final compile.
- */
-
- private enum FileKind {
- SOURCE {
- void register(File file, String name, FilerImpl that) throws IOException {
- // Check for corresponding class file
- if (that.filesCreated.contains(new File(that.locations.get(CLASS_TREE),
- that.nameToPath(name, ".class")))) {
-
- that.bark.aptWarning("CorrespondingClassFile", name);
- if (that.opts.get("-XclassesAsDecls") != null)
- throw new IOException();
- }
- that.sourceFileNames.add(file.getPath());
- }
- },
-
- CLASS {
- void register(File file, String name, FilerImpl that) throws IOException {
- if (that.filesCreated.contains(new File(that.locations.get(SOURCE_TREE),
- that.nameToPath(name, ".java")))) {
- that.bark.aptWarning("CorrespondingSourceFile", name);
- if (that.opts.get("-XclassesAsDecls") != null)
- throw new IOException();
- }
- // Track the binary name instead of the filesystem location
- that.classFileNames.add(name);
- }
- },
-
- OTHER {
- // Nothing special to do
- void register(File file, String name, FilerImpl that) throws IOException {}
- };
-
- abstract void register(File file, String name, FilerImpl that) throws IOException;
- }
-
- private final Options opts;
- private final DeclarationMaker declMaker;
- private final com.sun.tools.apt.main.AptJavaCompiler comp;
-
- // Platform's default encoding
- private final static String DEFAULT_ENCODING =
- new OutputStreamWriter(new ByteArrayOutputStream()).getEncoding();
-
- private String encoding; // name of charset used for source files
-
- private final EnumMap<Location, File> locations; // where new files go
-
-
- private static final Context.Key<FilerImpl> filerKey =
- new Context.Key<FilerImpl>();
-
- // Set of files opened.
- private Collection<Flushable> wc;
-
- private Bark bark;
-
- // All created files.
- private final Set<File> filesCreated;
-
- // Names of newly created source files
- private HashSet<String> sourceFileNames = new HashSet<String>();
-
- // Names of newly created class files
- private HashSet<String> classFileNames = new HashSet<String>();
-
- private boolean roundOver;
-
- public static FilerImpl instance(Context context) {
- FilerImpl instance = context.get(filerKey);
- if (instance == null) {
- instance = new FilerImpl(context);
- }
- return instance;
- }
-
- // flush all output streams;
- public void flush() {
- for(Flushable opendedFile: wc) {
- try {
- opendedFile.flush();
- if (opendedFile instanceof FileOutputStream) {
- try {
- ((FileOutputStream) opendedFile).getFD().sync() ;
- } catch (java.io.SyncFailedException sfe) {}
- }
- } catch (IOException e) { }
- }
- }
-
- private FilerImpl(Context context) {
- context.put(filerKey, this);
- opts = Options.instance(context);
- declMaker = DeclarationMaker.instance(context);
- bark = Bark.instance(context);
- comp = com.sun.tools.apt.main.AptJavaCompiler.instance(context);
- roundOver = false;
- this.filesCreated = comp.getAggregateGenFiles();
-
- // Encoding
- encoding = opts.get("-encoding");
- if (encoding == null) {
- encoding = DEFAULT_ENCODING;
- }
-
- wc = new HashSet<Flushable>();
-
- // Locations
- locations = new EnumMap<Location, File>(Location.class);
- String s = opts.get("-s"); // location for new source files
- String d = opts.get("-d"); // location for new class files
- locations.put(SOURCE_TREE, new File(s != null ? s : "."));
- locations.put(CLASS_TREE, new File(d != null ? d : "."));
- }
-
-
- /**
- * {@inheritDoc}
- */
- public PrintWriter createSourceFile(String name) throws IOException {
- String pathname = nameToPath(name, ".java");
- File file = new File(locations.get(SOURCE_TREE),
- pathname);
- PrintWriter pw = getPrintWriter(file, encoding, name, FileKind.SOURCE);
- return pw;
- }
-
- /**
- * {@inheritDoc}
- */
- public OutputStream createClassFile(String name) throws IOException {
- String pathname = nameToPath(name, ".class");
- File file = new File(locations.get(CLASS_TREE),
- pathname);
- OutputStream os = getOutputStream(file, name, FileKind.CLASS);
- return os;
- }
-
- /**
- * {@inheritDoc}
- */
- public PrintWriter createTextFile(Location loc,
- String pkg,
- File relPath,
- String charsetName) throws IOException {
- File file = (pkg.length() == 0)
- ? relPath
- : new File(nameToPath(pkg), relPath.getPath());
- if (charsetName == null) {
- charsetName = encoding;
- }
- return getPrintWriter(loc, file.getPath(), charsetName, null, FileKind.OTHER);
- }
-
- /**
- * {@inheritDoc}
- */
- public OutputStream createBinaryFile(Location loc,
- String pkg,
- File relPath) throws IOException {
- File file = (pkg.length() == 0)
- ? relPath
- : new File(nameToPath(pkg), relPath.getPath());
- return getOutputStream(loc, file.getPath(), null, FileKind.OTHER);
- }
-
-
- /**
- * Converts the canonical name of a top-level type or package to a
- * pathname. Suffix is ".java" or ".class" or "".
- */
- private String nameToPath(String name, String suffix) throws IOException {
- if (!DeclarationMaker.isJavaIdentifier(name.replace('.', '_'))) {
- bark.aptWarning("IllegalFileName", name);
- throw new IOException();
- }
- return name.replace('.', File.separatorChar) + suffix;
- }
-
- private String nameToPath(String name) throws IOException {
- return nameToPath(name, "");
- }
-
- /**
- * Returns a writer for a text file given its location, its
- * pathname relative to that location, and its encoding.
- */
- private PrintWriter getPrintWriter(Location loc, String pathname,
- String encoding, String name, FileKind kind) throws IOException {
- File file = new File(locations.get(loc), pathname);
- return getPrintWriter(file, encoding, name, kind);
- }
-
- /**
- * Returns a writer for a text file given its encoding.
- */
- private PrintWriter getPrintWriter(File file,
- String encoding, String name, FileKind kind) throws IOException {
- prepareFile(file, name, kind);
- PrintWriter pw =
- new PrintWriter(
- new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(file),
- encoding)));
- wc.add(pw);
- return pw;
- }
-
- /**
- * Returns an output stream for a binary file given its location
- * and its pathname relative to that location.
- */
- private OutputStream getOutputStream(Location loc, String pathname, String name, FileKind kind)
- throws IOException {
- File file = new File(locations.get(loc), pathname);
- return getOutputStream(file, name, kind);
- }
-
- private OutputStream getOutputStream(File file, String name, FileKind kind) throws IOException {
- prepareFile(file, name, kind);
- OutputStream os = new FileOutputStream(file);
- wc.add(os);
- return os;
-
- }
-
- public Set<String> getSourceFileNames() {
- return sourceFileNames;
- }
-
- public Set<String> getClassFileNames() {
- return classFileNames;
- }
-
- public void roundOver() {
- roundOver = true;
- }
-
- /**
- * Checks that the file has not already been created during this
- * invocation. If not, creates intermediate directories, and
- * deletes the file if it already exists.
- */
- private void prepareFile(File file, String name, FileKind kind) throws IOException {
- if (roundOver) {
- bark.aptWarning("NoNewFilesAfterRound", file.toString());
- throw new IOException();
- }
-
- if (filesCreated.contains(file)) {
- bark.aptWarning("FileReopening", file.toString());
- throw new IOException();
- } else {
- if (file.exists()) {
- file.delete();
- } else {
- File parent = file.getParentFile();
- if (parent != null && !parent.exists()) {
- if(!parent.mkdirs()) {
- bark.aptWarning("BadParentDirectory", file.toString());
- throw new IOException();
- }
- }
- }
-
- kind.register(file, name, this);
- filesCreated.add(file);
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/MessagerImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.apt;
-
-import javax.tools.JavaFileObject;
-import com.sun.mirror.apt.Messager;
-import com.sun.tools.apt.mirror.util.SourcePositionImpl;
-import com.sun.mirror.util.SourcePosition;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.Position;
-import com.sun.tools.apt.util.Bark;
-
-
-/**
- * Implementation of Messager.
- */
-@SuppressWarnings("deprecation")
-public class MessagerImpl implements Messager {
- private final Bark bark;
-
- private static final Context.Key<MessagerImpl> messagerKey =
- new Context.Key<MessagerImpl>();
-
- public static MessagerImpl instance(Context context) {
- MessagerImpl instance = context.get(messagerKey);
- if (instance == null) {
- instance = new MessagerImpl(context);
- }
- return instance;
- }
-
- private MessagerImpl(Context context) {
- context.put(messagerKey, this);
- bark = Bark.instance(context);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public void printError(String msg) {
- bark.aptError("Messager", msg);
- }
-
- /**
- * {@inheritDoc}
- */
- public void printError(SourcePosition pos, String msg) {
- if (pos instanceof SourcePositionImpl) {
- SourcePositionImpl posImpl = (SourcePositionImpl) pos;
- JavaFileObject prev = bark.useSource(posImpl.getSource());
- bark.aptError(posImpl.getJavacPosition(), "Messager", msg);
- bark.useSource(prev);
- } else
- printError(msg);
- }
-
- /**
- * {@inheritDoc}
- */
- public void printWarning(String msg) {
- bark.aptWarning("Messager", msg);
- }
-
- /**
- * {@inheritDoc}
- */
- public void printWarning(SourcePosition pos, String msg) {
- if (pos instanceof SourcePositionImpl) {
- SourcePositionImpl posImpl = (SourcePositionImpl) pos;
- JavaFileObject prev = bark.useSource(posImpl.getSource());
- bark.aptWarning(posImpl.getJavacPosition(), "Messager", msg);
- bark.useSource(prev);
- } else
- printWarning(msg);
- }
-
- /**
- * {@inheritDoc}
- */
- public void printNotice(String msg) {
- bark.aptNote("Messager", msg);
- }
-
- /**
- * {@inheritDoc}
- */
- public void printNotice(SourcePosition pos, String msg) {
- if (pos instanceof SourcePositionImpl) {
- SourcePositionImpl posImpl = (SourcePositionImpl) pos;
- JavaFileObject prev = bark.useSource(posImpl.getSource());
- bark.aptNote(posImpl.getJavacPosition(), "Messager", msg);
- bark.useSource(prev);
- } else
- printNotice(msg);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundCompleteEventImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.apt;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.RoundCompleteEvent;
-import com.sun.mirror.apt.RoundState;
-
-@SuppressWarnings("deprecation")
-public class RoundCompleteEventImpl extends RoundCompleteEvent {
- private static final long serialVersionUID = 7067621446720784300L;
-
- public RoundCompleteEventImpl(AnnotationProcessorEnvironment source,
- RoundState rs) {
- super(source, rs);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundStateImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.apt;
-
-import com.sun.mirror.apt.RoundState;
-import java.util.Map;
-
-@SuppressWarnings("deprecation")
-public class RoundStateImpl implements RoundState {
- private final boolean finalRound;
- private final boolean errorRaised;
- private final boolean sourceFilesCreated;
- private final boolean classFilesCreated;
-
- public RoundStateImpl(boolean errorRaised,
- boolean sourceFilesCreated,
- boolean classFilesCreated,
- Map<String,String> options) {
- /*
- * In the default mode of operation, this round is the final
- * round if an error was raised OR there were no new source
- * files generated. If classes are being treated as
- * declarations, this is the final round if an error was
- * raised OR neither new source files nor new class files were
- * generated.
- */
- this.finalRound =
- errorRaised ||
- (!sourceFilesCreated &&
- !(classFilesCreated && options.keySet().contains("-XclassesAsDecls")) );
- this.errorRaised = errorRaised;
- this.sourceFilesCreated = sourceFilesCreated;
- this.classFilesCreated = classFilesCreated;
- }
-
- public boolean finalRound() {
- return finalRound;
- }
-
- public boolean errorRaised() {
- return errorRaised;
- }
-
- public boolean sourceFilesCreated() {
- return sourceFilesCreated;
- }
-
- public boolean classFilesCreated() {
- return classFilesCreated;
- }
-
- public String toString() {
- return
- "[final round: " + finalRound +
- ", error raised: " + errorRaised +
- ", source files created: " + sourceFilesCreated +
- ", class files created: " + classFilesCreated + "]";
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationMirrorImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.util.SourcePosition;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Attribute;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.Pair;
-
-
-/**
- * Implementation of AnnotationMirror
- */
-@SuppressWarnings("deprecation")
-public class AnnotationMirrorImpl implements AnnotationMirror {
-
- protected final AptEnv env;
- protected final Attribute.Compound anno;
- protected final Declaration decl;
-
-
- AnnotationMirrorImpl(AptEnv env, Attribute.Compound anno, Declaration decl) {
- this.env = env;
- this.anno = anno;
- this.decl = decl;
- }
-
-
- /**
- * Returns a string representation of this annotation.
- * String is of one of the forms:
- * @com.example.foo(name1=val1, name2=val2)
- * @com.example.foo(val)
- * @com.example.foo
- * Omit parens for marker annotations, and omit "value=" when allowed.
- */
- public String toString() {
- StringBuilder sb = new StringBuilder("@");
- Constants.Formatter fmtr = Constants.getFormatter(sb);
-
- fmtr.append(anno.type.tsym);
-
- int len = anno.values.length();
- if (len > 0) { // omit parens for marker annotations
- sb.append('(');
- boolean first = true;
- for (Pair<MethodSymbol, Attribute> val : anno.values) {
- if (!first) {
- sb.append(", ");
- }
- first = false;
-
- Name name = val.fst.name;
- if (len > 1 || name != env.names.value) {
- fmtr.append(name);
- sb.append('=');
- }
- sb.append(new AnnotationValueImpl(env, val.snd, this));
- }
- sb.append(')');
- }
- return fmtr.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public AnnotationType getAnnotationType() {
- return (AnnotationType) env.typeMaker.getType(anno.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map<AnnotationTypeElementDeclaration, AnnotationValue>
- getElementValues() {
- Map<AnnotationTypeElementDeclaration, AnnotationValue> res =
- new LinkedHashMap<AnnotationTypeElementDeclaration,
- AnnotationValue>(); // whew!
- for (Pair<MethodSymbol, Attribute> val : anno.values) {
- res.put(getElement(val.fst),
- new AnnotationValueImpl(env, val.snd, this));
- }
- return res;
- }
-
- public SourcePosition getPosition() {
- // Return position of the declaration on which this annotation
- // appears.
- return (decl == null) ? null : decl.getPosition();
-
- }
-
- public Declaration getDeclaration() {
- return this.decl;
- }
-
- /**
- * Returns the annotation type element for a symbol.
- */
- private AnnotationTypeElementDeclaration getElement(MethodSymbol m) {
- return (AnnotationTypeElementDeclaration)
- env.declMaker.getExecutableDeclaration(m);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.lang.annotation.*;
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-import java.util.*;
-import sun.reflect.annotation.*;
-
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.type.MirroredTypeException;
-import com.sun.mirror.type.MirroredTypesException;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.Pair;
-
-
-/**
- * A generator of dynamic proxy implementations of
- * java.lang.annotation.Annotation.
- *
- * <p> The "dynamic proxy return form" of an attribute element value is
- * the form used by sun.reflect.annotation.AnnotationInvocationHandler.
- */
-@SuppressWarnings("deprecation")
-class AnnotationProxyMaker {
-
- private final AptEnv env;
- private final Attribute.Compound attrs;
- private final Class<? extends Annotation> annoType;
-
-
- private AnnotationProxyMaker(AptEnv env,
- Attribute.Compound attrs,
- Class<? extends Annotation> annoType) {
- this.env = env;
- this.attrs = attrs;
- this.annoType = annoType;
- }
-
-
- /**
- * Returns a dynamic proxy for an annotation mirror.
- */
- public static <A extends Annotation> A generateAnnotation(
- AptEnv env, Attribute.Compound attrs, Class<A> annoType) {
- AnnotationProxyMaker apm = new AnnotationProxyMaker(env, attrs, annoType);
- return annoType.cast(apm.generateAnnotation());
- }
-
-
- /**
- * Returns a dynamic proxy for an annotation mirror.
- */
- private Annotation generateAnnotation() {
- return AnnotationParser.annotationForMap(annoType,
- getAllReflectedValues());
- }
-
- /**
- * Returns a map from element names to their values in "dynamic
- * proxy return form". Includes all elements, whether explicit or
- * defaulted.
- */
- private Map<String, Object> getAllReflectedValues() {
- Map<String, Object> res = new LinkedHashMap<String, Object>();
-
- for (Map.Entry<MethodSymbol, Attribute> entry :
- getAllValues().entrySet()) {
- MethodSymbol meth = entry.getKey();
- Object value = generateValue(meth, entry.getValue());
- if (value != null) {
- res.put(meth.name.toString(), value);
- } else {
- // Ignore this element. May lead to
- // IncompleteAnnotationException somewhere down the line.
- }
- }
- return res;
- }
-
- /**
- * Returns a map from element symbols to their values.
- * Includes all elements, whether explicit or defaulted.
- */
- private Map<MethodSymbol, Attribute> getAllValues() {
- Map<MethodSymbol, Attribute> res =
- new LinkedHashMap<MethodSymbol, Attribute>();
-
- // First find the default values.
- ClassSymbol sym = (ClassSymbol) attrs.type.tsym;
- for (Scope.Entry e = sym.members().elems; e != null; e = e.sibling) {
- if (e.sym.kind == Kinds.MTH) {
- MethodSymbol m = (MethodSymbol) e.sym;
- Attribute def = m.defaultValue;
- if (def != null) {
- res.put(m, def);
- }
- }
- }
- // Next find the explicit values, possibly overriding defaults.
- for (Pair<MethodSymbol, Attribute> p : attrs.values) {
- res.put(p.fst, p.snd);
- }
- return res;
- }
-
- /**
- * Converts an element value to its "dynamic proxy return form".
- * Returns an exception proxy on some errors, but may return null if
- * a useful exception cannot or should not be generated at this point.
- */
- private Object generateValue(MethodSymbol meth, Attribute attr) {
- ValueVisitor vv = new ValueVisitor(meth);
- return vv.getValue(attr);
- }
-
-
- private class ValueVisitor implements Attribute.Visitor {
-
- private MethodSymbol meth; // annotation element being visited
- private Class<?> runtimeType; // runtime type of annotation element
- private Object value; // value in "dynamic proxy return form"
-
- ValueVisitor(MethodSymbol meth) {
- this.meth = meth;
- }
-
- Object getValue(Attribute attr) {
- Method method; // runtime method of annotation element
- try {
- method = annoType.getMethod(meth.name.toString());
- } catch (NoSuchMethodException e) {
- return null;
- }
- runtimeType = method.getReturnType();
- attr.accept(this);
- if (!(value instanceof ExceptionProxy) &&
- !AnnotationType.invocationHandlerReturnType(runtimeType)
- .isInstance(value)) {
- typeMismatch(method, attr);
- }
- return value;
- }
-
-
- public void visitConstant(Attribute.Constant c) {
- value = Constants.decodeConstant(c.value, c.type);
- }
-
- public void visitClass(Attribute.Class c) {
- value = new MirroredTypeExceptionProxy(
- env.typeMaker.getType(c.type));
- }
-
- public void visitArray(Attribute.Array a) {
- Type elemtype = env.jctypes.elemtype(a.type);
-
- if (elemtype.tsym == env.symtab.classType.tsym) { // Class[]
- // Construct a proxy for a MirroredTypesException
- ArrayList<TypeMirror> elems = new ArrayList<TypeMirror>();
- for (int i = 0; i < a.values.length; i++) {
- Type elem = ((Attribute.Class) a.values[i]).type;
- elems.add(env.typeMaker.getType(elem));
- }
- value = new MirroredTypesExceptionProxy(elems);
-
- } else {
- int len = a.values.length;
- Class<?> runtimeTypeSaved = runtimeType;
- runtimeType = runtimeType.getComponentType();
- try {
- Object res = Array.newInstance(runtimeType, len);
- for (int i = 0; i < len; i++) {
- a.values[i].accept(this);
- if (value == null || value instanceof ExceptionProxy) {
- return;
- }
- try {
- Array.set(res, i, value);
- } catch (IllegalArgumentException e) {
- value = null; // indicates a type mismatch
- return;
- }
- }
- value = res;
- } finally {
- runtimeType = runtimeTypeSaved;
- }
- }
- }
-
- @SuppressWarnings({"unchecked", "rawtypes"})
- public void visitEnum(Attribute.Enum e) {
- if (runtimeType.isEnum()) {
- String constName = e.value.toString();
- try {
- value = Enum.valueOf((Class)runtimeType, constName);
- } catch (IllegalArgumentException ex) {
- value = new EnumConstantNotPresentExceptionProxy(
- (Class<Enum<?>>)runtimeType, constName);
- }
- } else {
- value = null; // indicates a type mismatch
- }
- }
-
- public void visitCompound(Attribute.Compound c) {
- try {
- Class<? extends Annotation> nested =
- runtimeType.asSubclass(Annotation.class);
- value = generateAnnotation(env, c, nested);
- } catch (ClassCastException ex) {
- value = null; // indicates a type mismatch
- }
- }
-
- public void visitError(Attribute.Error e) {
- value = null; // indicates a type mismatch
- }
-
-
- /**
- * Sets "value" to an ExceptionProxy indicating a type mismatch.
- */
- private void typeMismatch(Method method, final Attribute attr) {
- class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy {
- private static final long serialVersionUID = 8473323277815075163L;
- transient final Method method;
- AnnotationTypeMismatchExceptionProxy(Method method) {
- this.method = method;
- }
- public String toString() {
- return "<error>"; // eg: @Anno(value=<error>)
- }
- protected RuntimeException generateException() {
- return new AnnotationTypeMismatchException(method,
- attr.type.toString());
- }
- }
- value = new AnnotationTypeMismatchExceptionProxy(method);
- }
- }
-
-
- /**
- * ExceptionProxy for MirroredTypeException.
- * The toString, hashCode, and equals methods foward to the underlying
- * type.
- */
- private static final class MirroredTypeExceptionProxy extends ExceptionProxy {
- private static final long serialVersionUID = 6662035281599933545L;
-
- private MirroredTypeException ex;
-
- MirroredTypeExceptionProxy(TypeMirror t) {
- // It would be safer if we could construct the exception in
- // generateException(), but there would be no way to do
- // that properly following deserialization.
- ex = new MirroredTypeException(t);
- }
-
- public String toString() {
- return ex.getQualifiedName();
- }
-
- public int hashCode() {
- TypeMirror t = ex.getTypeMirror();
- return (t != null)
- ? t.hashCode()
- : ex.getQualifiedName().hashCode();
- }
-
- public boolean equals(Object obj) {
- TypeMirror t = ex.getTypeMirror();
- return t != null &&
- obj instanceof MirroredTypeExceptionProxy &&
- t.equals(
- ((MirroredTypeExceptionProxy) obj).ex.getTypeMirror());
- }
-
- protected RuntimeException generateException() {
- return (RuntimeException) ex.fillInStackTrace();
- }
- }
-
-
- /**
- * ExceptionProxy for MirroredTypesException.
- * The toString, hashCode, and equals methods foward to the underlying
- * types.
- */
- private static final class MirroredTypesExceptionProxy extends ExceptionProxy {
- private static final long serialVersionUID = -6670822532616693951L;
-
- private MirroredTypesException ex;
-
- MirroredTypesExceptionProxy(Collection<TypeMirror> ts) {
- // It would be safer if we could construct the exception in
- // generateException(), but there would be no way to do
- // that properly following deserialization.
- ex = new MirroredTypesException(ts);
- }
-
- public String toString() {
- return ex.getQualifiedNames().toString();
- }
-
- public int hashCode() {
- Collection<TypeMirror> ts = ex.getTypeMirrors();
- return (ts != null)
- ? ts.hashCode()
- : ex.getQualifiedNames().hashCode();
- }
-
- public boolean equals(Object obj) {
- Collection<TypeMirror> ts = ex.getTypeMirrors();
- return ts != null &&
- obj instanceof MirroredTypesExceptionProxy &&
- ts.equals(
- ((MirroredTypesExceptionProxy) obj).ex.getTypeMirrors());
- }
-
- protected RuntimeException generateException() {
- return (RuntimeException) ex.fillInStackTrace();
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of AnnotationTypeDeclaration
- */
-@SuppressWarnings("deprecation")
-public class AnnotationTypeDeclarationImpl extends InterfaceDeclarationImpl
- implements AnnotationTypeDeclaration
-{
- AnnotationTypeDeclarationImpl(AptEnv env, ClassSymbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<AnnotationTypeElementDeclaration> getMethods() {
- return identityFilter.filter(super.getMethods(),
- AnnotationTypeElementDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitAnnotationTypeDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.MethodSymbol;
-
-
-/**
- * Implementation of AnnotationTypeElementDeclaration
- */
-@SuppressWarnings("deprecation")
-public class AnnotationTypeElementDeclarationImpl extends MethodDeclarationImpl
- implements AnnotationTypeElementDeclaration {
-
- AnnotationTypeElementDeclarationImpl(AptEnv env, MethodSymbol sym) {
- super(env, sym);
- }
-
- /**
- * {@inheritDoc}
- */
- public AnnotationTypeDeclaration getDeclaringType() {
- return (AnnotationTypeDeclaration) super.getDeclaringType();
- }
-
- /**
- * {@inheritDoc}
- */
- public AnnotationValue getDefaultValue() {
- return (sym.defaultValue == null)
- ? null
- : new AnnotationValueImpl(env, sym.defaultValue, null);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitAnnotationTypeElementDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationValueImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.SourcePosition;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Attribute;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.code.TypeTags;
-
-
-/**
- * Implementation of AnnotationValue
- */
-@SuppressWarnings("deprecation")
-public class AnnotationValueImpl implements AnnotationValue {
-
- protected final AptEnv env;
- protected final Attribute attr;
- protected final AnnotationMirrorImpl annotation;
-
- AnnotationValueImpl(AptEnv env, Attribute attr, AnnotationMirrorImpl annotation) {
- this.env = env;
- this.attr = attr;
- this.annotation = annotation;
- }
-
-
- /**
- * {@inheritDoc}
- */
- public String toString() {
- StringBuilder sb = new StringBuilder();
- Constants.Formatter fmtr = Constants.getFormatter(sb);
-
- fmtr.append(getValue());
- return fmtr.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public Object getValue() {
- ValueVisitor vv = new ValueVisitor();
- attr.accept(vv);
- return vv.value;
- }
-
-
- public SourcePosition getPosition() {
- // Imprecise implementation; just return position of enclosing
- // annotation.
- return (annotation == null) ? null : annotation.getPosition();
- }
-
- private class ValueVisitor implements Attribute.Visitor {
-
- public Object value;
-
- public void visitConstant(Attribute.Constant c) {
- value = Constants.decodeConstant(c.value, c.type);
- }
-
- public void visitClass(Attribute.Class c) {
- value = env.typeMaker.getType(
- env.jctypes.erasure(c.type));
- }
-
- public void visitEnum(Attribute.Enum e) {
- value = env.declMaker.getFieldDeclaration(e.value);
- }
-
- public void visitCompound(Attribute.Compound c) {
- value = new AnnotationMirrorImpl(env, c,
- (annotation == null) ?
- null :
- annotation.getDeclaration());
- }
-
- public void visitArray(Attribute.Array a) {
- ArrayList<AnnotationValue> vals =
- new ArrayList<AnnotationValue>(a.values.length);
- for (Attribute elem : a.values) {
- vals.add(new AnnotationValueImpl(env, elem, annotation));
- }
- value = vals;
- }
-
- public void visitError(Attribute.Error e) {
- value = "<error>"; // javac will already have logged an error msg
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.lang.annotation.Annotation;
-import java.lang.annotation.Inherited;
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.ClassType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of ClassDeclaration
- */
-@SuppressWarnings("deprecation")
-public class ClassDeclarationImpl extends TypeDeclarationImpl
- implements ClassDeclaration {
-
- ClassDeclarationImpl(AptEnv env, ClassSymbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- * Overridden here to handle @Inherited.
- */
- public <A extends Annotation> A getAnnotation(Class<A> annoType) {
-
- boolean inherited = annoType.isAnnotationPresent(Inherited.class);
- for (Type t = sym.type;
- t.tsym != env.symtab.objectType.tsym && !t.isErroneous();
- t = env.jctypes.supertype(t)) {
-
- A result = getAnnotation(annoType, t.tsym);
- if (result != null || !inherited) {
- return result;
- }
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public ClassType getSuperclass() {
- // java.lang.Object has no superclass
- if (sym == env.symtab.objectType.tsym) {
- return null;
- }
- Type t = env.jctypes.supertype(sym.type);
- return (ClassType) env.typeMaker.getType(t);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ConstructorDeclaration> getConstructors() {
- ArrayList<ConstructorDeclaration> res =
- new ArrayList<ConstructorDeclaration>();
- for (Symbol s : getMembers(true)) {
- if (s.isConstructor()) {
- MethodSymbol m = (MethodSymbol) s;
- res.add((ConstructorDeclaration)
- env.declMaker.getExecutableDeclaration(m));
- }
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<MethodDeclaration> getMethods() {
- return identityFilter.filter(super.getMethods(),
- MethodDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitClassDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/Constants.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.tools.apt.mirror.type.TypeMirrorImpl;
-import com.sun.tools.javac.code.Type;
-
-import static com.sun.tools.javac.code.TypeTags.*;
-
-
-/**
- * Utility class for operating on constant expressions.
- */
-@SuppressWarnings("deprecation")
-class Constants {
-
- /**
- * Converts a constant in javac's internal representation (in which
- * boolean, char, byte, short, and int are each represented by an Integer)
- * into standard representation. Other values (including null) are
- * returned unchanged.
- */
- static Object decodeConstant(Object value, Type type) {
- if (value instanceof Integer) {
- int i = ((Integer) value).intValue();
- switch (type.tag) {
- case BOOLEAN: return Boolean.valueOf(i != 0);
- case CHAR: return Character.valueOf((char) i);
- case BYTE: return Byte.valueOf((byte) i);
- case SHORT: return Short.valueOf((short) i);
- }
- }
- return value;
- }
-
- /**
- * Returns a formatter for generating the text of constant
- * expressions. Equivalent to
- * <tt>getFormatter(new StringBuilder())</tt>.
- */
- static Formatter getFormatter() {
- return new Formatter(new StringBuilder());
- }
-
- /**
- * Returns a formatter for generating the text of constant
- * expressions. Also generates the text of constant
- * "pseudo-expressions" for annotations and array-valued
- * annotation elements.
- *
- * @param buf where the expression is written
- */
- static Formatter getFormatter(StringBuilder buf) {
- return new Formatter(buf);
- }
-
-
- /**
- * Utility class used to generate the text of constant
- * expressions. Also generates the text of constant
- * "pseudo-expressions" for annotations and array-valued
- * annotation elements.
- */
- static class Formatter {
-
- private StringBuilder buf; // where the output goes
-
- private Formatter(StringBuilder buf) {
- this.buf = buf;
- }
-
-
- public String toString() {
- return buf.toString();
- }
-
- /**
- * Appends a constant whose type is not statically known
- * by dispatching to the appropriate overloaded append method.
- */
- void append(Object val) {
- if (val instanceof String) {
- append((String) val);
- } else if (val instanceof Character) {
- append((Character) val);
- } else if (val instanceof Boolean) {
- append((Boolean) val);
- } else if (val instanceof Byte) {
- append((Byte) val);
- } else if (val instanceof Short) {
- append((Short) val);
- } else if (val instanceof Integer) {
- append((Integer) val);
- } else if (val instanceof Long) {
- append((Long) val);
- } else if (val instanceof Float) {
- append((Float) val);
- } else if (val instanceof Double) {
- append((Double) val);
- } else if (val instanceof TypeMirror) {
- append((TypeMirrorImpl) val);
- } else if (val instanceof EnumConstantDeclaration) {
- append((EnumConstantDeclarationImpl) val);
- } else if (val instanceof AnnotationMirror) {
- append((AnnotationMirrorImpl) val);
- } else if (val instanceof Collection<?>) {
- append((Collection<?>) val);
- } else {
- appendUnquoted(val.toString());
- }
- }
-
- /**
- * Appends a string, escaped (as needed) and quoted.
- */
- void append(String val) {
- buf.append('"');
- appendUnquoted(val);
- buf.append('"');
- }
-
- /**
- * Appends a Character, escaped (as needed) and quoted.
- */
- void append(Character val) {
- buf.append('\'');
- appendUnquoted(val.charValue());
- buf.append('\'');
- }
-
- void append(Boolean val) {
- buf.append(val);
- }
-
- void append(Byte val) {
- buf.append(String.format("0x%02x", val));
- }
-
- void append(Short val) {
- buf.append(val);
- }
-
- void append(Integer val) {
- buf.append(val);
- }
-
- void append(Long val) {
- buf.append(val).append('L');
- }
-
- void append(Float val) {
- if (val.isNaN()) {
- buf.append("0.0f/0.0f");
- } else if (val.isInfinite()) {
- if (val.floatValue() < 0) {
- buf.append('-');
- }
- buf.append("1.0f/0.0f");
- } else {
- buf.append(val).append('f');
- }
- }
-
- void append(Double val) {
- if (val.isNaN()) {
- buf.append("0.0/0.0");
- } else if (val.isInfinite()) {
- if (val.doubleValue() < 0) {
- buf.append('-');
- }
- buf.append("1.0/0.0");
- } else {
- buf.append(val);
- }
- }
-
- /**
- * Appends the class literal corresponding to a type. Should
- * only be invoked for types that have an associated literal.
- * e.g: "java.lang.String.class"
- * "boolean.class"
- * "int[].class"
- */
- void append(TypeMirrorImpl t) {
- appendUnquoted(t.type.toString());
- buf.append(".class");
- }
-
- /**
- * Appends the fully qualified name of an enum constant.
- * e.g: "java.math.RoundingMode.UP"
- */
- void append(EnumConstantDeclarationImpl e) {
- appendUnquoted(e.sym.enclClass() + "." + e);
- }
-
- /**
- * Appends the text of an annotation pseudo-expression.
- * e.g: "@pkg.Format(linesep='\n')"
- */
- void append(AnnotationMirrorImpl anno) {
- appendUnquoted(anno.toString());
- }
-
- /**
- * Appends the elements of a collection, enclosed within braces
- * and separated by ", ". Useful for array-valued annotation
- * elements.
- */
- void append(Collection<?> vals) {
- buf.append('{');
- boolean first = true;
- for (Object val : vals) {
- if (first) {
- first = false;
- } else {
- buf.append(", ");
- }
- append(((AnnotationValue) val).getValue());
- }
- buf.append('}');
- }
-
-
- /**
- * For each char of a string, append using appendUnquoted(char).
- */
- private void appendUnquoted(String s) {
- for (char c : s.toCharArray()) {
- appendUnquoted(c);
- }
- }
-
- /**
- * Appends a char (unquoted), using escapes for those that are not
- * printable ASCII. We don't know what is actually printable in
- * the locale in which this result will be used, so ASCII is our
- * best guess as to the least common denominator.
- */
- private void appendUnquoted(char c) {
- switch (c) {
- case '\b': buf.append("\\b"); break;
- case '\t': buf.append("\\t"); break;
- case '\n': buf.append("\\n"); break;
- case '\f': buf.append("\\f"); break;
- case '\r': buf.append("\\r"); break;
- case '\"': buf.append("\\\""); break;
- case '\'': buf.append("\\\'"); break;
- case '\\': buf.append("\\\\"); break;
- default:
- if (isPrintableAscii(c)) {
- buf.append(c);
- } else {
- buf.append(String.format("\\u%04x", (int) c));
- }
- }
- }
-
- /**
- * Is c a printable ASCII character?
- */
- private static boolean isPrintableAscii(char c) {
- return c >= ' ' && c <= '~';
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ConstructorDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Flags;
-import com.sun.tools.javac.code.Symbol.MethodSymbol;
-
-
-/**
- * Implementation of ConstructorDeclaration
- */
-@SuppressWarnings("deprecation")
-public class ConstructorDeclarationImpl extends ExecutableDeclarationImpl
- implements ConstructorDeclaration {
-
- ConstructorDeclarationImpl(AptEnv env, MethodSymbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- * Returns the simple name of the declaring class.
- */
- public String getSimpleName() {
- return sym.enclClass().name.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitConstructorDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.Collection;
-import java.util.EnumSet;
-import javax.tools.JavaFileObject;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.apt.mirror.util.SourcePositionImpl;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.comp.AttrContext;
-import com.sun.tools.javac.comp.Env;
-import com.sun.tools.javac.tree.*;
-import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.Position;
-
-import static com.sun.mirror.declaration.Modifier.*;
-import static com.sun.tools.javac.code.Kinds.*;
-
-
-/**
- * Implementation of Declaration
- */
-@SuppressWarnings("deprecation")
-public abstract class DeclarationImpl implements Declaration {
-
- protected final AptEnv env;
- public final Symbol sym;
-
- protected static final DeclarationFilter identityFilter =
- new DeclarationFilter();
-
-
- /**
- * "sym" should be completed before this constructor is called.
- */
- protected DeclarationImpl(AptEnv env, Symbol sym) {
- this.env = env;
- this.sym = sym;
- }
-
-
- /**
- * {@inheritDoc}
- * <p> ParameterDeclarationImpl overrides this implementation.
- */
- public boolean equals(Object obj) {
- if (obj instanceof DeclarationImpl) {
- DeclarationImpl that = (DeclarationImpl) obj;
- return sym == that.sym && env == that.env;
- } else {
- return false;
- }
- }
-
- /**
- * {@inheritDoc}
- * <p> ParameterDeclarationImpl overrides this implementation.
- */
- public int hashCode() {
- return sym.hashCode() + env.hashCode();
- }
-
- /**
- * {@inheritDoc}
- */
- public String getDocComment() {
- // Our doc comment is contained in a map in our toplevel,
- // indexed by our tree. Find our enter environment, which gives
- // us our toplevel. It also gives us a tree that contains our
- // tree: walk it to find our tree. This is painful.
- Env<AttrContext> enterEnv = getEnterEnv();
- if (enterEnv == null)
- return null;
- JCTree tree = TreeInfo.declarationFor(sym, enterEnv.tree);
- return enterEnv.toplevel.docComments.get(tree);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<AnnotationMirror> getAnnotationMirrors() {
- Collection<AnnotationMirror> res =
- new ArrayList<AnnotationMirror>();
- for (Attribute.Compound a : sym.getAnnotationMirrors()) {
- res.add(env.declMaker.getAnnotationMirror(a, this));
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- * Overridden by ClassDeclarationImpl to handle @Inherited.
- */
- public <A extends Annotation> A getAnnotation(Class<A> annoType) {
- return getAnnotation(annoType, sym);
- }
-
- protected <A extends Annotation> A getAnnotation(Class<A> annoType,
- Symbol annotated) {
- if (!annoType.isAnnotation()) {
- throw new IllegalArgumentException(
- "Not an annotation type: " + annoType);
- }
- String name = annoType.getName();
- for (Attribute.Compound attr : annotated.getAnnotationMirrors()) {
- if (name.equals(attr.type.tsym.flatName().toString())) {
- return AnnotationProxyMaker.generateAnnotation(env, attr,
- annoType);
- }
- }
- return null;
- }
-
- // Cache for modifiers.
- private EnumSet<Modifier> modifiers = null;
-
- /**
- * {@inheritDoc}
- */
- public Collection<Modifier> getModifiers() {
- if (modifiers == null) {
- modifiers = EnumSet.noneOf(Modifier.class);
- long flags = AptEnv.getFlags(sym);
-
- if (0 != (flags & Flags.PUBLIC)) modifiers.add(PUBLIC);
- if (0 != (flags & Flags.PROTECTED)) modifiers.add(PROTECTED);
- if (0 != (flags & Flags.PRIVATE)) modifiers.add(PRIVATE);
- if (0 != (flags & Flags.ABSTRACT)) modifiers.add(ABSTRACT);
- if (0 != (flags & Flags.STATIC)) modifiers.add(STATIC);
- if (0 != (flags & Flags.FINAL)) modifiers.add(FINAL);
- if (0 != (flags & Flags.TRANSIENT)) modifiers.add(TRANSIENT);
- if (0 != (flags & Flags.VOLATILE)) modifiers.add(VOLATILE);
- if (0 != (flags & Flags.SYNCHRONIZED)) modifiers.add(SYNCHRONIZED);
- if (0 != (flags & Flags.NATIVE)) modifiers.add(NATIVE);
- if (0 != (flags & Flags.STRICTFP)) modifiers.add(STRICTFP);
- }
- return modifiers;
- }
-
- /**
- * {@inheritDoc}
- * Overridden in some subclasses.
- */
- public String getSimpleName() {
- return sym.name.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public SourcePosition getPosition() {
- // Find the toplevel. From there use a tree-walking utility
- // that finds the tree for our symbol, and with it the position.
- Env<AttrContext> enterEnv = getEnterEnv();
- if (enterEnv == null)
- return null;
- JCTree.JCCompilationUnit toplevel = enterEnv.toplevel;
- JavaFileObject sourcefile = toplevel.sourcefile;
- if (sourcefile == null)
- return null;
- int pos = TreeInfo.positionFor(sym, toplevel);
-
- return new SourcePositionImpl(sourcefile, pos, toplevel.lineMap);
- }
-
- /**
- * Applies a visitor to this declaration.
- *
- * @param v the visitor operating on this declaration
- */
- public void accept(DeclarationVisitor v) {
- v.visitDeclaration(this);
- }
-
-
- private Collection<Symbol> members = null; // cache for getMembers()
-
- /**
- * Returns the symbols of type or package members (and constructors)
- * that are not synthetic or otherwise unwanted.
- * Caches the result if "cache" is true.
- */
- protected Collection<Symbol> getMembers(boolean cache) {
- if (members != null) {
- return members;
- }
- LinkedList<Symbol> res = new LinkedList<Symbol>();
- for (Scope.Entry e = sym.members().elems; e != null; e = e.sibling) {
- if (e.sym != null && !unwanted(e.sym)) {
- res.addFirst(e.sym);
- }
- }
- return cache ? (members = res) : res;
- }
-
- /**
- * Tests whether this is a symbol that should never be seen by clients,
- * such as a synthetic class.
- * Note that a class synthesized by the compiler may not be flagged as
- * synthetic: see bugid 4959932.
- */
- private static boolean unwanted(Symbol s) {
- return AptEnv.hasFlag(s, Flags.SYNTHETIC) ||
- (s.kind == TYP &&
- !DeclarationMaker.isJavaIdentifier(s.name.toString()));
- }
-
- /**
- * Returns this declaration's enter environment, or null if it
- * has none.
- */
- private Env<AttrContext> getEnterEnv() {
- // Get enclosing class of sym, or sym itself if it is a class
- // or package.
- TypeSymbol ts = (sym.kind != PCK)
- ? sym.enclClass()
- : (PackageSymbol) sym;
- return (ts != null)
- ? env.enter.getEnv(ts)
- : null;
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.sun.mirror.declaration.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.main.JavaCompiler;
-
-/**
- * Utilities for constructing and caching declarations.
- */
-@SuppressWarnings("deprecation")
-public class DeclarationMaker {
-
- private AptEnv env;
- private Context context;
- private JavaCompiler javacompiler;
- private static final Context.Key<DeclarationMaker> declarationMakerKey =
- new Context.Key<DeclarationMaker>();
-
- public static DeclarationMaker instance(Context context) {
- DeclarationMaker instance = context.get(declarationMakerKey);
- if (instance == null) {
- instance = new DeclarationMaker(context);
- }
- return instance;
- }
-
- private DeclarationMaker(Context context) {
- context.put(declarationMakerKey, this);
- env = AptEnv.instance(context);
- this.context = context;
- this.javacompiler = JavaCompiler.instance(context);
- }
-
-
-
- // Cache of package declarations
- private Map<PackageSymbol, PackageDeclaration> packageDecls =
- new HashMap<PackageSymbol, PackageDeclaration>();
-
- /**
- * Returns the package declaration for a package symbol.
- */
- public PackageDeclaration getPackageDeclaration(PackageSymbol p) {
- PackageDeclaration res = packageDecls.get(p);
- if (res == null) {
- res = new PackageDeclarationImpl(env, p);
- packageDecls.put(p, res);
- }
- return res;
- }
-
- /**
- * Returns the package declaration for the package with the given name.
- * Name is fully-qualified, or "" for the unnamed package.
- * Returns null if package declaration not found.
- */
- public PackageDeclaration getPackageDeclaration(String name) {
- PackageSymbol p = null;
- if (name.equals("") )
- p = env.symtab.unnamedPackage;
- else {
- if (!isJavaName(name))
- return null;
- Symbol s = nameToSymbol(name, false);
- if (s instanceof PackageSymbol) {
- p = (PackageSymbol) s;
- if (!p.exists())
- return null;
- } else
- return null;
- }
- return getPackageDeclaration(p);
- }
-
- // Cache of type declarations
- private Map<ClassSymbol, TypeDeclaration> typeDecls =
- new HashMap<ClassSymbol, TypeDeclaration>();
-
- /**
- * Returns the type declaration for a class symbol.
- * Forces completion, and returns null on error.
- */
- public TypeDeclaration getTypeDeclaration(ClassSymbol c) {
- long flags = AptEnv.getFlags(c); // forces symbol completion
- if (c.kind == Kinds.ERR) {
- return null;
- }
- TypeDeclaration res = typeDecls.get(c);
- if (res == null) {
- if ((flags & Flags.ANNOTATION) != 0) {
- res = new AnnotationTypeDeclarationImpl(env, c);
- } else if ((flags & Flags.INTERFACE) != 0) {
- res = new InterfaceDeclarationImpl(env, c);
- } else if ((flags & Flags.ENUM) != 0) {
- res = new EnumDeclarationImpl(env, c);
- } else {
- res = new ClassDeclarationImpl(env, c);
- }
- typeDecls.put(c, res);
- }
- return res;
- }
-
- /**
- * Returns the type declaration for the type with the given canonical name.
- * Returns null if type declaration not found.
- */
- public TypeDeclaration getTypeDeclaration(String name) {
- if (!isJavaName(name))
- return null;
- Symbol s = nameToSymbol(name, true);
- if (s instanceof ClassSymbol) {
- ClassSymbol c = (ClassSymbol) s;
- return getTypeDeclaration(c);
- } else
- return null;
- }
-
- /**
- * Returns a symbol given the type's or packages's canonical name,
- * or null if the name isn't found.
- */
- private Symbol nameToSymbol(String name, boolean classCache) {
- Symbol s = null;
- Name nameName = env.names.fromString(name);
- if (classCache)
- s = env.symtab.classes.get(nameName);
- else
- s = env.symtab.packages.get(nameName);
-
- if (s != null && s.exists())
- return s;
-
- s = javacompiler.resolveIdent(name);
- if (s.kind == Kinds.ERR )
- return null;
-
- if (s.kind == Kinds.PCK)
- s.complete();
-
- return s;
- }
-
- // Cache of method and constructor declarations
- private Map<MethodSymbol, ExecutableDeclaration> executableDecls =
- new HashMap<MethodSymbol, ExecutableDeclaration>();
-
- /**
- * Returns the method or constructor declaration for a method symbol.
- */
- ExecutableDeclaration getExecutableDeclaration(MethodSymbol m) {
- ExecutableDeclaration res = executableDecls.get(m);
- if (res == null) {
- if (m.isConstructor()) {
- res = new ConstructorDeclarationImpl(env, m);
- } else if (isAnnotationTypeElement(m)) {
- res = new AnnotationTypeElementDeclarationImpl(env, m);
- } else {
- res = new MethodDeclarationImpl(env, m);
- }
- executableDecls.put(m, res);
- }
- return res;
- }
-
- // Cache of field declarations
- private Map<VarSymbol, FieldDeclaration> fieldDecls =
- new HashMap<VarSymbol, FieldDeclaration>();
-
- /**
- * Returns the field declaration for a var symbol.
- */
- FieldDeclaration getFieldDeclaration(VarSymbol v) {
- FieldDeclaration res = fieldDecls.get(v);
- if (res == null) {
- if (hasFlag(v, Flags.ENUM)) {
- res = new EnumConstantDeclarationImpl(env, v);
- } else {
- res = new FieldDeclarationImpl(env, v);
- }
- fieldDecls.put(v, res);
- }
- return res;
- }
-
- /**
- * Returns a parameter declaration.
- */
- ParameterDeclaration getParameterDeclaration(VarSymbol v) {
- return new ParameterDeclarationImpl(env, v);
- }
-
- /**
- * Returns a type parameter declaration.
- */
- public TypeParameterDeclaration getTypeParameterDeclaration(TypeSymbol t) {
- return new TypeParameterDeclarationImpl(env, t);
- }
-
- /**
- * Returns an annotation.
- */
- AnnotationMirror getAnnotationMirror(Attribute.Compound a, Declaration decl) {
- return new AnnotationMirrorImpl(env, a, decl);
- }
-
-
- /**
- * Is a string a valid Java identifier?
- */
- public static boolean isJavaIdentifier(String id) {
- return javax.lang.model.SourceVersion.isIdentifier(id);
- }
-
- public static boolean isJavaName(String name) {
- for(String id: name.split("\\.")) {
- if (! isJavaIdentifier(id))
- return false;
- }
- return true;
- }
-
- /**
- * Is a method an annotation type element?
- * It is if it's declared in an annotation type.
- */
- private static boolean isAnnotationTypeElement(MethodSymbol m) {
- return hasFlag(m.enclClass(), Flags.ANNOTATION);
- }
-
- /**
- * Does a symbol have a given flag?
- */
- private static boolean hasFlag(Symbol s, long flag) {
- return AptEnv.hasFlag(s, flag);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumConstantDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.VarSymbol;
-
-
-/**
- * Implementation of EnumConstantDeclaration
- */
-@SuppressWarnings("deprecation")
-public class EnumConstantDeclarationImpl extends FieldDeclarationImpl
- implements EnumConstantDeclaration {
-
- EnumConstantDeclarationImpl(AptEnv env, VarSymbol sym) {
- super(env, sym);
- }
-
- /**
- * {@inheritDoc}
- */
- public EnumDeclaration getDeclaringType() {
- return (EnumDeclaration) super.getDeclaringType();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitEnumConstantDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of EnumDeclaration
- */
-@SuppressWarnings("deprecation")
-public class EnumDeclarationImpl extends ClassDeclarationImpl
- implements EnumDeclaration {
-
- EnumDeclarationImpl(AptEnv env, ClassSymbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<EnumConstantDeclaration> getEnumConstants() {
- return identityFilter.filter(getFields(),
- EnumConstantDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitEnumDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ExecutableDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of ExecutableDeclaration
- */
-@SuppressWarnings("deprecation")
-public abstract class ExecutableDeclarationImpl extends MemberDeclarationImpl
- implements ExecutableDeclaration {
- public MethodSymbol sym;
-
- protected ExecutableDeclarationImpl(AptEnv env, MethodSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns type parameters (if any), method name, and signature
- * (value parameter types).
- */
- public String toString() {
- return sym.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isVarArgs() {
- return AptEnv.hasFlag(sym, Flags.VARARGS);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ParameterDeclaration> getParameters() {
- Collection<ParameterDeclaration> res =
- new ArrayList<ParameterDeclaration>();
- for (VarSymbol param : sym.params())
- res.add(env.declMaker.getParameterDeclaration(param));
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ReferenceType> getThrownTypes() {
- ArrayList<ReferenceType> res = new ArrayList<ReferenceType>();
- for (Type t : sym.type.getThrownTypes()) {
- res.add((ReferenceType) env.typeMaker.getType(t));
- }
- return res;
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/FieldDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.code.TypeTags;
-
-
-/**
- * Implementation of FieldDeclaration
- */
-@SuppressWarnings("deprecation")
-class FieldDeclarationImpl extends MemberDeclarationImpl
- implements FieldDeclaration {
-
- protected VarSymbol sym;
-
- FieldDeclarationImpl(AptEnv env, VarSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns the field's name.
- */
- public String toString() {
- return getSimpleName();
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeMirror getType() {
- return env.typeMaker.getType(sym.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public Object getConstantValue() {
- Object val = sym.getConstValue();
- // val may be null, indicating that this is not a constant.
-
- return Constants.decodeConstant(val, sym.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public String getConstantExpression() {
- Object val = getConstantValue();
- if (val == null) {
- return null;
- }
- Constants.Formatter fmtr = Constants.getFormatter();
- fmtr.append(val);
- return fmtr.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitFieldDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of InterfaceDeclaration
- */
-@SuppressWarnings("deprecation")
-public class InterfaceDeclarationImpl extends TypeDeclarationImpl
- implements InterfaceDeclaration {
-
- InterfaceDeclarationImpl(AptEnv env, ClassSymbol sym) {
- super(env, sym);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitInterfaceDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of MemberDeclaration
- */
-@SuppressWarnings("deprecation")
-public abstract class MemberDeclarationImpl extends DeclarationImpl
- implements MemberDeclaration {
-
- protected MemberDeclarationImpl(AptEnv env, Symbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public TypeDeclaration getDeclaringType() {
- ClassSymbol c = getDeclaringClassSymbol();
- return (c == null)
- ? null
- : env.declMaker.getTypeDeclaration(c);
- }
-
- /**
- * {@inheritDoc}
- * For methods, constructors, and types.
- */
- public Collection<TypeParameterDeclaration> getFormalTypeParameters() {
- ArrayList<TypeParameterDeclaration> res =
- new ArrayList<TypeParameterDeclaration>();
- for (Type t : sym.type.getTypeArguments()) {
- res.add(env.declMaker.getTypeParameterDeclaration(t.tsym));
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitMemberDeclaration(this);
- }
-
-
- /**
- * Returns the ClassSymbol of the declaring type,
- * or null if this is a top-level type.
- */
- private ClassSymbol getDeclaringClassSymbol() {
- return sym.owner.enclClass();
- }
-
- /**
- * Returns the formal type parameters of a type, member or constructor
- * as an angle-bracketed string. Each parameter consists of the simple
- * type variable name and any bounds (with no implicit "extends Object"
- * clause added). Type names are qualified.
- * Returns "" if there are no type parameters.
- */
- protected static String typeParamsToString(AptEnv env, Symbol sym) {
- if (sym.type.getTypeArguments().isEmpty()) {
- return "";
- }
- StringBuilder s = new StringBuilder();
- for (Type t : sym.type.getTypeArguments()) {
- Type.TypeVar tv = (Type.TypeVar) t;
- s.append(s.length() == 0 ? "<" : ", ")
- .append(TypeParameterDeclarationImpl.toString(env, tv));
- }
- s.append(">");
- return s.toString();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MethodDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.MethodSymbol;
-
-
-/**
- * Implementation of MethodDeclaration
- */
-@SuppressWarnings("deprecation")
-public class MethodDeclarationImpl extends ExecutableDeclarationImpl
- implements MethodDeclaration {
-
- MethodDeclarationImpl(AptEnv env, MethodSymbol sym) {
- super(env, sym);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public TypeMirror getReturnType() {
- return env.typeMaker.getType(sym.type.getReturnType());
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitMethodDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of PackageDeclaration.
- */
-@SuppressWarnings("deprecation")
-public class PackageDeclarationImpl extends DeclarationImpl
- implements PackageDeclaration {
-
- private PackageSymbol sym;
-
-
- public PackageDeclarationImpl(AptEnv env, PackageSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns the qualified name.
- */
- public String toString() {
- return getQualifiedName();
- }
-
- /**
- * {@inheritDoc}
- */
- public String getQualifiedName() {
- return sym.getQualifiedName().toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ClassDeclaration> getClasses() {
- return identityFilter.filter(getAllTypes(),
- ClassDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<EnumDeclaration> getEnums() {
- return identityFilter.filter(getAllTypes(),
- EnumDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<InterfaceDeclaration> getInterfaces() {
- return identityFilter.filter(getAllTypes(),
- InterfaceDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<AnnotationTypeDeclaration> getAnnotationTypes() {
- return identityFilter.filter(getAllTypes(),
- AnnotationTypeDeclaration.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitPackageDeclaration(this);
- }
-
-
- // Cache of all top-level type declarations in this package.
- private Collection<TypeDeclaration> allTypes = null;
-
- /**
- * Caches and returns all top-level type declarations in this package.
- * Omits synthetic types.
- */
- private Collection<TypeDeclaration> getAllTypes() {
- if (allTypes != null) {
- return allTypes;
- }
- allTypes = new ArrayList<TypeDeclaration>();
- for (Symbol s : getMembers(false)) {
- allTypes.add(env.declMaker.getTypeDeclaration((ClassSymbol) s));
- }
- return allTypes;
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ParameterDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.VarSymbol;
-
-
-/**
- * Implementation of ParameterDeclaration
- */
-@SuppressWarnings("deprecation")
-public class ParameterDeclarationImpl extends DeclarationImpl
- implements ParameterDeclaration
-{
- protected VarSymbol sym;
-
-
- ParameterDeclarationImpl(AptEnv env, VarSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns the simple name of the parameter.
- */
- public String toString() {
- return getType() + " " + sym.name;
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean equals(Object obj) {
- // Neither ParameterDeclarationImpl objects nor their symbols
- // are cached by the current implementation, so check symbol
- // owners and names.
-
- if (obj instanceof ParameterDeclarationImpl) {
- ParameterDeclarationImpl that = (ParameterDeclarationImpl) obj;
- return sym.owner == that.sym.owner &&
- sym.name == that.sym.name &&
- env == that.env;
- } else {
- return false;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public int hashCode() {
- return sym.owner.hashCode() + sym.name.hashCode() + env.hashCode();
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeMirror getType() {
- return env.typeMaker.getType(sym.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitParameterDeclaration(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.util.Name;
-
-/**
- * Implementation of TypeDeclaration
- */
-@SuppressWarnings("deprecation")
-public class TypeDeclarationImpl extends MemberDeclarationImpl
- implements TypeDeclaration {
-
- public ClassSymbol sym;
-
-
- /**
- * "sym" should be completed before this constructor is called.
- */
- protected TypeDeclarationImpl(AptEnv env, ClassSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns the type's name, with any type parameters (including those
- * of outer classes). Type names are qualified.
- */
- public String toString() {
- return toString(env, sym);
- }
-
- /**
- * {@inheritDoc}
- */
- public PackageDeclaration getPackage() {
- return env.declMaker.getPackageDeclaration(sym.packge());
- }
-
- /**
- * {@inheritDoc}
- */
- public String getQualifiedName() {
- return sym.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<InterfaceType> getSuperinterfaces() {
- return env.typeMaker.getTypes(env.jctypes.interfaces(sym.type),
- InterfaceType.class);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<FieldDeclaration> getFields() {
- ArrayList<FieldDeclaration> res = new ArrayList<FieldDeclaration>();
- for (Symbol s : getMembers(true)) {
- if (s.kind == Kinds.VAR) {
- res.add(env.declMaker.getFieldDeclaration((VarSymbol) s));
- }
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<? extends MethodDeclaration> getMethods() {
- ArrayList<MethodDeclaration> res = new ArrayList<MethodDeclaration>();
- for (Symbol s : getMembers(true)) {
- if (s.kind == Kinds.MTH && !s.isConstructor() &&
- !env.names.clinit.equals(s.name) ) { // screen out static initializers
- MethodSymbol m = (MethodSymbol) s;
- res.add((MethodDeclaration)
- env.declMaker.getExecutableDeclaration(m));
- }
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<TypeDeclaration> getNestedTypes() {
- ArrayList<TypeDeclaration> res = new ArrayList<TypeDeclaration>();
- for (Symbol s : getMembers(true)) {
- if (s.kind == Kinds.TYP) {
- res.add(env.declMaker.getTypeDeclaration((ClassSymbol) s));
- }
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitTypeDeclaration(this);
- }
-
-
- /**
- * Returns a type's name, with any type parameters (including those
- * of outer classes). Type names are qualified.
- */
- static String toString(AptEnv env, ClassSymbol c) {
- StringBuilder sb = new StringBuilder();
- if (c.isInner()) {
- // c is an inner class, so include type params of outer.
- ClassSymbol enclosing = c.owner.enclClass();
- sb.append(toString(env, enclosing))
- .append('.')
- .append(c.name);
- } else {
- sb.append(c);
- }
- sb.append(typeParamsToString(env, c));
- return sb.toString();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeParameterDeclarationImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.declaration;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of TypeParameterDeclaration
- */
-@SuppressWarnings("deprecation")
-public class TypeParameterDeclarationImpl extends DeclarationImpl
- implements TypeParameterDeclaration
-{
- protected TypeSymbol sym;
-
-
- TypeParameterDeclarationImpl(AptEnv env, TypeSymbol sym) {
- super(env, sym);
- this.sym = sym;
- }
-
-
- /**
- * Returns the type parameter's name along with any "extends" clause.
- * Class names are qualified. No implicit "extends Object" is added.
- */
- public String toString() {
- return toString(env, (Type.TypeVar) sym.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ReferenceType> getBounds() {
- ArrayList<ReferenceType> res = new ArrayList<ReferenceType>();
- for (Type t : env.jctypes.getBounds((Type.TypeVar) sym.type)) {
- res.add((ReferenceType) env.typeMaker.getType(t));
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public Declaration getOwner() {
- Symbol owner = sym.owner;
- return ((owner.kind & Kinds.TYP) != 0)
- ? env.declMaker.getTypeDeclaration((ClassSymbol) owner)
- : env.declMaker.getExecutableDeclaration((MethodSymbol) owner);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public void accept(DeclarationVisitor v) {
- v.visitTypeParameterDeclaration(this);
- }
-
-
- /**
- * Returns the type parameter's name along with any "extends" clause.
- * See {@link #toString()} for details.
- */
- static String toString(AptEnv env, Type.TypeVar tv) {
- StringBuilder s = new StringBuilder();
- s.append(tv);
- boolean first = true;
- for (Type bound : getExtendsBounds(env, tv)) {
- s.append(first ? " extends " : " & ");
- s.append(env.typeMaker.typeToString(bound));
- first = false;
- }
- return s.toString();
- }
-
- /**
- * Returns the bounds of a type variable, eliding java.lang.Object
- * if it appears alone.
- */
- private static Iterable<Type> getExtendsBounds(AptEnv env,
- Type.TypeVar tv) {
- return (tv.getUpperBound().tsym == env.symtab.objectType.tsym)
- ? com.sun.tools.javac.util.List.<Type>nil()
- : env.jctypes.getBounds(tv);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of AnnotationType
- */
-@SuppressWarnings("deprecation")
-public class AnnotationTypeImpl extends InterfaceTypeImpl
- implements AnnotationType {
-
- AnnotationTypeImpl(AptEnv env, Type.ClassType type) {
- super(env, type);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public AnnotationTypeDeclaration getDeclaration() {
- return (AnnotationTypeDeclaration) super.getDeclaration();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitAnnotationType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ArrayTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of ArrayType
- */
-@SuppressWarnings("deprecation")
-public class ArrayTypeImpl extends TypeMirrorImpl implements ArrayType {
-
- protected Type.ArrayType type;
-
-
- ArrayTypeImpl(AptEnv env, Type.ArrayType type) {
- super(env, type);
- this.type = type;
- }
-
-
- /**
- * {@inheritDoc}
- */
- public TypeMirror getComponentType() {
- return env.typeMaker.getType(type.elemtype);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitArrayType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ClassTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of ClassType
- */
-@SuppressWarnings("deprecation")
-public class ClassTypeImpl extends DeclaredTypeImpl implements ClassType {
-
- ClassTypeImpl(AptEnv env, Type.ClassType type) {
- super(env, type);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public ClassDeclaration getDeclaration() {
- return (ClassDeclaration) super.getDeclaration();
- }
-
- /**
- * {@inheritDoc}
- */
- public ClassType getSuperclass() {
- // java.lang.Object has no superclass
- if (type.tsym == env.symtab.objectType.tsym) {
- return null;
- }
- Type sup = env.jctypes.supertype(type);
- return (ClassType) env.typeMaker.getType(sup);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitClassType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/DeclaredTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-
-
-/**
- * Implementation of DeclaredType
- */
-@SuppressWarnings("deprecation")
-abstract class DeclaredTypeImpl extends TypeMirrorImpl
- implements DeclaredType {
-
- protected Type.ClassType type;
-
-
- protected DeclaredTypeImpl(AptEnv env, Type.ClassType type) {
- super(env, type);
- this.type = type;
- }
-
-
- /**
- * Returns a string representation of this declared type.
- * This includes the type's name and any actual type arguments.
- * Type names are qualified.
- */
- public String toString() {
- return toString(env, type);
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeDeclaration getDeclaration() {
- return env.declMaker.getTypeDeclaration((ClassSymbol) type.tsym);
- }
-
- /**
- * {@inheritDoc}
- */
- public DeclaredType getContainingType() {
- if (type.getEnclosingType().tag == TypeTags.CLASS) {
- // This is the type of an inner class.
- return (DeclaredType) env.typeMaker.getType(type.getEnclosingType());
- }
- ClassSymbol enclosing = type.tsym.owner.enclClass();
- if (enclosing != null) {
- // Nested but not inner. Return the raw type of the enclosing
- // class or interface.
- // See java.lang.reflect.ParameterizedType.getOwnerType().
- return (DeclaredType) env.typeMaker.getType(
- env.jctypes.erasure(enclosing.type));
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<TypeMirror> getActualTypeArguments() {
- return env.typeMaker.getTypes(type.getTypeArguments());
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<InterfaceType> getSuperinterfaces() {
- return env.typeMaker.getTypes(env.jctypes.interfaces(type),
- InterfaceType.class);
- }
-
-
- /**
- * Returns a string representation of this declared type.
- * See {@link #toString()} for details.
- */
- static String toString(AptEnv env, Type.ClassType c) {
- return c.toString();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of EnumType
- */
-@SuppressWarnings("deprecation")
-public class EnumTypeImpl extends ClassTypeImpl implements EnumType {
-
- EnumTypeImpl(AptEnv env, Type.ClassType type) {
- super(env, type);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public EnumDeclaration getDeclaration() {
- return (EnumDeclaration) super.getDeclaration();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitEnumType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of InterfaceType
- */
-@SuppressWarnings("deprecation")
-public class InterfaceTypeImpl extends DeclaredTypeImpl
- implements InterfaceType {
-
- InterfaceTypeImpl(AptEnv env, Type.ClassType type) {
- super(env, type);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public InterfaceDeclaration getDeclaration() {
- return (InterfaceDeclaration) super.getDeclaration();
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitInterfaceType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-
-import com.sun.mirror.type.PrimitiveType;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Type;
-
-import static com.sun.mirror.type.PrimitiveType.Kind.*;
-
-
-/**
- * Implementation of PrimitiveType.
- */
-@SuppressWarnings("deprecation")
-class PrimitiveTypeImpl extends TypeMirrorImpl implements PrimitiveType {
-
- private final Kind kind; // the kind of primitive
-
-
- PrimitiveTypeImpl(AptEnv env, Kind kind) {
- super(env, getType(env, kind));
- this.kind = kind;
- }
-
-
- /**
- * {@inheritDoc}
- */
- public Kind getKind() {
- return kind;
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitPrimitiveType(this);
- }
-
-
- /**
- * Returns the javac type corresponding to a kind of primitive type.
- */
- private static Type getType(AptEnv env, Kind kind) {
- switch (kind) {
- case BOOLEAN: return env.symtab.booleanType;
- case BYTE: return env.symtab.byteType;
- case SHORT: return env.symtab.shortType;
- case INT: return env.symtab.intType;
- case LONG: return env.symtab.longType;
- case CHAR: return env.symtab.charType;
- case FLOAT: return env.symtab.floatType;
- case DOUBLE: return env.symtab.doubleType;
- default: throw new AssertionError();
- }
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.type.*;
-import com.sun.mirror.type.PrimitiveType.Kind;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.util.Context;
-
-import static com.sun.tools.javac.code.TypeTags.*;
-
-
-/**
- * Utilities for constructing type objects.
- */
-@SuppressWarnings("deprecation")
-public class TypeMaker {
-
- private final AptEnv env;
- private final VoidType voidType;
- private PrimitiveType[] primTypes = new PrimitiveType[VOID];
- // VOID is past all prim types
-
-
- private static final Context.Key<TypeMaker> typeMakerKey =
- new Context.Key<TypeMaker>();
-
- public static TypeMaker instance(Context context) {
- TypeMaker instance = context.get(typeMakerKey);
- if (instance == null) {
- instance = new TypeMaker(context);
- }
- return instance;
- }
-
- private TypeMaker(Context context) {
- context.put(typeMakerKey, this);
- env = AptEnv.instance(context);
-
- voidType = new VoidTypeImpl(env);
- primTypes[BOOLEAN] = new PrimitiveTypeImpl(env, Kind.BOOLEAN);
- primTypes[BYTE] = new PrimitiveTypeImpl(env, Kind.BYTE);
- primTypes[SHORT] = new PrimitiveTypeImpl(env, Kind.SHORT);
- primTypes[INT] = new PrimitiveTypeImpl(env, Kind.INT);
- primTypes[LONG] = new PrimitiveTypeImpl(env, Kind.LONG);
- primTypes[CHAR] = new PrimitiveTypeImpl(env, Kind.CHAR);
- primTypes[FLOAT] = new PrimitiveTypeImpl(env, Kind.FLOAT);
- primTypes[DOUBLE] = new PrimitiveTypeImpl(env, Kind.DOUBLE);
- }
-
-
- /**
- * Returns the TypeMirror corresponding to a javac Type object.
- */
- public TypeMirror getType(Type t) {
- if (t.isPrimitive()) {
- return primTypes[t.tag];
- }
- switch (t.tag) {
- case ERROR: // fall through
- case CLASS: return getDeclaredType((Type.ClassType) t);
- case WILDCARD: return new WildcardTypeImpl(env, (Type.WildcardType) t);
- case TYPEVAR: return new TypeVariableImpl(env, (Type.TypeVar) t);
- case ARRAY: return new ArrayTypeImpl(env, (Type.ArrayType) t);
- case VOID: return voidType;
- default: throw new AssertionError();
- }
- }
-
- /**
- * Returns the declared type corresponding to a given ClassType.
- */
- public DeclaredType getDeclaredType(Type.ClassType t) {
- return
- hasFlag(t.tsym, Flags.ANNOTATION) ? new AnnotationTypeImpl(env, t) :
- hasFlag(t.tsym, Flags.INTERFACE) ? new InterfaceTypeImpl(env, t) :
- hasFlag(t.tsym, Flags.ENUM) ? new EnumTypeImpl(env, t) :
- new ClassTypeImpl(env, t);
- }
-
- /**
- * Returns a collection of types corresponding to a list of javac Type
- * objects.
- */
- public Collection<TypeMirror> getTypes(Iterable<Type> types) {
- return getTypes(types, TypeMirror.class);
- }
-
- /**
- * Returns a collection of types corresponding to a list of javac Type
- * objects. The element type of the result is specified explicitly.
- */
- public <T extends TypeMirror> Collection<T> getTypes(Iterable<Type> types,
- Class<T> resType) {
- ArrayList<T> res = new ArrayList<T>();
- for (Type t : types) {
- TypeMirror mir = getType(t);
- if (resType.isInstance(mir)) {
- res.add(resType.cast(mir));
- }
- }
- return res;
- }
-
- /**
- * Returns the string representation of a type.
- * Bounds of type variables are not included; bounds of wildcard types are.
- * Type names are qualified.
- */
- public String typeToString(Type t) {
- switch (t.tag) {
- case ARRAY:
- return typeToString(env.jctypes.elemtype(t)) + "[]";
- case CLASS:
- Type.ClassType c = (Type.ClassType) t;
- return DeclaredTypeImpl.toString(env, c);
- case WILDCARD:
- Type.WildcardType a = (Type.WildcardType) t;
- return WildcardTypeImpl.toString(env, a);
- default:
- return t.tsym.toString();
- }
- }
-
-
- /**
- * Does a symbol have a given flag?
- */
- private static boolean hasFlag(Symbol s, long flag) {
- return AptEnv.hasFlag(s, flag);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-
-
-/**
- * Implementation of TypeMirror
- */
-@SuppressWarnings("deprecation")
-public abstract class TypeMirrorImpl implements TypeMirror {
-
- protected final AptEnv env;
- public final Type type;
-
-
- protected TypeMirrorImpl(AptEnv env, Type type) {
- this.env = env;
- this.type = type;
- }
-
-
- /**
- * {@inheritDoc}
- */
- public String toString() {
- return type.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean equals(Object obj) {
- if (obj instanceof TypeMirrorImpl) {
- TypeMirrorImpl that = (TypeMirrorImpl) obj;
- return env.jctypes.isSameType(this.type, that.type);
- } else {
- return false;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public int hashCode() {
- return Types.hashCode(type);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import java.util.Collection;
-import java.util.ArrayList;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.Symbol.TypeSymbol;
-import com.sun.tools.javac.code.Type;
-
-
-/**
- * Implementation of TypeVariable
- */
-@SuppressWarnings("deprecation")
-public class TypeVariableImpl extends TypeMirrorImpl implements TypeVariable {
-
- protected Type.TypeVar type;
-
-
- TypeVariableImpl(AptEnv env, Type.TypeVar type) {
- super(env, type);
- this.type = type;
- }
-
-
- /**
- * Returns the simple name of this type variable. Bounds are
- * not included.
- */
- public String toString() {
- return type.tsym.name.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeParameterDeclaration getDeclaration() {
- TypeSymbol sym = type.tsym;
- return env.declMaker.getTypeParameterDeclaration(sym);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitTypeVariable(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/VoidTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import com.sun.mirror.type.VoidType;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-
-
-/**
- * Implementation of VoidType.
- */
-@SuppressWarnings("deprecation")
-class VoidTypeImpl extends TypeMirrorImpl implements VoidType {
-
- VoidTypeImpl(AptEnv env) {
- super(env, env.symtab.voidType);
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitVoidType(this);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/WildcardTypeImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.type;
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.TypeVisitor;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-
-
-/**
- * Implementation of WildcardType
- */
-@SuppressWarnings("deprecation")
-public class WildcardTypeImpl extends TypeMirrorImpl implements WildcardType {
-
- protected Type.WildcardType type;
-
- WildcardTypeImpl(AptEnv env, Type.WildcardType type) {
- super(env, type);
- this.type = type;
- }
-
-
- /**
- * Returns the string form of a wildcard type, consisting of "?"
- * and any "extends" or "super" clause.
- * Delimiting brackets are not included. Class names are qualified.
- */
- public String toString() {
- return toString(env, type);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ReferenceType> getUpperBounds() {
- return type.isSuperBound()
- ? Collections.<ReferenceType>emptyList()
- : typeToCollection(type.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public Collection<ReferenceType> getLowerBounds() {
- return type.isExtendsBound()
- ? Collections.<ReferenceType>emptyList()
- : typeToCollection(type.type);
- }
-
- /**
- * Gets the ReferenceType for a javac Type object, and returns
- * it in a singleton collection. If type is null, returns an empty
- * collection.
- */
- private Collection<ReferenceType> typeToCollection(Type type) {
- ArrayList<ReferenceType> res = new ArrayList<ReferenceType>(1);
- if (type != null) {
- res.add((ReferenceType) env.typeMaker.getType(type));
- }
- return res;
- }
-
- /**
- * {@inheritDoc}
- */
- public void accept(TypeVisitor v) {
- v.visitWildcardType(this);
- }
-
-
- /**
- * Returns the string form of a wildcard type, consisting of "?"
- * and any "extends" or "super" clause.
- * See {@link #toString()} for details.
- */
- static String toString(AptEnv env, Type.WildcardType wildThing) {
- return wildThing.toString();
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.util;
-
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.Declarations;
-import com.sun.tools.apt.mirror.declaration.DeclarationImpl;
-import com.sun.tools.apt.mirror.declaration.MethodDeclarationImpl;
-import com.sun.tools.apt.mirror.util.DeclarationsImpl;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.javac.code.*;
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.util.Context;
-
-import static com.sun.tools.javac.code.Kinds.*;
-
-
-/**
- * Implementation of Declarations utility methods for annotation processors
- */
-@SuppressWarnings("deprecation")
-public class DeclarationsImpl implements Declarations {
-
- private final AptEnv env;
-
-
- private static final Context.Key<Declarations> declarationsKey =
- new Context.Key<Declarations>();
-
- public static Declarations instance(Context context) {
- Declarations instance = context.get(declarationsKey);
- if (instance == null) {
- instance = new DeclarationsImpl(context);
- }
- return instance;
- }
-
- private DeclarationsImpl(Context context) {
- context.put(declarationsKey, this);
- env = AptEnv.instance(context);
- }
-
-
- /**
- * {@inheritDoc}
- * See sections 8.3 and 8.4.6 of
- * <cite>The Java™ Language Specification</cite>
- */
- public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
- Symbol hider = ((DeclarationImpl) sub).sym;
- Symbol hidee = ((DeclarationImpl) sup).sym;
-
- // Fields only hide fields; methods only methods; types only types.
- // Names must match. Nothing hides itself (just try it).
- if (hider == hidee ||
- hider.kind != hidee.kind ||
- hider.name != hidee.name) {
- return false;
- }
-
- // Only static methods can hide other methods.
- // Methods only hide methods with matching signatures.
- if (hider.kind == MTH) {
- if ((hider.flags() & Flags.STATIC) == 0 ||
- !env.jctypes.isSubSignature(hider.type, hidee.type)) {
- return false;
- }
- }
-
- // Hider must be in a subclass of hidee's class.
- // Note that if M1 hides M2, and M2 hides M3, and M3 is accessible
- // in M1's class, then M1 and M2 both hide M3.
- ClassSymbol hiderClass = hider.owner.enclClass();
- ClassSymbol hideeClass = hidee.owner.enclClass();
- if (hiderClass == null || hideeClass == null ||
- !hiderClass.isSubClass(hideeClass, env.jctypes)) {
- return false;
- }
-
- // Hidee must be accessible in hider's class.
- // The method isInheritedIn is poorly named: it checks only access.
- return hidee.isInheritedIn(hiderClass, env.jctypes);
- }
-
- /**
- * {@inheritDoc}
- * See section 8.4.6.1 of
- * <cite>The Java™ Language Specification</cite>
- */
- public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) {
- MethodSymbol overrider = ((MethodDeclarationImpl) sub).sym;
- MethodSymbol overridee = ((MethodDeclarationImpl) sup).sym;
- ClassSymbol origin = (ClassSymbol) overrider.owner;
-
- return overrider.name == overridee.name &&
-
- // not reflexive as per JLS
- overrider != overridee &&
-
- // we don't care if overridee is static, though that wouldn't
- // compile
- !overrider.isStatic() &&
-
- // overrider, whose declaring type is the origin, must be
- // in a subtype of overridee's type
- env.jctypes.asSuper(origin.type, overridee.owner) != null &&
-
- // check access and signatures; don't check return types
- overrider.overrides(overridee, origin, env.jctypes, false);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/SourcePositionImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.util;
-
-
-import java.io.File;
-import javax.tools.JavaFileObject;
-
-import com.sun.mirror.util.SourcePosition;
-import com.sun.tools.javac.util.Position;
-
-
-/**
- * Implementation of SourcePosition
- */
-@SuppressWarnings("deprecation")
-public class SourcePositionImpl implements SourcePosition {
-
- private JavaFileObject sourcefile;
- private int pos; // file position, in javac's internal format
- private Position.LineMap linemap;
-
-
- public SourcePositionImpl(JavaFileObject sourcefile, int pos, Position.LineMap linemap) {
- this.sourcefile = sourcefile;
- this.pos = pos;
- this.linemap = linemap;
- assert sourcefile != null;
- assert linemap != null;
- }
-
- public int getJavacPosition() {
- return pos;
- }
-
- public JavaFileObject getSource() {
- return sourcefile;
- }
-
- /**
- * Returns a string representation of this position in the
- * form "sourcefile:line", or "sourcefile" if no line number is available.
- */
- public String toString() {
- int ln = line();
- return (ln == Position.NOPOS)
- ? sourcefile.getName()
- : sourcefile.getName() + ":" + ln;
- }
-
- /**
- * {@inheritDoc}
- */
- public File file() {
- return new File(sourcefile.toUri());
- }
-
- /**
- * {@inheritDoc}
- */
- public int line() {
- return linemap.getLineNumber(pos);
- }
-
- /**
- * {@inheritDoc}
- */
- public int column() {
- return linemap.getColumnNumber(pos);
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.mirror.util;
-
-
-import java.util.Collection;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.Types;
-import com.sun.tools.apt.mirror.AptEnv;
-import com.sun.tools.apt.mirror.declaration.*;
-import com.sun.tools.apt.mirror.type.TypeMirrorImpl;
-import com.sun.tools.javac.code.BoundKind;
-import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.ListBuffer;
-
-
-/**
- * Implementation of Types utility methods for annotation processors
- */
-@SuppressWarnings("deprecation")
-public class TypesImpl implements Types {
-
- private final AptEnv env;
-
-
- private static final Context.Key<Types> typesKey =
- new Context.Key<Types>();
-
- public static Types instance(Context context) {
- Types instance = context.get(typesKey);
- if (instance == null) {
- instance = new TypesImpl(context);
- }
- return instance;
- }
-
- private TypesImpl(Context context) {
- context.put(typesKey, this);
- env = AptEnv.instance(context);
- }
-
-
- /**
- * {@inheritDoc}
- */
- public boolean isSubtype(TypeMirror t1, TypeMirror t2) {
- return env.jctypes.isSubtype(((TypeMirrorImpl) t1).type,
- ((TypeMirrorImpl) t2).type);
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isAssignable(TypeMirror t1, TypeMirror t2) {
- return env.jctypes.isAssignable(((TypeMirrorImpl) t1).type,
- ((TypeMirrorImpl) t2).type);
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeMirror getErasure(TypeMirror t) {
- return env.typeMaker.getType(
- env.jctypes.erasure(((TypeMirrorImpl) t).type));
- }
-
- /**
- * {@inheritDoc}
- */
- public PrimitiveType getPrimitiveType(PrimitiveType.Kind kind) {
- Type prim = null;
- switch (kind) {
- case BOOLEAN: prim = env.symtab.booleanType; break;
- case BYTE: prim = env.symtab.byteType; break;
- case SHORT: prim = env.symtab.shortType; break;
- case INT: prim = env.symtab.intType; break;
- case LONG: prim = env.symtab.longType; break;
- case CHAR: prim = env.symtab.charType; break;
- case FLOAT: prim = env.symtab.floatType; break;
- case DOUBLE: prim = env.symtab.doubleType; break;
- default: assert false;
- }
- return (PrimitiveType) env.typeMaker.getType(prim);
- }
-
- /**
- * {@inheritDoc}
- */
- public VoidType getVoidType() {
- return (VoidType) env.typeMaker.getType(env.symtab.voidType);
- }
-
- /**
- * {@inheritDoc}
- */
- public ArrayType getArrayType(TypeMirror componentType) {
- if (componentType instanceof VoidType) {
- throw new IllegalArgumentException("void");
- }
- return (ArrayType) env.typeMaker.getType(
- new Type.ArrayType(((TypeMirrorImpl) componentType).type,
- env.symtab.arrayClass));
- }
-
- /**
- * {@inheritDoc}
- */
- public TypeVariable getTypeVariable(TypeParameterDeclaration tparam) {
- return (TypeVariable) env.typeMaker.getType(
- ((DeclarationImpl) tparam).sym.type);
- }
-
- /**
- * {@inheritDoc}
- */
- public WildcardType getWildcardType(Collection<ReferenceType> upperBounds,
- Collection<ReferenceType> lowerBounds) {
- BoundKind kind;
- Type bound;
- int uppers = upperBounds.size();
- int downers = lowerBounds.size();
-
- if (uppers + downers > 1) {
- throw new IllegalArgumentException("Multiple bounds not allowed");
-
- } else if (uppers + downers == 0) {
- kind = BoundKind.UNBOUND;
- bound = env.symtab.objectType;
-
- } else if (uppers == 1) {
- assert downers == 0;
- kind = BoundKind.EXTENDS;
- bound = ((TypeMirrorImpl) upperBounds.iterator().next()).type;
-
- } else {
- assert uppers == 0 && downers == 1;
- kind = BoundKind.SUPER;
- bound = ((TypeMirrorImpl) lowerBounds.iterator().next()).type;
- }
-
- if (bound instanceof Type.WildcardType)
- throw new IllegalArgumentException(bound.toString());
-
- return (WildcardType) env.typeMaker.getType(
- new Type.WildcardType(bound, kind, env.symtab.boundClass));
- }
-
- /**
- * {@inheritDoc}
- */
- public DeclaredType getDeclaredType(TypeDeclaration decl,
- TypeMirror... typeArgs) {
- ClassSymbol sym = ((TypeDeclarationImpl) decl).sym;
-
- if (typeArgs.length == 0)
- return (DeclaredType) env.typeMaker.getType(
- env.jctypes.erasure(sym.type));
- if (sym.type.getEnclosingType().isParameterized())
- throw new IllegalArgumentException(decl.toString());
-
- return getDeclaredType(sym.type.getEnclosingType(), sym, typeArgs);
- }
-
- /**
- * {@inheritDoc}
- */
- public DeclaredType getDeclaredType(DeclaredType containing,
- TypeDeclaration decl,
- TypeMirror... typeArgs) {
- if (containing == null)
- return getDeclaredType(decl, typeArgs);
-
- ClassSymbol sym = ((TypeDeclarationImpl) decl).sym;
- Type outer = ((TypeMirrorImpl) containing).type;
-
- if (outer.tsym != sym.owner.enclClass())
- throw new IllegalArgumentException(containing.toString());
- if (!outer.isParameterized())
- return getDeclaredType(decl, typeArgs);
-
- return getDeclaredType(outer, sym, typeArgs);
- }
-
- private DeclaredType getDeclaredType(Type outer,
- ClassSymbol sym,
- TypeMirror... typeArgs) {
- if (typeArgs.length != sym.type.getTypeArguments().length())
- throw new IllegalArgumentException(
- "Incorrect number of type arguments");
-
- ListBuffer<Type> targs = new ListBuffer<Type>();
- for (TypeMirror t : typeArgs) {
- if (!(t instanceof ReferenceType || t instanceof WildcardType))
- throw new IllegalArgumentException(t.toString());
- targs.append(((TypeMirrorImpl) t).type);
- }
- //### Need a way to check that type args match formals.
-
- return (DeclaredType) env.typeMaker.getType(
- new Type.ClassType(outer, targs.toList(), sym));
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/apt/resources/apt.properties Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-#
-# Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-apt.msg.usage.header=\
-Usage: {0} <apt and javac options> <source files>\n\
-where apt options include:
-
-apt.msg.usage.footer=\
-See javac -help for information on javac options.
-
-apt.msg.usage.nonstandard.footer=\
-These options are non-standard and subject to change without notice, \nas is the format of their output.
-
-apt.msg.bug=\
-An exception has occurred in apt ({0}). \
-Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) \
-after checking the Bug Parade for duplicates. \
-Include your program and the following diagnostic in your report. Thank you.
-
-## apt options
-
-apt.opt.A=\
- Options to pass to annotation processors
-apt.opt.arg.class=\
- <class>
-apt.opt.arg.directory=\
- Specify where to place processor and javac generated class files
-apt.opt.classpath=\
- Specify where to find user class files and annotation processor factories
-apt.opt.d=\
- Specify where to place processor and javac generated class files
-apt.opt.factory=\
- Name of AnnotationProcessorFactory to use; bypasses default discovery process
-apt.opt.factorypath=\
- Specify where to find annotation processor factories
-apt.opt.s=\
- Specify where to place processor generated source files
-apt.opt.help=\
- Print a synopsis of standard options; use javac -help for more options
-apt.opt.print=\
- Print out textual representation of specified types
-apt.opt.nocompile=\
- Do not compile source files to class files
-apt.opt.proc.flag=\
- [key[=value]]
-apt.opt.version=\
- Version information
-apt.opt.XListAnnotationTypes=\
- List found annotation types
-apt.opt.XListDeclarations=\
- List specified and included declarations
-apt.opt.XPrintAptRounds=\
- Print information about initial and recursive apt rounds
-apt.opt.XPrintFactoryInfo=\
- Print information about which annotations a factory is asked to process
-apt.opt.XClassesAsDecls=\
- Treat both class and source files as declarations to process
-
-##
-## errors
-##
-
-## All errors which do not refer to a particular line in the source code are
-## preceded by this string.
-
-apt.err.error=\
- error:\u0020
-
-apt.err.unsupported.source.version=\
- Source release {0} is not supported; use release 5 or earlier
-
-apt.err.unsupported.target.version=\
- Target release {0} is not supported; use release 5 or earlier
-
-apt.err.BadDeclaration=\
- Bad declaration created for annotation type {0}
-
-apt.err.CantFindClass=\
- Could not find class file for {0}
-
-apt.err.DeclarationCreation=\
- Could not create declaration for annotation type {0}
-
-# Print an error from the Messager
-apt.err.Messager=\
- {0}
-
-##
-## miscellaneous strings
-##
-
-apt.misc.Deprecation=\
- \nwarning:\u0020The apt tool and its associated API are planned to be\n\
- removed in the next major JDK release. These features have been\n\
- superseded by javac and the standardized annotation processing API,\n\
- javax.annotation.processing and javax.lang.model. Users are\n\
- recommended to migrate to the annotation processing features of\n\
- javac; see the javac man page for more information.\n
-
-apt.misc.Problem=\
- Problem encountered during annotation processing; \nsee stacktrace below for more information.
-
-apt.misc.SunMiscService=\
- Error finding annotation processor factories; \ncheck META-INF/services information.
-
-# Print a notice from the Messager
-apt.note.Messager=\
- {0}
-
-##
-## warnings
-##
-
-## All warning messages are preceded by the following string.
-apt.warn.warning=\
- warning:\u0020
-
-apt.warn.AnnotationsWithoutProcessors=\
- Annotation types without processors: {0}
-
-apt.warn.BadFactory=\
- Bad annotation processor factory: {0}
-
-apt.warn.BadParentDirectory=\
- Failed to create some parent directory of {0}
-
-apt.warn.FactoryCantInstantiate=\
- Could not instantiate an instance of factory ''{0}''.
-
-apt.warn.FactoryWrongType=\
- Specified factory, ''{0}'', is not an AnnotationProcessorFactory.
-
-apt.warn.FactoryNotFound=\
- Specified AnnotationProcessorFactory, ''{0}'', not found on search path.
-
-apt.warn.FileReopening=\
- Attempt to create ''{0}'' multiple times
-
-apt.warn.IllegalFileName=\
- Cannot create file for illegal name ''{0}''.
-
-apt.warn.MalformedSupportedString=\
- Malformed string for annotation support, ''{0}'', returned by factory.
-
-apt.warn.NoNewFilesAfterRound=\
- Cannot create file ''{0}'' after a round has ended.
-
-# Print a warning from the Messager
-apt.warn.Messager=\
- {0}
-
-apt.warn.NoAnnotationProcessors=\
- No annotation processors found but annotations present.
-
-apt.warn.NullProcessor=\
- Factory {0} returned null for an annotation processor.
-
-apt.warn.CorrespondingClassFile=\
- A class file corresponding to source file ''{0}'' has already been created.
-
-apt.warn.CorrespondingSourceFile=\
- A source file corresponding to class file ''{0}'' has already been created.
--- a/langtools/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-apt.msg.usage.header=\u4F7F\u7528\u65B9\u6CD5: {0} <apt and javac options> <source files>\n\u6B21\u306Eapt\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
-
-apt.msg.usage.footer=javac\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306F\u3001javac -help\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-
-apt.msg.usage.nonstandard.footer=\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u8868\u793A\u5F62\u5F0F\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\n\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
-
-apt.msg.bug=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u306B\u540C\u3058\u30D0\u30B0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u3053\u3068\u3092\u3054\u78BA\u8A8D\u306E\u4E0A\u3001Java Developer Connection(http://java.sun.com/webapps/bugreport)\u3067\u30D0\u30B0\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002
-
-## apt options
-
-apt.opt.A=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u6E21\u3055\u308C\u308B\u30AA\u30D7\u30B7\u30E7\u30F3
-apt.opt.arg.class=<class>
-apt.opt.arg.directory=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
-apt.opt.classpath=\u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
-apt.opt.d=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
-apt.opt.factory=\u4F7F\u7528\u3059\u308BAnnotationProcessorFactory\u306E\u540D\u524D\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u691C\u51FA\u51E6\u7406\u3092\u30D0\u30A4\u30D1\u30B9
-apt.opt.factorypath=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B
-apt.opt.s=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u751F\u6210\u3057\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
-apt.opt.help=\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B\u3002\u8A73\u7D30\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306Fjavac -help\u3092\u53C2\u7167
-apt.opt.print=\u6307\u5B9A\u3057\u305F\u578B\u306E\u30C6\u30AD\u30B9\u30C8\u8868\u793A\u3092\u51FA\u529B\u3059\u308B
-apt.opt.nocompile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u306A\u3044
-apt.opt.proc.flag=[key[=value]]
-apt.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
-apt.opt.XListAnnotationTypes=\u898B\u3064\u304B\u3063\u305F\u6CE8\u91C8\u578B\u3092\u30EA\u30B9\u30C8\u3059\u308B
-apt.opt.XListDeclarations=\u6307\u5B9A\u3055\u308C\u305F\u5BA3\u8A00\u304A\u3088\u3073\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3059\u308B
-apt.opt.XPrintAptRounds=\u521D\u671F\u304A\u3088\u3073\u518D\u5E30apt\u5F80\u5FA9\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B
-apt.opt.XPrintFactoryInfo=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B
-apt.opt.XClassesAsDecls=\u30AF\u30E9\u30B9\u3068\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4E21\u65B9\u3068\u3082\u51E6\u7406\u3059\u308B\u5BA3\u8A00\u3068\u3057\u3066\u51E6\u7406
-
-##
-## errors
-##
-
-## All errors which do not refer to a particular line in the source code are
-## preceded by this string.
-
-apt.err.error=\u30A8\u30E9\u30FC:\u0020
-
-apt.err.unsupported.source.version=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
-
-apt.err.unsupported.target.version=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
-
-apt.err.BadDeclaration=\u6CE8\u91C8\u578B{0}\u7528\u306B\u4F5C\u6210\u3055\u308C\u305F\u7121\u52B9\u306A\u5BA3\u8A00\u3067\u3059
-
-apt.err.CantFindClass={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
-
-apt.err.DeclarationCreation=\u6CE8\u91C8\u578B{0}\u7528\u306B\u5BA3\u8A00\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
-
-# Print an error from the Messager
-apt.err.Messager={0}
-
-##
-## miscellaneous strings
-##
-
-apt.misc.Deprecation=\n\u8B66\u544A: apt\u30C4\u30FC\u30EB\u3068\u30C4\u30FC\u30EB\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305FAPI\u306F\u3001\u6B21\u56DE\u306EJDK\n\u30E1\u30B8\u30E3\u30FC\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\u3002\u3053\u308C\u3089\u306E\u6A5F\u80FD\u306Fjavac\u304A\u3088\u3073\n\u6A19\u6E96\u5316\u3055\u308C\u305F\u6CE8\u91C8\u51E6\u7406API\u306Ejavax.annotation.processing\u304A\u3088\u3073javax.lang.model\n\u306B\u3088\u3063\u3066\u7F6E\u304D\u63DB\u3048\u3089\u308C\u307E\u3057\u305F\u3002\u30E6\u30FC\u30B6\u30FC\u306Fjavac\u306E\u6CE8\u91C8\u51E6\u7406\u6A5F\u80FD\u306B\n\u79FB\u884C\u3059\u308B\u3053\u3068\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u3001javac man\u30DA\u30FC\u30B8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n
-
-apt.misc.Problem=\u6CE8\u91C8\u51E6\u7406\u4E2D\u306B\u554F\u984C\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u3001\u4E0B\u8A18\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30C8\u30EC\u30FC\u30B9\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-
-apt.misc.SunMiscService=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u30A8\u30E9\u30FC\u3067\u3059\u3002\nMETA-INF/services\u5185\u306E\u60C5\u5831\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-
-# Print a notice from the Messager
-apt.note.Messager={0}
-
-##
-## warnings
-##
-
-## All warning messages are preceded by the following string.
-apt.warn.warning=\u8B66\u544A:
-
-apt.warn.AnnotationsWithoutProcessors=\u30D7\u30ED\u30BB\u30C3\u30B5\u306A\u3057\u306E\u6CE8\u91C8\u578B\u3067\u3059: {0}
-
-apt.warn.BadFactory=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u7121\u52B9\u3067\u3059: {0}
-
-apt.warn.BadParentDirectory={0}\u306E\u3044\u304F\u3064\u304B\u306E\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F
-
-apt.warn.FactoryCantInstantiate=\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
-
-apt.warn.FactoryWrongType=\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306FAnnotationProcessorFactory\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-
-apt.warn.FactoryNotFound=\u6307\u5B9A\u3057\u305FAnnotationProcessorFactory ''{0}''\u306F\u691C\u7D22\u30D1\u30B9\u3067\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002
-
-apt.warn.FileReopening=''{0}''\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059
-
-apt.warn.IllegalFileName=\u7121\u52B9\u306A\u540D\u524D''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
-
-apt.warn.MalformedSupportedString=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u8FD4\u3057\u305F\u6CE8\u91C8\u30B5\u30DD\u30FC\u30C8''{0}''\u306E\u6587\u5B57\u5217\u304C\u4E0D\u6B63\u3067\u3059\u3002
-
-apt.warn.NoNewFilesAfterRound=\u5F80\u5FA9\u306E\u7D42\u4E86\u5F8C\u306B\u30D5\u30A1\u30A4\u30EB''{0}''\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
-
-# Print a warning from the Messager
-apt.warn.Messager={0}
-
-apt.warn.NoAnnotationProcessors=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u6CE8\u91C8\u306F\u5B58\u5728\u3057\u307E\u3059\u3002
-
-apt.warn.NullProcessor=\u30D5\u30A1\u30AF\u30C8\u30EA{0}\u304C\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306Bnull\u3092\u8FD4\u3057\u307E\u3057\u305F\u3002
-
-apt.warn.CorrespondingClassFile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
-
-apt.warn.CorrespondingSourceFile=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
--- a/langtools/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-apt.msg.usage.header=\u7528\u6CD5: {0} <apt and javac options> <source files>\n\u5176\u4E2D, apt \u9009\u9879\u5305\u62EC:
-
-apt.msg.usage.footer=\u6709\u5173 javac \u9009\u9879\u7684\u4FE1\u606F, \u8BF7\u53C2\u9605 javac -help\u3002
-
-apt.msg.usage.nonstandard.footer=\u8FD9\u4E9B\u9009\u9879\u53CA\u5176\u8F93\u51FA\u683C\u5F0F\u90FD\u4E0D\u662F\u6807\u51C6\u7684, \n\u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002
-
-apt.msg.bug=apt ({0}) \u4E2D\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002 \u5982\u679C\u5728 Bug Parade \u4E2D\u6CA1\u6709\u627E\u5230\u8BE5\u9519\u8BEF, \u8BF7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u4E2D\u5EFA\u7ACB Bug\u3002\u8BF7\u5728\u62A5\u544A\u4E2D\u9644\u4E0A\u60A8\u7684\u7A0B\u5E8F\u548C\u4EE5\u4E0B\u8BCA\u65AD\u4FE1\u606F\u3002\u8C22\u8C22\u3002
-
-## apt options
-
-apt.opt.A=\u4F20\u9012\u7ED9\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u9009\u9879
-apt.opt.arg.class=<\u7C7B>
-apt.opt.arg.directory=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E
-apt.opt.classpath=\u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u548C\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E
-apt.opt.d=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E
-apt.opt.factory=\u8981\u4F7F\u7528\u7684 AnnotationProcessorFactory \u7684\u540D\u79F0; \u7ED5\u8FC7\u9ED8\u8BA4\u7684\u641C\u7D22\u8FDB\u7A0B
-apt.opt.factorypath=\u6307\u5B9A\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E
-apt.opt.s=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u751F\u6210\u7684\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E
-apt.opt.help=\u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981; \u4F7F\u7528 javac -help \u53EF\u4EE5\u5F97\u5230\u66F4\u591A\u9009\u9879
-apt.opt.print=\u8F93\u51FA\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u672C\u8868\u793A
-apt.opt.nocompile=\u8BF7\u52FF\u5C06\u6E90\u6587\u4EF6\u7F16\u8BD1\u4E3A\u7C7B\u6587\u4EF6
-apt.opt.proc.flag=[\u5173\u952E\u5B57[=\u503C]]
-apt.opt.version=\u7248\u672C\u4FE1\u606F
-apt.opt.XListAnnotationTypes=\u5217\u51FA\u627E\u5230\u7684\u6CE8\u91CA\u7C7B\u578B
-apt.opt.XListDeclarations=\u5217\u51FA\u6307\u5B9A\u548C\u5305\u542B\u7684\u58F0\u660E
-apt.opt.XPrintAptRounds=\u8F93\u51FA\u6709\u5173\u521D\u59CB\u548C\u9012\u5F52 apt \u5FAA\u73AF\u7684\u4FE1\u606F
-apt.opt.XPrintFactoryInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5DE5\u5382\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F
-apt.opt.XClassesAsDecls=\u5C06\u7C7B\u6587\u4EF6\u548C\u6E90\u6587\u4EF6\u90FD\u89C6\u4E3A\u8981\u5904\u7406\u7684\u58F0\u660E
-
-##
-## errors
-##
-
-## All errors which do not refer to a particular line in the source code are
-## preceded by this string.
-
-apt.err.error=\u9519\u8BEF:\u0020
-
-apt.err.unsupported.source.version=\u4E0D\u652F\u6301\u6E90\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248
-
-apt.err.unsupported.target.version=\u4E0D\u652F\u6301\u76EE\u6807\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248
-
-apt.err.BadDeclaration=\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u7684\u58F0\u660E\u51FA\u73B0\u9519\u8BEF
-
-apt.err.CantFindClass=\u627E\u4E0D\u5230{0}\u7684\u7C7B\u6587\u4EF6
-
-apt.err.DeclarationCreation=\u65E0\u6CD5\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u58F0\u660E
-
-# Print an error from the Messager
-apt.err.Messager={0}
-
-##
-## miscellaneous strings
-##
-
-apt.misc.Deprecation=\n\u8B66\u544A:\u0020\u5DF2\u8BA1\u5212\u5728\u4E0B\u4E00\u4E2A JDK \u4E3B\u53D1\u884C\u7248\u4E2D\n\u5220\u9664 apt \u5DE5\u5177\u53CA\u5176\u5173\u8054\u7684 API\u3002\u8FD9\u4E9B\u529F\u80FD\n\u5DF2\u88AB javac \u548C\u6807\u51C6\u6CE8\u91CA\u5904\u7406 API,\njavax.annotation.processing \u548C javax.lang.model \u53D6\u4EE3\u3002\u5EFA\u8BAE\u7528\u6237\n\u79FB\u690D\u5230 javac \u7684\u6CE8\u91CA\u5904\u7406\u529F\u80FD;\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 javac \u5E2E\u52A9\u9875\u3002\n
-
-apt.misc.Problem=\u6CE8\u91CA\u5904\u7406\u8FC7\u7A0B\u4E2D\u9047\u5230\u95EE\u9898; \n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4E0B\u9762\u7684\u5806\u6808\u8DDF\u8E2A\u3002
-
-apt.misc.SunMiscService=\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u65F6\u51FA\u9519; \n\u8BF7\u67E5\u770B META-INF/\u670D\u52A1\u4FE1\u606F\u3002
-
-# Print a notice from the Messager
-apt.note.Messager={0}
-
-##
-## warnings
-##
-
-## All warning messages are preceded by the following string.
-apt.warn.warning=\u8B66\u544A:\u0020
-
-apt.warn.AnnotationsWithoutProcessors=\u4E0D\u5E26\u5904\u7406\u7A0B\u5E8F\u7684\u6CE8\u91CA\u7C7B\u578B: {0}
-
-apt.warn.BadFactory=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u51FA\u73B0\u9519\u8BEF: {0}
-
-apt.warn.BadParentDirectory=\u65E0\u6CD5\u521B\u5EFA{0}\u7684\u67D0\u4E9B\u7236\u76EE\u5F55
-
-apt.warn.FactoryCantInstantiate=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u5DE5\u5382 ''{0}'' \u7684\u5B9E\u4F8B\u3002
-
-apt.warn.FactoryWrongType=\u6307\u5B9A\u7684\u5DE5\u5382 ''{0}'' \u4E0D\u662F AnnotationProcessorFactory\u3002
-
-apt.warn.FactoryNotFound=\u5728\u641C\u7D22\u8DEF\u5F84\u4E2D\u627E\u4E0D\u5230\u6307\u5B9A\u7684 AnnotationProcessorFactory ''{0}''\u3002
-
-apt.warn.FileReopening=\u5C1D\u8BD5\u591A\u6B21\u521B\u5EFA ''{0}''
-
-apt.warn.IllegalFileName=\u65E0\u6CD5\u521B\u5EFA\u5E26\u6709\u975E\u6CD5\u540D\u79F0 ''{0}'' \u7684\u6587\u4EF6\u3002
-
-apt.warn.MalformedSupportedString=\u5DE5\u5382\u8FD4\u56DE\u683C\u5F0F\u9519\u8BEF\u7684\u6CE8\u91CA\u652F\u6301\u5B57\u7B26\u4E32 ''{0}''\u3002
-
-apt.warn.NoNewFilesAfterRound=\u5FAA\u73AF\u7ED3\u675F\u540E\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6 ''{0}''\u3002
-
-# Print a warning from the Messager
-apt.warn.Messager={0}
-
-apt.warn.NoAnnotationProcessors=\u627E\u4E0D\u5230\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u4F46\u5B58\u5728\u6CE8\u91CA\u3002
-
-apt.warn.NullProcessor=\u5BF9\u4E8E\u67D0\u4E2A\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u5DE5\u5382{0}\u8FD4\u56DE\u7684\u503C\u4E3A\u7A7A\u503C\u3002
-
-apt.warn.CorrespondingClassFile=\u5DF2\u521B\u5EFA\u4E0E\u6E90\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u7C7B\u6587\u4EF6\u3002
-
-apt.warn.CorrespondingSourceFile=\u5DF2\u521B\u5EFA\u4E0E\u7C7B\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u6E90\u6587\u4EF6\u3002
--- a/langtools/src/share/classes/com/sun/tools/apt/util/Bark.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.apt.util;
-
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.JCDiagnostic;
-import com.sun.tools.javac.util.JCDiagnostic.SimpleDiagnosticPosition;
-import com.sun.tools.javac.util.Log;
-import com.sun.tools.javac.util.JavacMessages;
-import com.sun.tools.javac.util.Position;
-
-/** A subtype of Log for use in APT.
- *
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.</b>
- */
-public class Bark extends Log {
- /** The context key for the bark. */
- protected static final Context.Key<Bark> barkKey =
- new Context.Key<Bark>();
-
- /**
- * Preregisters factories to create and use a Bark object for use as
- * both a Log and a Bark.
- */
- public static void preRegister(Context context) {
- context.put(barkKey, new Context.Factory<Bark>() {
- public Bark make(Context c) {
- return new Bark(c);
- }
- });
- context.put(Log.logKey, new Context.Factory<Log>() {
- public Log make(Context c) {
- return Bark.instance(c);
- }
- });
- }
-
- /** Get the Bark instance for this context. */
- public static Bark instance(Context context) {
- Bark instance = context.get(barkKey);
- if (instance == null)
- instance = new Bark(context);
- return instance;
- }
-
- /** Specifies whether or not to ignore any diagnostics that are reported.
- */
- private boolean ignoreDiagnostics;
-
- /**
- * Factory for APT-specific diagnostics.
- */
- private JCDiagnostic.Factory aptDiags;
-
-
- /**
- * Creates a Bark.
- */
- protected Bark(Context context) {
- super(context); // will register this object in context with Log.logKey
- context.put(barkKey, this);
-
- // register additional resource bundle for APT messages.
- JavacMessages aptMessages = JavacMessages.instance(context);
- aptMessages.add("com.sun.tools.apt.resources.apt");
- aptDiags = new JCDiagnostic.Factory(aptMessages, "apt");
-
- multipleErrors = true;
- }
-
- /**
- * Sets a flag indicating whether or not to ignore all diagnostics.
- * When ignored, they are not reported to the output writers, not are they
- * counted in the various counters.
- * @param b If true, subsequent diagnostics will be ignored.
- * @return the previous state of the flag
- */
- public boolean setDiagnosticsIgnored(boolean b) {
- boolean prev = ignoreDiagnostics;
- ignoreDiagnostics = b;
- return prev;
- }
-
- /**
- * Report a diagnostic if they are not currently being ignored.
- */
- @Override
- public void report(JCDiagnostic diagnostic) {
- if (ignoreDiagnostics)
- return;
-
- super.report(diagnostic);
- }
-
- /** Report an error.
- * @param key The key for the localized error message.
- * @param args Fields of the error message.
- */
- public void aptError(String key, Object... args) {
- aptError(Position.NOPOS, key, args);
- }
-
- /** Report an error, unless another error was already reported at same
- * source position.
- * @param pos The source position at which to report the error.
- * @param key The key for the localized error message.
- * @param args Fields of the error message.
- */
- public void aptError(int pos, String key, Object ... args) {
- report(aptDiags.error(source, new SimpleDiagnosticPosition(pos), key, args));
- }
-
- /** Report a warning, unless suppressed by the -nowarn option or the
- * maximum number of warnings has been reached.
- * @param key The key for the localized warning message.
- * @param args Fields of the warning message.
- */
- public void aptWarning(String key, Object... args) {
- aptWarning(Position.NOPOS, key, args);
- }
-
- /** Report a warning, unless suppressed by the -nowarn option or the
- * maximum number of warnings has been reached.
- * @param pos The source position at which to report the warning.
- * @param key The key for the localized warning message.
- * @param args Fields of the warning message.
- */
- public void aptWarning(int pos, String key, Object ... args) {
- report(aptDiags.warning(source, new SimpleDiagnosticPosition(pos), key, args));
- }
-
- /** Report a note, unless suppressed by the -nowarn option.
- * @param key The key for the localized note message.
- * @param args Fields of the note message.
- */
- public void aptNote(String key, Object... args) {
- aptNote(Position.NOPOS, key, args);
- }
-
- /** Report a note, unless suppressed by the -nowarn option.
- * @param pos The source position at which to report the note.
- * @param key The key for the localized note message.
- * @param args Fields of the note message.
- */
- public void aptNote(int pos, String key, Object ... args) {
- report(aptDiags.note(source, new SimpleDiagnosticPosition(pos), key, args));
- }
-}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Sat Feb 18 16:12:28 2012 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -2114,25 +2114,26 @@
*/
void checkOverrideClashes(DiagnosticPosition pos, Type site, MethodSymbol sym) {
ClashFilter cf = new ClashFilter(site);
- //for each method m1 that is a member of 'site'...
- for (Symbol s1 : types.membersClosure(site, false).getElementsByName(sym.name, cf)) {
- //...find another method m2 that is overridden (directly or indirectly)
- //by method 'sym' in 'site'
- for (Symbol s2 : types.membersClosure(site, false).getElementsByName(sym.name, cf)) {
- if (s1 == s2 || !sym.overrides(s2, site.tsym, types, false)) continue;
+ //for each method m1 that is overridden (directly or indirectly)
+ //by method 'sym' in 'site'...
+ for (Symbol m1 : types.membersClosure(site, false).getElementsByName(sym.name, cf)) {
+ if (!sym.overrides(m1, site.tsym, types, false)) continue;
+ //...check each method m2 that is a member of 'site'
+ for (Symbol m2 : types.membersClosure(site, false).getElementsByName(sym.name, cf)) {
+ if (m2 == m1) continue;
//if (i) the signature of 'sym' is not a subsignature of m1 (seen as
//a member of 'site') and (ii) m1 has the same erasure as m2, issue an error
- if (!types.isSubSignature(sym.type, types.memberType(site, s1), false) &&
- types.hasSameArgs(s1.erasure(types), s2.erasure(types))) {
+ if (!types.isSubSignature(sym.type, types.memberType(site, m2), false) &&
+ types.hasSameArgs(m2.erasure(types), m1.erasure(types))) {
sym.flags_field |= CLASH;
- String key = s2 == sym ?
+ String key = m1 == sym ?
"name.clash.same.erasure.no.override" :
"name.clash.same.erasure.no.override.1";
log.error(pos,
key,
sym, sym.location(),
- s1, s1.location(),
- s2, s2.location());
+ m2, m2.location(),
+ m1, m1.location());
return;
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Sat Feb 18 16:12:28 2012 -0800
@@ -1077,7 +1077,9 @@
boolean errors = false;
for (String nameStr : classnames) {
Symbol sym = resolveBinaryNameOrIdent(nameStr);
- if (sym == null || (sym.kind == Kinds.PCK && !processPcks)) {
+ if (sym == null ||
+ (sym.kind == Kinds.PCK && !processPcks) ||
+ sym.kind == Kinds.ABSENT_TYP) {
log.error("proc.cant.find.class", nameStr);
errors = true;
continue;
--- a/langtools/test/tools/apt/Basics/Aggregate.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public class Aggregate {
- static {
- System.out.println("xxyzzy");
- }
-
- private Aggregate() {}
-
- private static double hypot(double Berkeley, double SantaCruz) {
- return 0.0;
- }
-
- public int hashcode() {return 42;}
- public boolean equals(Aggregate a) {return this == a;}
-
- public static void main(String[] argv) {
- System.out.println("Hello World.");
- }
-}
--- a/langtools/test/tools/apt/Basics/ClassAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-@MySimple("value") @MyMarker
-@AnnotMarker @AnnotSimple("foo")
-@AnnotMarker2 @AnnotSimple2("bar")
-public class ClassAnnotations {
- static double d;
-
- public void foo() {
- return;
- }
-
- private double bar(int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/FreshnessApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Indirect test of whether source or class files are used to provide
- * declaration information.
- */
-public class FreshnessApf implements AnnotationProcessorFactory {
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new FreshnessAp(env);
- }
-
- private static class FreshnessAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- FreshnessAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- System.out.println("Testing for freshness.");
- boolean empty = true;
- for (TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations()) {
- for (FieldDeclaration fieldDecl: typeDecl.getFields() ) {
- empty = false;
- System.out.println(typeDecl.getQualifiedName() +
- "." + fieldDecl.getSimpleName());
-
- // Verify the declaration for the type of the
- // field is a class with an annotation.
- System.out.println(((DeclaredType) fieldDecl.getType()).getDeclaration().getAnnotationMirrors());
- if (((DeclaredType) fieldDecl.getType()).getDeclaration().getAnnotationMirrors().size() == 0)
- env.getMessager().printError("Expected an annotation.");
- }
- }
-
- if (empty)
- env.getMessager().printError("No fields encountered.");
- }
- }
-}
--- a/langtools/test/tools/apt/Basics/GenClass.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * A trivial generic class to test the fix for 5018369.
- */
-
-class GenClass<T> {
-}
--- a/langtools/test/tools/apt/Basics/Indirect.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * Class that is used to provide a pointer to another class
- * declaration.
- */
-public class Indirect {
- Milk skim = null;
-}
--- a/langtools/test/tools/apt/Basics/Lacuna.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-class Lacuna extends Missing {}
--- a/langtools/test/tools/apt/Basics/MethodAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-public class MethodAnnotations {
- static double d;
-
- @MySimple("value") @MyMarker
- @AnnotMarker @AnnotSimple("foo")
- @AnnotMarker2 @AnnotSimple2("bar")
- public void foo() {
- return;
- }
-
- private double bar(int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/Milk.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import java.lang.annotation.*;
-
-@Fresh
-public class Milk {
- // Moo.
-}
-
-@Retention(RetentionPolicy.SOURCE)
-@interface Fresh {
-}
--- a/langtools/test/tools/apt/Basics/MisMatch.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-/**
- * Class that uses constructs whose language and vm interpretation
- * differ.
- */
-public class MisMatch {
- static final int constant = 3;
- static int notConstant = 4;
- private static strictfp class NestedClass {
- }
-
- protected abstract class AbstractNestedClass {
- /**
- * Another doc comment.
- *
- * This one has multiple lines.
- */
- void myMethod() throws RuntimeException , Error {}
-
- abstract void myAbstractMethod();
- }
-
- void VarArgsMethod1(Number... num) {
- ;
- }
-
- void VarArgsMethod2(float f, double d, Number... num) {
- ;
- }
-}
-
-@interface Colors {
-}
-
-interface Inter {
- void interfaceMethod();
-}
-
-enum MyEnum {
- RED,
- GREEN,
- BLUE;
-}
--- a/langtools/test/tools/apt/Basics/Misc.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * Class with miscellaneous structures to exercise printing.
- */
-
-import java.util.Collection;
-
-public final class Misc<T> implements Marker2, Marker3 {
- private static final long longConstant = Long.MAX_VALUE;
-
- private static final String asciispecials = "\t\n\u0007";
-
- public void covar(Collection<? extends T> s) {return;}
-
- public void contravar(Collection<? super T> s) {return;}
-
- public <S> S varUse(int i) {return null;}
-
- Object o = (new Object() {}); // verify fix for 5019108
-}
-
-interface Marker1 {}
-
-interface Marker2 extends Marker1 {}
-
-interface Marker3 {}
--- a/langtools/test/tools/apt/Basics/MyMarker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-public @interface MyMarker {
-}
--- a/langtools/test/tools/apt/Basics/MySimple.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-public @interface MySimple {
- String value() default "default";
-}
--- a/langtools/test/tools/apt/Basics/NestedClassAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-public class NestedClassAnnotations {
- static double d;
-
- public void foo() {
- return;
- }
-
- public static void baz() {
- }
-
- private double bar(int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- @MySimple("value") @MyMarker
- @AnnotMarker @AnnotSimple("foo")
- @AnnotMarker2 @AnnotSimple2("bar")
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/ParameterAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-public class ParameterAnnotations {
- static double d;
-
- public void foo() {
- return;
- }
-
- private double bar(@MySimple("value") @MyMarker
- @AnnotMarker @AnnotSimple("foo")
- @AnnotMarker2 @AnnotSimple2("bar")
- int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/StaticFieldAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-public class StaticFieldAnnotations {
- @MySimple("value") @MyMarker
- @AnnotMarker @AnnotSimple("foo")
- @AnnotMarker2 @AnnotSimple2("bar")
- static double d;
-
- public void foo() {
- return;
- }
-
- private double bar(int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/StaticMethodAnnotations.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import annot.*;
-import annot.annot2.*;
-
-public class StaticMethodAnnotations {
- static double d;
-
- public void foo() {
- return;
- }
-
- @MySimple("value") @MyMarker
- @AnnotMarker @AnnotSimple("foo")
- @AnnotMarker2 @AnnotSimple2("bar")
- public static void baz() {
- }
-
- private double bar(int baz) {
- @AnnotShangri_la
- int local = 0;
- return (double) baz;
- }
-
- static class NestedClass {
- protected int field;
- }
-}
--- a/langtools/test/tools/apt/Basics/TestGetPackageApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * This class is used to test getPackage on classes that are
- * not already loaded.
- */
-public class TestGetPackageApf implements AnnotationProcessorFactory {
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new TestGetPackageAp(env);
- }
-
- private static class TestGetPackageAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- TestGetPackageAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- boolean failed = false;
- String packageNames[] = {
- "", // unnamed package
- "java.lang.annotation",
- "java.lang",
- "java.util",
- "java.awt.image.renderable",
- "foo.bar",
- "foo",
- "p1",
- // "p1.p2", // class p1.p2 obscures package p1.p2
- };
-
- for(String packageName: packageNames) {
- PackageDeclaration p = env.getPackage(packageName);
- if (p == null) {
- failed = true;
- System.err.println("ERROR: No declaration found for ``" + packageName + "''.");
- }
- else if (!packageName.equals(p.getQualifiedName())) {
- failed = true;
- System.err.println("ERROR: Unexpected package name; expected " + packageName +
- "got " + p.getQualifiedName());
- }
- }
-
- String notPackageNames[] = {
- "XXYZZY",
- "java.lang.String",
- "1",
- "1.2",
- "3.14159",
- "To be or not to be is a tautology",
- "1+2=3",
- };
-
- for(String notPackageName: notPackageNames) {
- PackageDeclaration p = env.getPackage(notPackageName);
- if (p != null) {
- failed = true;
- System.err.println("ERROR: Unexpected declaration: ``" + p + "''.");
- }
- }
-
- if (failed)
- throw new RuntimeException("Errors found testing getPackage.");
- }
- }
-}
--- a/langtools/test/tools/apt/Basics/TestGetTypeDeclarationApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * This class is used to test getTypeDeclaration on classes that are
- * not already loaded.
- */
-public class TestGetTypeDeclarationApf implements AnnotationProcessorFactory {
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new TestGetTypeDeclarationAp(env);
- }
-
- private static class TestGetTypeDeclarationAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- TestGetTypeDeclarationAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- String classNames[] = {
- "java.lang.String", // should be already available
- "java.lang.Thread.State", // should be already available
- "java.util.Collection",
- "java.util.Map.Entry",
- "foo.bar.Baz.Xxyzzy.Wombat",
- "foo.bar.Baz.Xxyzzy",
- "foo.bar.Baz",
- "foo.bar.Quux",
- "foo.bar.Quux.Xxyzzy",
- "foo.bar.Quux.Xxyzzy.Wombat",
- "NestedClassAnnotations",
- "NestedClassAnnotations.NestedClass",
- };
-
- for(String className: classNames) {
- TypeDeclaration t = env.getTypeDeclaration(className);
- if (t == null)
- throw new RuntimeException("No declaration found for " + className);
- if (! t.getQualifiedName().equals(className))
- throw new RuntimeException("Class with wrong name found for " + className);
- }
-
- // Test obscuring behavior; i.e. nested class C1 in class
- // p1 where p1 is member of package p2 should be favored
- // over class C1 in package p1.p2.
- String nonuniqueCanonicalNames[] = {
- "p1.p2.C1",
- };
- for(String className: nonuniqueCanonicalNames) {
- ClassDeclaration c1 = (ClassDeclaration) env.getTypeDeclaration(className);
- ClassDeclaration c2 = (ClassDeclaration) c1.getDeclaringType();
- PackageDeclaration p = env.getPackage("p1");
-
- if (!p.equals(c1.getPackage()) ||
- c2 == null ||
- !"C1".equals(c1.getSimpleName())) {
- throw new RuntimeException("Bad class declaration");
- }
- }
-
- String notClassNames[] = {
- "",
- "XXYZZY",
- "java",
- "java.lang",
- "java.lang.Bogogogous",
- "1",
- "1.2",
- "3.14159",
- "To be or not to be is a tautology",
- "1+2=3",
- "foo+.x",
- "foo+x",
- "+",
- "?",
- "***",
- "java.*",
- };
-
- for(String notClassName: notClassNames) {
- Declaration t = env.getTypeDeclaration(notClassName);
- if (t != null) {
- System.err.println("Unexpected declaration:" + t);
- throw new RuntimeException("Declaration found for ``" + notClassName + "''.");
- }
- }
-
- }
- }
-}
--- a/langtools/test/tools/apt/Basics/annot/AnnotMarker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package annot;
-
-public @interface AnnotMarker {
-}
--- a/langtools/test/tools/apt/Basics/annot/AnnotShangri_la.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package annot;
-
-/*
- * This annotation is used by the tests only to annotate local
- * variables; therefore, this annotation should not affect the
- * discovery process and should not appear in the list printed by
- * -XListAnnotationTypes.
- */
-public @interface AnnotShangri_la {
-}
--- a/langtools/test/tools/apt/Basics/annot/AnnotSimple.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package annot;
-
-public @interface AnnotSimple {
- String value() default "default";
-}
--- a/langtools/test/tools/apt/Basics/annot/annot2/AnnotMarker2.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package annot.annot2;
-
-public @interface AnnotMarker2 {
-}
--- a/langtools/test/tools/apt/Basics/annot/annot2/AnnotSimple2.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package annot.annot2;
-
-public @interface AnnotSimple2 {
- String value() default "default";
-}
--- a/langtools/test/tools/apt/Basics/apt.sh Thu Feb 16 13:01:46 2012 -0800
+++ b/langtools/test/tools/apt/Basics/apt.sh Sat Feb 18 16:12:28 2012 -0800
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -24,11 +24,10 @@
#
# @test
-# @bug 4908512 5024825 4957203 4993280 4996963 6174696 6177059
+# @bug 4908512 5024825 4957203 4993280 4996963 6174696 6177059 7041249
# @run shell ../verifyVariables.sh
-# @build Milk MethodAnnotations NestedClassAnnotations StaticFieldAnnotations StaticMethodAnnotations ParameterAnnotations
# @run shell apt.sh
-# @summary test consistency of annotation discovery
+# @summary Make sure apt is removed and doesn't come back
# @author Joseph D. Darcy
OS=`uname -s`;
@@ -41,136 +40,24 @@
;;
esac
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -XDsuppress-tool-api-removal-message "
-
-printf "%s\n" "-classpath ${TESTCLASSES}" > options
-printf "%s\n" "-factorypath ./nullap.jar" >> options
-printf "%s\n" "-sourcepath ${TESTSRC} " >> options
-printf "%s\n" "-nocompile" >> options
-printf "%s\n" "-XListAnnotationTypes" >> options
-
-printf "%s\n" "-classpath ${TESTCLASSES}" > options1
-printf "%s\n" "-factorypath ./nullap.jar" >> options1
-printf "%s\n" "-sourcepath ${TESTSRC} " >> options1
-printf "%s\n" "-nocompile" >> options1
-printf "%s\n" "-XListAnnotationTypes" >> options1
-printf "%s\n" "-XclassesAsDecls" >> options1
-
+# Verify apt executable does not exist
+if [ -f "${TESTJAVA}/bin/apt" -o -f "${TESTJAVA}/bin/apt.exe" ];then
+ echo "apt executable should not exist."
+ exit 1
+fi
# Construct path to javac executable
JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
-JAR="${TESTJAVA}/bin/jar "
-$JAVAC ${TESTSRC}/NullAPF.java \
-${TESTSRC}/FreshnessApf.java \
-${TESTSRC}/TestGetTypeDeclarationApf.java \
-${TESTSRC}/TestGetPackageApf.java
+$JAVAC ${TESTSRC}/NullAPF.java
RESULT=$?
case "${RESULT}" in
0 )
- ;;
+ echo "Compilation of apt-using source passed improperly."
+ exit 1
+ ;;
* )
- echo "Compilation failed."
- exit 1
+ ;;
esac
-
-echo "Making services directory and copying services information."
-mkdir -p META-INF/services
-cp ${TESTSRC}/com.sun.mirror.apt.AnnotationProcessorFactory ./META-INF/services
-$JAR cvf0 nullap.jar NullAPF*.class META-INF
-
-ANNOTATION_FILES="${TESTSRC}/ClassAnnotations.java \
-${TESTSRC}/MethodAnnotations.java \
-${TESTSRC}/NestedClassAnnotations.java \
-${TESTSRC}/StaticFieldAnnotations.java \
-${TESTSRC}/StaticMethodAnnotations.java \
-${TESTSRC}/ParameterAnnotations.java"
-
-for i in ${ANNOTATION_FILES}
-do
- printf "%s\n" "Testing annotations on source file ${i}"
- ${APT} @options ${i} 2> result.txt
- diff ${DIFFOPTS} ${TESTSRC}/golden.txt result.txt
-
- RESULT=$?
- case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "Unexpected set of annotations on source files found."
- exit 1
- esac
-
- CLASS=`basename ${i} .java`
- printf "%s\n" "Testing annotations on class file ${CLASS}"
- ${APT} @options1 ${CLASS} 2> result2.txt
- diff ${DIFFOPTS} ${TESTSRC}/golden.txt result2.txt
-
- RESULT=$?
- case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "Unexpected set of annotations on class files found."
- exit 1
- esac
-done
-
-# Verify source files are favored over class files
-
-printf "%s\n" "-factorypath ." > options2
-printf "%s\n" "-factory FreshnessApf" >> options2
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options2
-printf "%s\n" "-classpath ${TESTCLASSES}" >> options2
-printf "%s\n" "-nocompile" >> options2
-
-${APT} @options2 ${TESTSRC}/Indirect.java
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- exit 1
-esac
-
-# Verify new classes can be loaded by getTypeDeclaration
-
-printf "%s\n" "-factorypath ." > options3
-printf "%s\n" "-factory TestGetTypeDeclarationApf" >> options3
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options3
-
-# ${APT} @options3
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- exit 1
-esac
-
-# Verify packages can be loaded by getPackage
-
-printf "%s\n" "-factorypath ." > options4
-printf "%s\n" "-factory TestGetPackageApf" >> options4
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options4
-
-${APT} @options4
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- exit 1
-esac
-exit 0
--- a/langtools/test/tools/apt/Basics/com.sun.mirror.apt.AnnotationProcessorFactory Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-NullAPF
--- a/langtools/test/tools/apt/Basics/foo/bar/Baz.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package foo.bar;
-
-public class Baz {
- public class Xxyzzy {
- public class Wombat {
- }
- }
-
-}
--- a/langtools/test/tools/apt/Basics/foo/bar/Quux.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package foo.bar;
-
-public class Quux {
- public class Xxyzzy {
- public class Wombat {
- }
- }
-
-}
--- a/langtools/test/tools/apt/Basics/golden.txt Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Set of annotations found:[MyMarker, MySimple, annot.AnnotMarker, annot.AnnotSimple, annot.annot2.AnnotMarker2, annot.annot2.AnnotSimple2]
--- a/langtools/test/tools/apt/Basics/goldenAggregate.txt Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-
-public class Aggregate {
-
- private Aggregate();
-
- private static double hypot(double arg0,
- double arg1);
-
- public static void main(java.lang.String[] arg0);
-
- public boolean equals(Aggregate arg0);
-
- public int hashcode();
-}
--- a/langtools/test/tools/apt/Basics/p1/p2.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package p1;
-
-public class p2 {
- public static class C1 {}
-}
--- a/langtools/test/tools/apt/Basics/p1/p2/C1.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package p1.p2;
-
-public class C1 {
-}
--- a/langtools/test/tools/apt/Basics/print.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 5008759 4998341 5018369 5032476 5060121 5096932 5096931
-# @run shell ../verifyVariables.sh
-# @run shell print.sh
-# @summary test availabilty of print option
-# @author Joseph D. Darcy
-
-OS=`uname -s`;
-case "${OS}" in
- CYGWIN* )
- DIFFOPTS="--strip-trailing-cr"
- ;;
-
- * )
- ;;
-esac
-
-# Compile file directly, without TESTJAVACOPTS
-# Don't use @build or @compile as these implicitly use jtreg -javacoption values
-# and it is important that this file be compiled as expected, for later comparison
-# against a golden file.
-"${TESTJAVA}/bin/javac" ${TESTTOOLVMOPTS} -d ${TESTCLASSES} ${TESTSRC}/Aggregate.java
-
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} \
--print "
-
-printf "%s\n" "APT = ${APT}"
-
-PRINT_FILES="${TESTSRC}/MisMatch.java \
-${TESTSRC}/GenClass.java \
-${TESTSRC}/Misc.java \
-${TESTSRC}/Lacuna.java"
-
-for i in ${PRINT_FILES}
-do
- # Delete any existing class file
- FILENAME=`basename $i .java`
- rm -f ${FILENAME}.class
-
- printf "%s\n" "Printing ${i}"
- ${APT} ${i}
-
- RESULT=$?
- case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "Problem printing file ${i}."
- exit 1
- esac
-
- # Verify compilation did not occur
- if [ -f ${FILENAME}.class ]; then
- printf "Improper compilation occured for %s.\n" ${i}
- exit 1
- fi
-
-done
-
-# check for mutliple methods and no static initializer
-
-${APT} -XclassesAsDecls -cp ${TESTCLASSES} -print Aggregate > aggregate.txt
-diff ${DIFFOPTS} aggregate.txt ${TESTSRC}/goldenAggregate.txt
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "Expected output not received"
- exit 1
-esac
-
-exit 0
--- a/langtools/test/tools/apt/Compile/ClassDeclApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import java.io.*;
-
-import static java.util.Collections.*;
-
-/*
- * This class is used to test the ability to store static state across
- * apt rounds.
- */
-public class ClassDeclApf implements AnnotationProcessorFactory {
- static int round = -1;
-
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new ClassDeclAp(env);
- }
-
- private static class ClassDeclAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- ClassDeclAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- // Simple inefficient drain
- void drain(InputStream is, OutputStream os) {
- try {
- while (is.available() > 0 )
- os.write(is.read());
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
-
- }
-
- public void process() {
- int size = env.getSpecifiedTypeDeclarations().size();
-
- try {
- round++;
- switch (size) {
- case 0:
- if (round == 0) {
- drain(new FileInputStream("./tmp/classes/Round1Class.class"),
- env.getFiler().createClassFile("Round1Class"));
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
-
- case 1:
- if (round == 1) {
- drain(new FileInputStream("./tmp/classes/AhOneClass.class"),
- env.getFiler().createClassFile("AhOneClass"));
-
- drain(new FileInputStream("./tmp/classes/AndAhTwoClass.class"),
- env.getFiler().createClassFile("AndAhTwoClass"));
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
- case 2:
- if (round != 2) {
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- }
- break;
- }
-
- } catch (java.io.IOException ioe) {
- throw new RuntimeException();
- }
-
- }
-
- }
-}
--- a/langtools/test/tools/apt/Compile/ClassDeclApf2.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import java.io.*;
-
-import static java.util.Collections.*;
-
-/*
- * This class is used to test the the interaction of -XclassesAsDecls
- * with command line options handling.
- */
-public class ClassDeclApf2 implements AnnotationProcessorFactory {
- static int round = -1;
-
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new ClassDeclAp(env);
- }
-
- private static class ClassDeclAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- ClassDeclAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- // Simple inefficient drain
- void drain(InputStream is, OutputStream os) {
- try {
- while (is.available() > 0 )
- os.write(is.read());
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
- }
-
- public void process() {
- int size = env.getSpecifiedTypeDeclarations().size();
- Filer f = env.getFiler();
-
- try {
- round++;
- switch (size) {
- case 3:
- if (round == 0) {
- drain(new FileInputStream("./tmp/classes/Round1Class.class"),
- f.createClassFile("Round1Class"));
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
-
- case 1:
- if (round == 1) {
- f.createSourceFile("AhOne").println("public class AhOne {}");
- System.out.println("Before writing AndAhTwoClass");
- drain(new FileInputStream("./tmp/classes/AndAhTwoClass.class"),
- f.createClassFile("AndAhTwoClass"));
- System.out.println("After writing AndAhTwoClass");
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
-
- case 2:
- if (round != 2) {
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- }
- break;
- default:
- throw new RuntimeException("Unexpected number of declarations:" + size +
- "\n Specified:" + env.getSpecifiedTypeDeclarations() +
- "\n Included:" + env.getTypeDeclarations() );
- }
-
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
- }
- }
-}
--- a/langtools/test/tools/apt/Compile/Dummy1.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-@Round1 class Dummy1{}
--- a/langtools/test/tools/apt/Compile/ErrorAPF.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Construct a processor that does nothing but report an error.
- */
-public class ErrorAPF implements AnnotationProcessorFactory {
- static class ErrorAP implements AnnotationProcessor {
- AnnotationProcessorEnvironment env;
- ErrorAP(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- Messager messager = env.getMessager();
- messager.printError("It's a mad, mad, mad, mad world");
- messager.printError("Something wicked this way comes");
-
- for(TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations())
- messager.printError(typeDecl.getPosition(), "Boring class name");
- }
- }
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new ErrorAP(env);
- }
-}
--- a/langtools/test/tools/apt/Compile/HelloAnnotation.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-/* /nodynamiccopyright/ */
-import java.lang.annotation.*;
-@Target(ElementType.ANNOTATION_TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@HelloAnnotation
-@interface HelloAnnotation {
- Target value() default @Target(ElementType.METHOD);
-}
--- a/langtools/test/tools/apt/Compile/HelloWorld.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-/* /nodynamiccopyright/ */
-public class HelloWorld {
- public static void main(String argv[]) {
- System.out.println("Hello World.");
- }
-}
--- a/langtools/test/tools/apt/Compile/Round1Apf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import java.io.File;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Factory to help test updated discovery policy.
- */
-public class Round1Apf implements AnnotationProcessorFactory {
- // Process @Round1
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("Round1"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- private static int round = 0;
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new Round1Ap(env, atds.size() == 0);
- }
-
- private static class Round1Ap implements AnnotationProcessor, RoundCompleteListener {
- private final AnnotationProcessorEnvironment env;
- private final boolean empty;
-
- Round1Ap(AnnotationProcessorEnvironment env, boolean empty) {
- this.env = env;
- this.empty = empty;
- }
-
- public void process() {
- Round1Apf.round++;
- try {
- if (!empty) {
- Filer f = env.getFiler();
- f.createSourceFile("Dummy2").println("@Round2 class Dummy2{}");
- f.createTextFile(Filer.Location.SOURCE_TREE,
- "",
- new File("foo.txt"),
- null).println("xxyzzy");
- f.createClassFile("Vacant");
- f.createBinaryFile(Filer.Location.CLASS_TREE,
- "",
- new File("onezero"));
- }
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
-
- System.out.println("Round1Apf: " + round);
- env.addListener(this);
- }
-
- public void roundComplete(RoundCompleteEvent event) {
- RoundState rs = event.getRoundState();
-
- if (event.getSource() != this.env)
- throw new RuntimeException("Wrong source!");
-
- Filer f = env.getFiler();
- try {
- f.createSourceFile("AfterTheBell").println("@Round2 class AfterTheBell{}");
- throw new RuntimeException("Inappropriate source file creation.");
- } catch (java.io.IOException ioe) {}
-
-
- System.out.printf("\t[final round: %b, error raised: %b, "+
- "source files created: %b, class files created: %b]%n",
- rs.finalRound(),
- rs.errorRaised(),
- rs.sourceFilesCreated(),
- rs.classFilesCreated());
-
- System.out.println("Round1Apf: " + round + " complete");
- }
- }
-}
--- a/langtools/test/tools/apt/Compile/Round2Apf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import java.io.IOException;
-import java.io.File;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Factory to help test updated discovery policy.
- */
-public class Round2Apf implements AnnotationProcessorFactory {
- // Process @Round2
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("Round2"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- private static int round = 0;
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new Round2Ap(env, atds.size() == 0);
- }
-
- private static class Round2Ap implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- private final boolean empty;
-
- Round2Ap(AnnotationProcessorEnvironment env, boolean empty) {
- this.env = env;
- this.empty = empty;
- }
-
- public void process() {
- Round2Apf.round++;
- Filer f = env.getFiler();
- try {
- f.createSourceFile("Dummy2").println("@Round2 class Dummy2{}");
- throw new RuntimeException("Duplicate file creation allowed");
- } catch (IOException io) {}
-
- try {
- f.createTextFile(Filer.Location.SOURCE_TREE,
- "",
- new File("foo.txt"),
- null).println("xxyzzy");
- throw new RuntimeException("Duplicate file creation allowed");
- } catch (IOException io) {}
-
- try {
- f.createClassFile("Vacant");
- throw new RuntimeException("Duplicate file creation allowed");
- } catch (IOException io) {}
-
- try {
- f.createBinaryFile(Filer.Location.CLASS_TREE,
- "",
- new File("onezero"));
- throw new RuntimeException("Duplicate file creation allowed");
- } catch (IOException io) {}
-
-
-
- try {
- if (!empty) {
- // Create corresponding files of opposite kind to
- // the files created by Round1Apf; these should
- // only generate warnings
- f.createClassFile("Dummy2");
- f.createSourceFile("Vacant").println("class Vacant{}");
-
- f.createSourceFile("Dummy3").println("@Round3 class Dummy3{}");
-
- // This should generated a warning too
- f.createClassFile("Dummy3");
- }
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
-
- System.out.println("Round2Apf: " + round);
- }
- }
-}
--- a/langtools/test/tools/apt/Compile/Round3Apf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Factory to help test updated discovery policy.
- */
-public class Round3Apf implements AnnotationProcessorFactory {
- // Process @Round3
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("Round3"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- private static int round = 0;
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new Round3Ap(env, atds.size() == 0);
- }
-
- private static class Round3Ap implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- private final boolean empty;
-
- Round3Ap(AnnotationProcessorEnvironment env, boolean empty) {
- this.env = env;
- this.empty = empty;
- }
-
- public void process() {
- Round3Apf.round++;
- try {
- if (!empty)
- env.getFiler().createSourceFile("Dummy4").println("@Round4 class Dummy4{}");
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
-
- System.out.println("Round3Apf: " + round);
- }
- }
-}
--- a/langtools/test/tools/apt/Compile/Round4Apf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Factory to help test updated discovery policy.
- */
-public class Round4Apf implements AnnotationProcessorFactory {
- // Process @Round4
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("Round4"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- private static int round = 0;
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new Round4Ap(env, atds.size() == 0);
- }
-
- private static class Round4Ap implements AnnotationProcessor, RoundCompleteListener {
- private final AnnotationProcessorEnvironment env;
- private final boolean empty;
-
- Round4Ap(AnnotationProcessorEnvironment env, boolean empty) {
- this.env = env;
- this.empty = empty;
- }
-
- public void process() {
- Round4Apf.round++;
- try {
- if (!empty)
- env.getFiler().createSourceFile("Dummy5").println("@Round5 class Dummy5{}");
- } catch (java.io.IOException ioe) {
- throw new RuntimeException(ioe);
- }
-
- System.out.println("Round4Apf: " + round);
- env.addListener(this);
- }
-
- public void roundComplete(RoundCompleteEvent event) {
- RoundState rs = event.getRoundState();
-
- System.out.println("\t" + rs.toString());
-
- System.out.println("Round4Apf: " + round + " complete");
-
- if (rs.finalRound()) {
- System.out.println("Valediction");
- }
- }
- }
-}
--- a/langtools/test/tools/apt/Compile/Rounds.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-@interface Round1{}
-
-@interface Round2{}
-
-@interface Round3{}
-
-@interface Round4{}
-
-@interface Round5{}
--- a/langtools/test/tools/apt/Compile/StaticApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-
-/*
- * This class is used to test the ability to store static state across
- * apt rounds.
- */
-public class StaticApf implements AnnotationProcessorFactory {
- static int round = -1;
-
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new StaticAp(env);
- }
-
- private static class StaticAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- StaticAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- int size = env.getSpecifiedTypeDeclarations().size();
-
- try {
- round++;
- switch (size) {
- case 0:
- if (round == 0) {
- env.getFiler().createSourceFile("Round1").print("class Round1 {}");
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
-
- case 1:
- if (round == 1) {
- env.getFiler().createSourceFile("AhOne").print("class AhOne {}");
- env.getFiler().createSourceFile("AndAhTwo").print("class AndAhTwo {}");
- env.getFiler().createClassFile("Foo");
- } else
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- break;
- case 2:
- if (round != 2) {
- throw new RuntimeException("Got " + size + " decl's in round " + round);
- }
- break;
- }
-
- } catch (java.io.IOException ioe) {
- throw new RuntimeException();
- }
-
- }
-
- }
-}
--- a/langtools/test/tools/apt/Compile/WarnAPF.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Map;
-import java.util.Arrays;
-
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Construct a processor that does nothing but report a warning.
- */
-public class WarnAPF implements AnnotationProcessorFactory {
- static class WarnAP implements AnnotationProcessor {
- AnnotationProcessorEnvironment env;
- WarnAP(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- Messager messager = env.getMessager();
- messager.printWarning("Beware the ides of March!");
-
- for(TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations()) {
- messager.printNotice(typeDecl.getPosition(), "You are about to be warned");
- messager.printWarning(typeDecl.getPosition(), "Strange class name");
-
- for(AnnotationMirror annotMirror : typeDecl.getAnnotationMirrors()) {
- messager.printNotice("MIRROR " + annotMirror.getPosition().toString());
-
- Map<AnnotationTypeElementDeclaration,AnnotationValue> map =
- annotMirror.getElementValues();
- if (map.keySet().size() > 0)
- for(AnnotationTypeElementDeclaration key : map.keySet() ) {
- AnnotationValue annotValue = map.get(key);
- Object o = annotValue.getValue();
- // asserting getPosition is non-null
- messager.printNotice("VALUE " + annotValue.getPosition().toString());
- }
- else {
- Collection<AnnotationTypeElementDeclaration> ateds =
- annotMirror.getAnnotationType().getDeclaration().getMethods();
- for(AnnotationTypeElementDeclaration ated : ateds ) {
- AnnotationValue annotValue = ated.getDefaultValue();
- Object o = annotValue.getValue();
- messager.printNotice("VALUE " + "HelloAnnotation.java:5");
- }
- }
- }
- }
- }
- }
-
- static final Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = unmodifiableCollection(Arrays.asList(types));
- }
- public Collection<String> supportedAnnotationTypes() {return supportedTypes;}
-
- static final Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = unmodifiableCollection(Arrays.asList(options));
- }
- public Collection<String> supportedOptions() {return supportedOptions;}
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new WarnAP(env);
- }
-}
--- a/langtools/test/tools/apt/Compile/WrappedStaticApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/*
- * Pass an instantiated StaticApf object to the
- * com.sun.tools.apt.Main.process entry point.
- */
-public class WrappedStaticApf {
- public static void main(String argv[]) {
- AnnotationProcessorFactory factory = new StaticApf();
- System.exit(com.sun.tools.apt.Main.process(factory, argv));
- }
-}
--- a/langtools/test/tools/apt/Compile/compile.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,533 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 5033855 4990902 5023880 5043516 5048534 5048535 5041279 5048539 5067261 5068145 5023881 4996963 5095716 6191667 6433634
-# @run shell ../verifyVariables.sh
-# @build ErrorAPF
-# @build WarnAPF
-# @build StaticApf
-# @build ClassDeclApf
-# @build ClassDeclApf2
-# @build Rounds
-# @build Round1Apf Round2Apf Round3Apf Round4Apf
-# @build WrappedStaticApf
-# @run shell compile.sh
-# @summary Test simple usages of apt, including delegating to javac
-# @author Joseph D. Darcy
-
-# If the file *does* exist, exit with an error
-TestNoFile() {
- if [ -f ${1} ]; then
- printf "%s\n" "File ${1} found."
- exit 1
- fi
-}
-
-# If the file does not exist, exit with an error
-TestFile() {
- if [ ! -f ${1} ]; then
- printf "%s\n" "File ${1} not found."
- exit 1
- fi
-}
-
-
-OS=`uname -s`;
-case "${OS}" in
- Windows* )
- SEP=";"
- ;;
-
- CYGWIN* )
- DIFFOPTS="--strip-trailing-cr"
- SEP=";"
- ;;
-
- * )
- SEP=":"
- ;;
-esac
-
-
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -XDsuppress-tool-api-removal-message "
-JAVA="${TESTJAVA}/bin/java ${TESTVMOPTS} "
-JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} "
-
-unset CLASSPATH
-
-
-# ---------------------------------------------------------------
-echo "Verify that source 1.6 is not supported
-rm -f HelloWorld.class
-
-printf "%s\n" "-source 1.6" > options0
-printf "%s\n" "${TESTSRC}/HelloWorld.java" >> options0
-${APT} @options0
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- echo "FAILED: accepted source 1.6"
- exit 1
- ;;
-esac
-
-TestNoFile "HelloWorld.class"
-
-# ---------------------------------------------------------------
-
-echo "Verify that target 1.6 is not supported
-rm -f HelloWorld.class
-
-printf "%s\n" "-target 1.6" > options00
-printf "%s\n" "${TESTSRC}/HelloWorld.java" >> options00
-${APT} @options00
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- echo "FAILED: accepted target 1.6"
- exit 1
- ;;
-esac
-
-TestNoFile "HelloWorld.class"
-
-# ---------------------------------------------------------------
-
-echo "Testing javac pass-through with -A in options file"
-rm -f HelloWorld.class
-
-printf "%s\n" "-A" > options1
-printf "%s\n" "-d ." >> options1
-printf "%s\n" "${TESTSRC}/HelloWorld.java" >> options1
-${APT} @options1
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: javac with -A in options file did not compile"
- exit 1
-esac
-TestFile "HelloWorld.class"
-
-
-# ---------------------------------------------------------------
-
-echo "Verifying reporting an error will prevent compilation"
-rm -f HelloWorld.class
-if [ ! -f HelloWorld.java ]; then
- cp ${TESTSRC}/HelloWorld.java .
-fi
-
-
-printf "%s\n" "-factory ErrorAPF" > options2
-printf "%s\n" "-d ." >> options2
-printf "%s\n" "-cp ${TESTCLASSES}" >> options2
-printf "%s\n" "HelloWorld.java" >> options2
-${APT} @options2 2> output
-
-TestNoFile "HelloWorld.class"
-
-diff ${DIFFOPTS} output ${TESTSRC}/golden.txt
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: did not record expected error messages"
- exit 1
-esac
-
-
-
-# ---------------------------------------------------------------
-
-echo "Verifying reporting a warning *won't* prevent compilation"
-
-rm -f HelloAnnotation.class
-if [ ! -f HelloAnnotation.java ]; then
- cp ${TESTSRC}/HelloAnnotation.java .
-fi
-
-
-printf "%s\n" "-factory WarnAPF" > options3
-printf "%s\n" "-d ." >> options3
-printf "%s\n" "-cp ${TESTCLASSES}" >> options3
-printf "%s\n" "HelloAnnotation.java" >> options3
-${APT} @options3 2> output
-
-diff ${DIFFOPTS} output ${TESTSRC}/goldenWarn.txt
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: did not record expected warning messages"
- exit 1
-esac
-
-TestFile "HelloAnnotation.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying static state is available across apt rounds; -factory, -cp"
-
-mkdir -p ./src
-mkdir -p ./class
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-printf "%s\n" "-factory StaticApf" > options4
-printf "%s\n" "-s ./src" >> options4
-printf "%s\n" "-d ./class" >> options4
-printf "%s\n" "-cp ${TESTCLASSES}" >> options4
-# printf "%s\n" "-XPrintAptRounds" >> options4
-${APT} @options4
-
-TestFile "./class/AndAhTwo.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying static state is available across apt rounds; -factory, -factorypath"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-printf "%s\n" "-factory StaticApf" > options5
-printf "%s\n" "-s ./src" >> options5
-printf "%s\n" "-d ./class" >> options5
-printf "%s\n" "-factorypath ${TESTCLASSES}" >> options5
-# printf "%s\n" "-XPrintAptRounds" >> options5
-${APT} @options5
-
-TestFile "./class/AndAhTwo.class"
-
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-# Create jar file for StaticApf
-JAR="${TESTJAVA}/bin/jar "
-mkdir -p META-INF/services
-cp ${TESTSRC}/servicesStaticApf META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTCLASSES}/StaticApf*.class .
-${JAR} cf0 staticApf.jar StaticApf*.class META-INF
-
-# ---------------------------------------------------------------
-
-echo "Verifying static state is available across apt rounds; -cp"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-printf "%s\n" "-cp staticApf.jar" > options6
-printf "%s\n" "-s ./src" >> options6
-printf "%s\n" "-d ./class" >> options6
-printf "%s\n" "-XPrintAptRounds" >> options6
-${APT} @options6
-
-TestFile "./class/AndAhTwo.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying static state is available across apt rounds; -factorypath"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-printf "%s\n" "-factorypath staticApf.jar" > options7
-printf "%s\n" "-s ./src" >> options7
-printf "%s\n" "-d ./class" >> options7
-printf "%s\n" "-XPrintAptRounds" >> options7
-${APT} @options7
-
-TestFile "./class/AndAhTwo.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying -XclassesAsDecls handles class files properly"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-mkdir -p ./tmp/classes
-
-${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AhOneClass.java ${TESTSRC}/src/AndAhTwoClass.java
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: javac failed to succesfully compile."
- exit 1
-esac
-
-printf "%s\n" "-factorypath ${TESTCLASSES}" > options7a
-printf "%s\n" "-factory ClassDeclApf" >> options7a
-printf "%s\n" "-s ./src" >> options7a
-printf "%s\n" "-d ./class" >> options7a
-printf "%s\n" "-XPrintAptRounds" >> options7a
-printf "%s\n" "-XclassesAsDecls" >> options7a
-${APT} @options7a
-
-TestFile "./class/AndAhTwoClass.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying -XclassesAsDecls works with command-line arguments"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-rm -Rf ./tmp/classes
-
-mkdir -p ./tmp/classes
-
-${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: javac failed to succesfully compile."
- exit 1
-esac
-
-printf "%s\n" "-factorypath ${TESTCLASSES}" > options7b
-printf "%s\n" "-factory ClassDeclApf2" >> options7b
-printf "%s\n" "-XPrintAptRounds" >> options7b
-printf "%s\n" "-XclassesAsDecls" >> options7b
-printf "%s\n" "-cp ${TESTCLASSES}" >> options7b
-printf "%s\n" "ErrorAPF" >> options7b
-printf "%s\n" "WarnAPF" >> options7b
-printf "%s\n" "-s ./src" >> options7b
-printf "%s\n" "-d ./class" >> options7b
-printf "%s\n" "ClassDeclApf" >> options7b
-${APT} @options7b
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: apt exited with an error code."
- exit 1
-esac
-
-TestFile "./class/AndAhTwoClass.class"
-TestFile "./class/AhOne.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying -XclassesAsDecls works with all source files"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-rm -Rf ./tmp/classes
-
-mkdir -p ./tmp/classes
-
-${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: javac failed to succesfully compile."
- exit 1
-esac
-
-printf "%s\n" "-factorypath ${TESTCLASSES}" > options7c
-printf "%s\n" "-factory ClassDeclApf2" >> options7c
-printf "%s\n" "-s ./src" >> options7c
-printf "%s\n" "-d ./class" >> options7c
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options7c
-printf "%s\n" "${TESTSRC}/HelloAnnotation.java" >> options7c
-printf "%s\n" "${TESTSRC}/HelloWorld.java" >> options7c
-printf "%s\n" "${TESTSRC}/Dummy1.java" >> options7c
-printf "%s\n" "-XPrintAptRounds" >> options7c
-printf "%s\n" "-XclassesAsDecls" >> options7c
-printf "%s\n" "-cp ${TESTCLASSES}" >> options7c
-${APT} @options7c
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: apt exited with an error code."
- exit 1
-esac
-
-TestFile "./class/AndAhTwoClass.class"
-TestFile "./class/AhOne.class"
-TestFile "./class/HelloWorld.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying -XclassesAsDecls works with mixed class and source files"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-rm -Rf ./tmp/classes
-
-mkdir -p ./tmp/classes
-
-${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: javac failed to succesfully compile."
- exit 1
-esac
-
-printf "%s\n" "-factorypath ${TESTCLASSES}" > options7d
-printf "%s\n" "-factory ClassDeclApf2" >> options7d
-printf "%s\n" "-s ./src" >> options7d
-printf "%s\n" "-XclassesAsDecls" >> options7d
-printf "%s\n" "ClassDeclApf" >> options7d
-printf "%s\n" "-d ./class" >> options7d
-printf "%s\n" "ErrorAPF" >> options7d
-printf "%s\n" "-XPrintAptRounds" >> options7d
-printf "%s\n" "${TESTSRC}/HelloWorld.java" >> options7d
-printf "%s\n" "-cp ${TESTCLASSES}" >> options7d
-${APT} @options7d
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: apt exited with an error code."
- exit 1
-esac
-
-TestFile "./class/AndAhTwoClass.class"
-TestFile "./class/AhOne.class"
-TestFile "./class/HelloWorld.class"
-
-# ---------------------------------------------------------------
-
-echo "Testing productive factories are called on subsequent rounds"
-
-rm -Rf ./src/*
-rm -Rf ./class/*
-
-rm -Rf META-INF/services/*
-cp ${TESTSRC}/servicesRound1 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTCLASSES}/Round1Apf*.class .
-${JAR} cf0 round1Apf.jar Round1Apf*.class META-INF
-
-rm -Rf META-INF/services/*
-cp ${TESTSRC}/servicesRound2 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTCLASSES}/Round2Apf*.class .
-${JAR} cf0 round2Apf.jar Round2Apf*.class META-INF
-
-rm -Rf META-INF/services/*
-cp ${TESTSRC}/servicesRound3 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTCLASSES}/Round3Apf*.class .
-${JAR} cf0 round3Apf.jar Round3Apf*.class META-INF
-
-rm -Rf META-INF/services/*
-cp ${TESTSRC}/servicesRound4 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTCLASSES}/Round4Apf*.class .
-${JAR} cf0 round4Apf.jar Round4Apf*.class META-INF
-
-cp ${TESTCLASSES}/Round?.class .
-${JAR} cf0 rounds.jar Round?.class
-
-# cleanup file to prevent accidental discovery in current directory
-rm -Rf META-INF/services/*
-
-printf "%s\n" "-factorypath round1Apf.jar${SEP}round2Apf.jar${SEP}round3Apf.jar${SEP}round4Apf.jar" > options8
-printf "%s\n" "-classpath rounds.jar" >> options8
-printf "%s\n" "-s ./src" >> options8
-printf "%s\n" "-d ./class" >> options8
-#printf "%s\n" "-XPrintFactoryInfo" >> options8
-#printf "%s\n" "-XPrintAptRounds" >> options8
-printf "%s\n" "${TESTSRC}/Dummy1.java" >> options8
-${APT} @options8 > multiRoundOutput 2> multiRoundError
-
-diff ${DIFFOPTS} multiRoundOutput ${TESTSRC}/goldenFactory.txt
-
-RESULT=$?
-case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "FAILED: unexpected factory state"
- exit 1
-esac
-
-TestFile "./class/Dummy5.class"
-
-# ---------------------------------------------------------------
-
-echo "Verifying static state with programmatic apt entry; no factory options"
-rm -Rf ./src/*
-rm -Rf ./class/*
-${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -s ./src -d ./class -XPrintAptRounds
-TestFile "./class/AndAhTwo.class"
-
-echo "Verifying static state with programmatic apt entry; -factory"
-rm -Rf ./src/*
-rm -Rf ./class/*
-${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factory ErrorAPF -s ./src -d ./class -XPrintAptRounds
-TestFile "./class/AndAhTwo.class"
-
-echo "Verifying static state with programmatic apt entry; -factorypath"
-rm -Rf ./src/*
-rm -Rf ./class/*
-${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factorypath round1Apf.jar -s ./src -d ./class -XPrintAptRounds
-TestFile "./class/AndAhTwo.class"
-
-echo "Verifying static state with programmatic apt entry; -factory and -factorypath"
-rm -Rf ./src/*
-rm -Rf ./class/*
-${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factorypath round1Apf.jar -factory Round1Apf -s ./src -d ./class -XPrintAptRounds
-TestFile "./class/AndAhTwo.class"
-
-exit 0
--- a/langtools/test/tools/apt/Compile/golden.txt Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-error: It's a mad, mad, mad, mad world
-error: Something wicked this way comes
-HelloWorld.java:2: error: Boring class name
-public class HelloWorld {
- ^
-3 errors
--- a/langtools/test/tools/apt/Compile/goldenFactory.txt Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-Round1Apf: 1
- [final round: false, error raised: false, source files created: true, class files created: true]
-Round1Apf: 1 complete
-Round1Apf: 2
-Round2Apf: 1
- [final round: false, error raised: false, source files created: true, class files created: true]
-Round1Apf: 2 complete
-Round1Apf: 3
-Round2Apf: 2
-Round3Apf: 1
- [final round: false, error raised: false, source files created: true, class files created: false]
-Round1Apf: 3 complete
-Round1Apf: 4
-Round2Apf: 3
-Round3Apf: 2
-Round4Apf: 1
- [final round: false, error raised: false, source files created: true, class files created: false]
-Round1Apf: 4 complete
- [final round: false, error raised: false, source files created: true, class files created: false]
-Round4Apf: 1 complete
-Round1Apf: 5
-Round2Apf: 4
-Round3Apf: 3
-Round4Apf: 2
- [final round: true, error raised: false, source files created: false, class files created: false]
-Round1Apf: 5 complete
- [final round: true, error raised: false, source files created: false, class files created: false]
-Round4Apf: 2 complete
-Valediction
--- a/langtools/test/tools/apt/Compile/goldenWarn.txt Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-warning: Beware the ides of March!
-HelloAnnotation.java:6: Note: You are about to be warned
-@interface HelloAnnotation {
- ^
-HelloAnnotation.java:6: warning: Strange class name
-@interface HelloAnnotation {
- ^
-Note: MIRROR HelloAnnotation.java:6
-Note: VALUE HelloAnnotation.java:6
-Note: MIRROR HelloAnnotation.java:6
-Note: VALUE HelloAnnotation.java:6
-Note: MIRROR HelloAnnotation.java:6
-Note: VALUE HelloAnnotation.java:5
-2 warnings
--- a/langtools/test/tools/apt/Compile/servicesRound1 Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Round1Apf
--- a/langtools/test/tools/apt/Compile/servicesRound2 Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Round2Apf
--- a/langtools/test/tools/apt/Compile/servicesRound3 Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Round3Apf
--- a/langtools/test/tools/apt/Compile/servicesRound4 Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Round4Apf
--- a/langtools/test/tools/apt/Compile/servicesStaticApf Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-StaticApf
--- a/langtools/test/tools/apt/Compile/src/AhOneClass.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public class AhOneClass {}
--- a/langtools/test/tools/apt/Compile/src/AndAhTwoClass.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public class AndAhTwoClass {}
--- a/langtools/test/tools/apt/Compile/src/Round1Class.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public class Round1Class {}
--- a/langtools/test/tools/apt/Discovery/Dee.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-import java.util.Collections;
-
-public class Dee implements AnnotationProcessorFactory {
- static class DeeProc implements AnnotationProcessor {
- DeeProc(AnnotationProcessorEnvironment ape) {}
-
- public void process() {
- return;
- }
- }
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"dum"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new DeeProc(env);
- }
-}
--- a/langtools/test/tools/apt/Discovery/Dum.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-import java.util.Collections;
-
-public class Dum implements AnnotationProcessorFactory {
- static class DumProc implements AnnotationProcessor {
- DumProc(AnnotationProcessorEnvironment ape) {}
-
- public void process() {
- return;
- }
- }
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"dee"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new DumProc(env);
- }
-}
--- a/langtools/test/tools/apt/Discovery/Empty.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public class Empty {
-}
--- a/langtools/test/tools/apt/Discovery/PhantomTouch.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-import java.util.Collections;
-import java.io.*;
-
-public class PhantomTouch implements AnnotationProcessorFactory {
- static class PhantomTouchProc implements AnnotationProcessor {
- AnnotationProcessorEnvironment ape;
- PhantomTouchProc(AnnotationProcessorEnvironment ape) {
- this.ape = ape;
- }
-
- public void process() {
- // Only run the processor on the initial apt invocation
- if (ape.getSpecifiedTypeDeclarations().size() == 0) {
- boolean result;
- try {
- // Create temporary file
- java.io.File f = new java.io.File("touched");
- result = f.createNewFile();
-
- if (result) {
- // Create new source file
- PrintWriter pw = ape.getFiler().createSourceFile("HelloWorld");
- pw.println("public class HelloWorld {");
- pw.println(" // Phantom hello world");
- pw.println(" public static void main(String argv[]) {");
- pw.println(" System.out.println(\"Hello World\");");
- pw.println(" }");
- pw.println("}");
- } else
- throw new RuntimeException("touched file already exists!");
- } catch (java.io.IOException e) {
- result = false;
- }
- }
- }
- }
-
- static final Collection<String> supportedOptions;
- static final Collection<String> supportedTypes;
-
- static {
- String options[] = {""};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
-
- String types[] = {"*"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- public Collection<String> supportedAnnotationTypes() {return supportedTypes;}
- public Collection<String> supportedOptions() {return supportedOptions;}
-
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new PhantomTouchProc(env);
- }
-}
--- a/langtools/test/tools/apt/Discovery/PhantomUpdate.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * JSR 269 annotation processor to test combined apt + JSR 269
- * annotation processor file generation and option passing.
- */
-
-import javax.annotation.processing.*;
-import static javax.lang.model.SourceVersion.*;
-import javax.lang.model.element.*;
-import javax.lang.model.type.*;
-import javax.lang.model.util.*;
-import java.util.*;
-import java.io.*;
-
-@SupportedAnnotationTypes("*") // Process all annotations
-@SupportedSourceVersion(RELEASE_6)
-public class PhantomUpdate extends AbstractProcessor {
- boolean firstRound = true;
-
- public boolean process(Set<? extends TypeElement> annotations,
- RoundEnvironment roundEnv) {
- if (firstRound) {
- verifyOptions();
- printGoodbyeWorld();
- firstRound = false;
- }
- return true; // Claim all annotations
- }
-
- /*
- * Expected options are "foo" and "bar=baz".
- */
- private void verifyOptions() {
- Map<String, String> actualOptions = processingEnv.getOptions();
- Map<String, String> expectedOptions = new LinkedHashMap<String, String>();
- expectedOptions.put("foo", null);
- expectedOptions.put("bar", "baz");
-
- if (!actualOptions.equals(expectedOptions) ) {
- System.err.println("Expected options " + expectedOptions +
- "\n but got " + actualOptions);
- throw new RuntimeException("Options mismatch");
- }
- }
-
- private void printGoodbyeWorld() {
- try {
- // Create new source file
- PrintWriter pw = new PrintWriter(processingEnv.getFiler().createSourceFile("GoodbyeWorld").openWriter());
- pw.println("public class GoodbyeWorld {");
- pw.println(" // PhantomUpdate Goodbye world");
- pw.println(" public static void main(String argv[]) {");
- pw.println(" System.out.println(\"Goodbye World\");");
- pw.println(" }");
- pw.println("}");
- pw.close();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-}
--- a/langtools/test/tools/apt/Discovery/Touch.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-import java.util.Collections;
-import java.io.*;
-
-public class Touch implements AnnotationProcessorFactory {
- static class TouchProc implements AnnotationProcessor {
- AnnotationProcessorEnvironment ape;
- TouchProc(AnnotationProcessorEnvironment ape) {
- this.ape = ape;
- }
-
- public void process() {
- boolean result;
- // Only run the processor on the initial apt invocation
- Collection<TypeDeclaration> tdecls = ape.getSpecifiedTypeDeclarations();
-
- if (tdecls.size() == 1) {
- for(TypeDeclaration decl: tdecls) {
- if (! decl.getSimpleName().equals("Touch") )
- return;
- }
-
- try {
- // Create temporary file
- java.io.File f = new java.io.File("touched");
- result = f.createNewFile();
-
-
- Filer filer = ape.getFiler();
-
- // Create new source file
- PrintWriter pw = filer.createSourceFile("HelloWorld");
- pw.println("public class HelloWorld {");
- pw.println(" public static void main(String argv[]) {");
- pw.println(" System.out.println(\"Hello World\");");
- pw.println(" }");
- pw.println("}");
-
- // Create new class file and copy Empty.class
- OutputStream os = filer.createClassFile("Empty");
- FileInputStream fis = new FileInputStream("Empty.clazz");
- int datum;
- while((datum = fis.read()) != -1)
- os.write(datum);
-
- } catch (java.io.IOException e) {
- result = false;
- }
- if (!result)
- throw new RuntimeException("touched file already exists or other error");
- }
-
- }
-
- }
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new TouchProc(env);
- }
-}
--- a/langtools/test/tools/apt/Discovery/discovery.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,410 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4984412 4985113 4908512 4990905 4998007 4998218 5002340 5023882 6370261 6363481
-# @run shell ../verifyVariables.sh
-# @compile PhantomUpdate.java
-# @run shell discovery.sh
-# @summary Test consistency of annotation discovery
-# @author Joseph D. Darcy
-
-
-# If the file does not exist, exit with an error
-TestFile() {
- if [ ! -f ${1} ]; then
- printf "%s\n" "File ${1} not found."
- exit 1
- fi
-}
-
-OS=`uname -s`;
-case "${OS}" in
- Windows* | CYGWIN* )
- SEP=";"
- ;;
-
- * )
- SEP=":"
- ;;
-esac
-
-TOOLSJAR=${TESTJAVA}/lib/tools.jar
-
-OLDCP=${CLASSPATH}
-
-JARCP=tweedle.jar${SEP}touch.jar${SEP}${TOOLSJAR}
-SOURCEP=${TESTSRC}
-FULLCP=${JARCP}${SEP}${SOURCEP}
-BADCP=tweedle.jar${SEP}badTouch.jar${SEP}${TOOLSJAR}
-
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} "
-
-
-# Construct path to apt executable, no compilation
-APTNC="${APT} -nocompile "
-
-
-printf "%s\n" "APT = ${APT}"
-
-# Construct path to javac executable
-JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TOOLSJAR} -d . "
-JAR="${TESTJAVA}/bin/jar "
-
-$JAVAC ${TESTSRC}/Dee.java ${TESTSRC}/Dum.java ${TESTSRC}/Touch.java ${TESTSRC}/PhantomTouch.java ${TESTSRC}/Empty.java
-RESULT=$?
-
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Compilation failed."
- exit 1
-esac
-
-mv Empty.class Empty.clazz
-
-echo "Making services directory and copying services information."
-mkdir -p META-INF/services
-mkdir -p phantom
-
-rm -f touch.jar
-rm -f badTouch.jar
-
-cp ${TESTSRC}/servicesTweedle META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 tweedle.jar Dee*.class Dum*.class META-INF
-
-rm -f META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTSRC}/servicesTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 touch.jar Touch*.class META-INF
-
-rm -f META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTSRC}/servicesPhantomTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 phantom/phantom.jar PhantomTouch*.class META-INF
-
-# cleanup file to prevent accidental discovery in current directory
-rm -f META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-# Jar files created; verify right output file is touched
-
-#---------------------------------------------------------
-
-# Test different combinations of classpath, sourcepath, and
-# destination directories
-
-
-#
-# Classpath on commandline; no output directories
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-classpath ${JARCP}" > options1
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options1
-printf "%s\n" "${TESTSRC}/Touch.java" >> options1
-
-${APTNC} @options1
-
-echo "Testing case 1"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# Class path set through environment variable
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-CLASSPATH=${JARCP}
-export CLASSPATH
-printf "%s\n" "-sourcepath ${SOURCEP}" > options2
-printf "%s\n" "${TESTSRC}/Touch.java" >> options2
-
-${APTNC} @options2
-
-echo "Testing case 2"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# No explicit source path
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-CLASSPATH=${FULLCP}
-export CLASSPATH
-printf "%s\n" "${TESTSRC}/Touch.java" > options3
-
-${APTNC} @options3
-
-echo "Testing case 3"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-
-#
-# Classpath on commandline; class output directory
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -Rf classes/Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-classpath ${JARCP}" > options4
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options4
-printf "%s\n" "-d classes" >> options4
-printf "%s\n" "${TESTSRC}/Touch.java" >> options4
-
-${APTNC} @options4
-
-echo "Testing case 4"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "classes/Empty.class"
-
-#
-# Classpath on commandline; source output directory
-#
-
-rm -f touched
-rm -Rf src
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-classpath ${JARCP}" > options5
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options5
-printf "%s\n" "-s src" >> options5
-printf "%s\n" "${TESTSRC}/Touch.java" >> options5
-
-${APTNC} @options5
-
-echo "Testing case 5"
-TestFile "touched"
-TestFile "src/HelloWorld.java"
-TestFile "Empty.class"
-
-
-#
-# Classpath on commandline; class and source output directory
-#
-
-rm -f touched
-rm -Rf src
-rm -Rf classes
-
-unset CLASSPATH
-printf "%s\n" "-classpath ${JARCP}" > options6
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options6
-printf "%s\n" "-d classes" >> options6
-printf "%s\n" "-s src" >> options6
-printf "%s\n" "${TESTSRC}/Touch.java" >> options6
-
-${APTNC} @options6
-
-echo "Testing case 6"
-TestFile "touched"
-TestFile "src/HelloWorld.java"
-TestFile "classes/Empty.class"
-
-#
-# Classpath appended to bootclasspath; no output directories
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-Xbootclasspath/a:${JARCP}" > options7
-printf "%s\n" "-classpath /dev/null" >> options7
-printf "%s\n" "${TESTSRC}/Touch.java" >> options7
-
-${APTNC} @options7
-
-echo "Testing case 7"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# Classpath in extdirs; no output directories
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-extdirs ." > options8
-printf "%s\n" "-classpath ${TOOLSJAR}" >> options8
-printf "%s\n" "${TESTSRC}/Touch.java" >> options8
-
-${APTNC} @options8
-
-echo "Testing case 8"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# Classpath in extdirs, take 2; no output directories
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-Djava.ext.dirs=." > options9
-printf "%s\n" "-classpath ${TOOLSJAR}" >> options9
-printf "%s\n" "${TESTSRC}/Touch.java" >> options9
-
-${APTNC} @options9
-
-echo "Testing case 9"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# Classpath in -endorseddirs; no output directories
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-printf "%s\n" "-endorseddirs ." > options10
-printf "%s\n" "-classpath ${TOOLSJAR}" >> options10
-printf "%s\n" "${TESTSRC}/Touch.java" >> options10
-
-${APTNC} @options10
-
-echo "Testing case 10"
-TestFile "touched"
-TestFile "HelloWorld.java"
-TestFile "Empty.class"
-
-#
-# Testing apt invocation with no command line options
-#
-
-rm -f touched
-rm -f HelloWorld.java
-rm -f Empty.class
-
-unset CLASSPATH
-CLASSPATH=./phantom/phantom.jar
-export CLASSPATH
-
-${APT}
-
-echo "Testing empty command line"
-TestFile "touched"
-TestFile "HelloWorld.java"
-
-
-#
-# Verify apt and JSR 269 annotation processors can be run from same
-# invocation and both use the output directories
-#
-
-rm -f touched
-rm -f src/HelloWorld.java
-rm -f src/GoodbyeWorld.java
-rm -f classes/HelloWorld.class
-rm -f classes/GoodbyeWorld.class
-
-unset CLASSPATH
-
-
-printf "%s\n" "-classpath ./phantom/phantom.jar" > options11
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options11
-printf "%s\n" "-factory PhantomTouch " >> options11
-printf "%s\n" "-s src" >> options11
-printf "%s\n" "-d classes" >> options11
-printf "%s\n" "-A" >> options11
-printf "%s\n" "-Afoo" >> options11
-printf "%s\n" "-Abar=baz" >> options11
-printf "%s\n" "-processorpath $TESTCLASSES" >> options11
-printf "%s\n" "-processor PhantomUpdate" >> options11
-
-${APT} @options11
-
-echo "Testing combined apt and JSR 269 processing"
-TestFile touched
-TestFile "src/HelloWorld.java"
-TestFile "src/GoodbyeWorld.java"
-TestFile "classes/HelloWorld.class"
-TestFile "classes/GoodbyeWorld.class"
-
-#
-# Verify running with badTouch doesn't exit successfully
-#
-
-rm -f ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-cp ${TESTSRC}/servicesBadTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 badTouch.jar Touch*.class META-INF
-
-
-unset CLASSPATH
-printf "%s\n" "-classpath ${BADCP}" > optionsBad
-printf "%s\n" "-sourcepath ${SOURCEP}" >> optionsBad
-printf "%s\n" "${TESTSRC}/Touch.java" >> optionsBad
-
-${APTNC} @optionsBad 2> /dev/null
-
-RESULT=$?
-
-case "${RESULT}" in
- 0 )
- echo "Improper exit zero with bad services information."
- exit 1
- ;;
-esac
-
-
-exit 0;
--- a/langtools/test/tools/apt/Discovery/servicesBadTouch Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Touche
--- a/langtools/test/tools/apt/Discovery/servicesPhantomTouch Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-PhantomTouch
--- a/langtools/test/tools/apt/Discovery/servicesTouch Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Touch
--- a/langtools/test/tools/apt/Discovery/servicesTweedle Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Dee
-Dum
--- a/langtools/test/tools/apt/Misc/Marked.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-class Marked {
-
- @Marker
- class marked1 {};
-
-
- class Unmarked1 {};
-
- @Marker
- class marked2 {};
-
-
- class Unmarked2 {};
-
- @Marker
- class marked3 {};
-
-
- class Unmarked3 {};
-
- @Marker
- class marked4 {};
-
-
- class Unmarked4 {};
-
-}
--- a/langtools/test/tools/apt/Misc/Marker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public @interface Marker {}
--- a/langtools/test/tools/apt/Misc/Misc.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Arrays;
-import java.util.Collections;
-
-public class Misc implements AnnotationProcessorFactory {
- static class MiscCheck implements AnnotationProcessor {
- AnnotationProcessorEnvironment ape;
- MiscCheck(AnnotationProcessorEnvironment ape) {
- this.ape = ape;
- }
-
- public void process() {
- Collection<Declaration> decls = ape.
- getDeclarationsAnnotatedWith((AnnotationTypeDeclaration)
- ape.getTypeDeclaration("Marker"));
-
- // Should write more robust test that examines the
- // annotation mirrors for the declaration in question.
- for(Declaration decl: decls) {
- if (!decl.getSimpleName().startsWith("marked") )
- throw new RuntimeException();
- }
- }
- }
-
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- Collection<String> supportedOptions =
- Collections.unmodifiableCollection(new HashSet<String>());
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment ape) {
- return new MiscCheck(ape);
- }
-}
--- a/langtools/test/tools/apt/Misc/misc.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 5007250
-# @run shell ../verifyVariables.sh
-# @run shell misc.sh
-# @summary Miscelleneous tests
-# @author Joseph D. Darcy
-
-OS=`uname -s`;
-case "${OS}" in
- Windows* | CYGWIN* )
- SEP=";"
- ;;
-
- * )
- SEP=":"
- ;;
-esac
-
-JARCP=misc.jar
-SOURCEP=${TESTSRC}
-
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -nocompile "
-
-printf "%s\n" "APT = ${APT}"
-
-# Construct path to javac executable
-JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
-JAR="${TESTJAVA}/bin/jar "
-
-${JAVAC} ${TESTSRC}/Misc.java ${TESTSRC}/Marked.java
-RESULT=$?
-
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Compilation failed."
- exit 1
-esac
-
-
-echo "Making services directory and copying services information."
-mkdir -p META-INF/services
-
-cp ${TESTSRC}/servicesMisc META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 misc.jar Misc*.class META-INF
-
-# Jar files created; verify options properly present on both initial
-# and recursive apt runs
-
-#---------------------------------------------------------
-
-unset CLASSPATH
-
-printf "%s\n" "-classpath ${JARCP}" > options
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options
-printf "%s\n" "${TESTSRC}/Marked.java" >> options
-
-${APT} @options
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Problem with result"
- exit 1
- ;;
-esac
-
-exit 0;
--- a/langtools/test/tools/apt/Misc/servicesMisc Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Misc
-
--- a/langtools/test/tools/apt/Options/Marked.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-@Marker
-class Marked {
-}
--- a/langtools/test/tools/apt/Options/Marker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public @interface Marker {}
--- a/langtools/test/tools/apt/Options/OptionChecker.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Map;
-import java.util.Arrays;
-import java.util.Collections;
-
-public class OptionChecker implements AnnotationProcessorFactory {
- static class OptionCheck implements AnnotationProcessor {
- AnnotationProcessorEnvironment ape;
- OptionCheck(AnnotationProcessorEnvironment ape) {
- this.ape = ape;
- }
-
- public void process() {
- Map<String, String> options = ape.getOptions();
- if (options.containsKey("-Afoo") &&
- options.containsKey("-Abar") &&
- options.containsKey("-classpath") ) {
- System.out.println("Expected options found.");
- return; // All is well
- } else {
- System.err.println("Unexpected options values: " + options);
- throw new RuntimeException();
- }
- }
- }
-
- static class HelloWorld implements AnnotationProcessor {
- AnnotationProcessorEnvironment ape;
- HelloWorld(AnnotationProcessorEnvironment ape) {
- this.ape = ape;
- }
-
- public void process() {
- java.io.PrintWriter pw;
- try {
- pw = ape.getFiler().createSourceFile("HelloWorld");
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- pw.println("public class HelloWorld {");
- pw.println(" public static void main (String argv[]) {");
- pw.println(" System.out.println(\"Hello apt world.\");");
- pw.println(" }");
- pw.println("}");
- }
- }
-
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {"-Afoo", "-Abar"};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- /*
- * Return the same processor independent of what annotations are
- * present, if any.
- */
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment ape) {
-
- if (atds.contains(ape.getTypeDeclaration("Marker"))) {
- System.out.println("Returning composite processor.");
- return AnnotationProcessors.getCompositeAnnotationProcessor(new OptionCheck(ape),
- new HelloWorld(ape));
- }
- else {
- System.out.println("Returning single processor.");
- return new OptionCheck(ape);
- }
- }
-}
--- a/langtools/test/tools/apt/Options/options.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4993950 4993277
-# @run shell ../verifyVariables.sh
-# @run shell options.sh
-# @summary Test availabilty of command line options in processors
-# @author Joseph D. Darcy
-
-OS=`uname -s`;
-case "${OS}" in
- Windows* | CYGWIN* )
- SEP=";"
- ;;
-
- * )
- SEP=":"
- ;;
-esac
-
-JARCP=option.jar
-SOURCEP=${TESTSRC}
-
-
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -nocompile "
-
-printf "%s\n" "APT = ${APT}"
-
-# Construct path to javac executable
-JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
-JAR="${TESTJAVA}/bin/jar "
-
-${JAVAC} ${TESTSRC}/OptionChecker.java
-RESULT=$?
-
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Compilation failed."
- exit 1
-esac
-
-
-echo "Making services directory and copying services information."
-mkdir -p META-INF/services
-
-cp ${TESTSRC}/servicesOptions META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 option.jar OptionChecker*.class META-INF
-
-# Jar files created; verify options properly present on both initial
-# and recursive apt runs
-
-#---------------------------------------------------------
-
-unset CLASSPATH
-
-printf "%s\n" "-classpath ${JARCP}" > options
-printf "%s\n" "-sourcepath ${SOURCEP}" >> options
-printf "%s\n" "${TESTSRC}/Marked.java" >> options
-
-${APT} @options
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- echo "Failed to indentify missing options"
- exit 1
- ;;
-
- * )
- ;;
-esac
-
-printf "%s\n" "-Afoo -Abar" >> options
-
-${APT} @options
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Options not found properly."
- exit 1
- ;;
-esac
-
-exit 0;
--- a/langtools/test/tools/apt/Options/servicesOptions Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-OptionChecker
--- a/langtools/test/tools/apt/Scanners/Counter.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * Used to verify counts from different kinds of declaration scanners.
- */
-public class Counter implements AnnotationProcessorFactory {
- static class CounterProc implements AnnotationProcessor {
- static class CountingVisitor extends SimpleDeclarationVisitor {
- int count;
- int count() {
- return count;
- }
-
- CountingVisitor() {
- count = 0;
- }
-
- public void visitDeclaration(Declaration d) {
- count++;
- System.out.println(d.getSimpleName());
- }
- }
-
- AnnotationProcessorEnvironment env;
- CounterProc(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- public void process() {
- for(TypeDeclaration td: env.getSpecifiedTypeDeclarations() ) {
- CountingVisitor sourceOrder = new CountingVisitor();
- CountingVisitor someOrder = new CountingVisitor();
-
- System.out.println("Source Order Scanner");
- td.accept(getSourceOrderDeclarationScanner(sourceOrder,
- NO_OP));
-
- System.out.println("\nSome Order Scanner");
- td.accept(getDeclarationScanner(someOrder,
- NO_OP));
-
- if (sourceOrder.count() != someOrder.count() )
- throw new RuntimeException("Counts from different scanners don't agree");
- }
-
- }
- }
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new CounterProc(env);
- }
-
-}
--- a/langtools/test/tools/apt/Scanners/MemberOrderApf.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Arrays;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * The processor of this factory verifies class members are returned
- * in source-code order.
- */
-public class MemberOrderApf implements AnnotationProcessorFactory {
- // Process any set of annotations
- private static final Collection<String> supportedAnnotations
- = unmodifiableCollection(Arrays.asList("*"));
-
- // No supported options
- private static final Collection<String> supportedOptions = emptySet();
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedAnnotations;
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new MemberOrderAp(env);
- }
-
- private static class MemberOrderAp implements AnnotationProcessor {
- private final AnnotationProcessorEnvironment env;
- MemberOrderAp(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- private void verifyOrder(Collection<? extends Declaration> decls) {
- int count = 0;
- for(Declaration decl: decls) {
- VisitOrder order = decl.getAnnotation(VisitOrder.class);
- if (order.value() <= count)
- throw new RuntimeException("Out of order declarations");
- count = order.value();
- }
- }
-
- public void process() {
- for(TypeDeclaration td: env.getSpecifiedTypeDeclarations()) {
- verifyOrder(td.getFields());
- verifyOrder(td.getMethods());
- }
- }
- }
-}
--- a/langtools/test/tools/apt/Scanners/Order.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-@VisitOrder(1)
-public class Order {
- @VisitOrder(2)
- static double d;
-
- @VisitOrder(3)
- private Order() {}
-
- @VisitOrder(4)
- int i;
-
- @VisitOrder(5)
- static class InnerOrder {
- @VisitOrder(6)
- InnerOrder(){}
-
- @VisitOrder(7)
- String toString() {return "";}
- }
-
- @VisitOrder(8)
- String toString() {return "";}
-
- @VisitOrder(9)
- InnerOrder io;
-
- @VisitOrder(10)
- String foo() {return toString();}
-}
--- a/langtools/test/tools/apt/Scanners/Scanner.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.Map;
-import java.util.Arrays;
-import java.util.Collections;
-
-
-public class Scanner implements AnnotationProcessorFactory {
- static class ScannerProc implements AnnotationProcessor {
- AnnotationProcessorEnvironment env;
- ScannerProc(AnnotationProcessorEnvironment env) {
- this.env = env;
- }
-
- static class CountingVisitor extends SimpleDeclarationVisitor {
- int count;
- CountingVisitor() {
- count = 0;
- }
-
- public void visitDeclaration(Declaration d) {
- count++;
-
- Collection<AnnotationMirror> ams = d.getAnnotationMirrors();
- if (ams == null)
- throw new RuntimeException("Declaration " + d +
- " not annotated with visit order.");
- else {
- if (ams.size() != 1)
- throw new RuntimeException("Declaration " + d +
- " has wrong number of declarations.");
- else {
- for(AnnotationMirror am: ams) {
- Map<AnnotationTypeElementDeclaration,AnnotationValue> elementValues = am.getElementValues();
- for(AnnotationTypeElementDeclaration atmd: elementValues.keySet()) {
- if (!atmd.getDeclaringType().toString().equals("VisitOrder"))
- throw new RuntimeException("Annotation " + atmd +
- " is the wrong type.");
- else {
- AnnotationValue av =
- elementValues.get(atmd);
- Integer value = (Integer) av.getValue();
- if (value.intValue() != count)
- throw new RuntimeException("Expected declaration " + d +
- " to be in position " + count +
- " instead of " + value.intValue());
-
- System.out.println("Declaration " + d +
- ": visit order " + value.intValue());
- }
- }
-
- }
- }
- }
-
- }
- }
-
- public void process() {
- for(TypeDeclaration td: env.getSpecifiedTypeDeclarations() ) {
- td.accept(DeclarationVisitors.getSourceOrderDeclarationScanner(new CountingVisitor(),
- DeclarationVisitors.NO_OP));
- }
- }
- }
-
-
- static Collection<String> supportedTypes;
- static {
- String types[] = {"*"};
- supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
- }
-
- static Collection<String> supportedOptions;
- static {
- String options[] = {""};
- supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
- }
-
- public Collection<String> supportedOptions() {
- return supportedOptions;
- }
-
- public Collection<String> supportedAnnotationTypes() {
- return supportedTypes;
- }
-
- public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
- AnnotationProcessorEnvironment env) {
- return new ScannerProc(env);
- }
-
-}
--- a/langtools/test/tools/apt/Scanners/TestEnum.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-public enum TestEnum {
- QUIZ,
- EXAM,
- MIDTERM,
- FINAL,
- QUALIFIER;
-}
--- a/langtools/test/tools/apt/Scanners/VisitOrder.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * Integer to indicate what order a declaration is expected to be
- * visited in by a DeclarationScanner.
- */
-
-@interface VisitOrder {
- int value();
-}
--- a/langtools/test/tools/apt/Scanners/scanner.sh Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4989093 5009164 5023880 5029482 6206786
-# @run shell ../verifyVariables.sh
-# @run shell scanner.sh
-# @summary Test source order scanner
-# @author Joseph D. Darcy
-
-OS=`uname -s`;
-case "${OS}" in
- Windows* | CYGWIN* )
- SEP=";"
- ;;
-
- * )
- SEP=":"
- ;;
-esac
-
-JARCP=scanner.jar
-
-# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -nocompile "
-
-printf "%s\n" "APT = ${APT}"
-
-# Construct path to javac executable
-JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
-JAR="${TESTJAVA}/bin/jar "
-
-${JAVAC} ${TESTSRC}/Scanner.java ${TESTSRC}/VisitOrder.java ${TESTSRC}/Counter.java ${TESTSRC}/MemberOrderApf.java
-RESULT=$?
-
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Compilation failed."
- exit 1
-esac
-
-
-echo "Making services directory and copying services information."
-mkdir -p META-INF/services
-
-cp ${TESTSRC}/servicesScanner META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
-
-${JAR} cf0 scanner.jar Scanner*.class META-INF
-
-# Jar files created; verify options properly present on both initial
-# and recursive apt runs
-
-#---------------------------------------------------------
-
-unset CLASSPATH
-
-printf "%s\n" "-classpath ${JARCP}" > options
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options
-printf "%s\n" "${TESTSRC}/Order.java" >> options
-
-${APT} @options
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Program elements visited in wrong order"
- exit 1
- ;;
-esac
-
-#---------------------------------------------------------
-
-# Verify that plain decl' scanner and source order decl' scanner
-# record the same number of elements for an enum
-
-printf "%s\n" "-factorypath ." > options2
-printf "%s\n" "-factory Counter" >> options2
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options2
-printf "%s\n" "${TESTSRC}/TestEnum.java" >> options2
-
-
-$APT @options2
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Improper counts"
- exit 1
- ;;
-esac
-
-#---------------------------------------------------------
-
-# Verify that members happen to be returned in source order
-
-printf "%s\n" "-factorypath ." > options3
-printf "%s\n" "-factory MemberOrderApf" >> options3
-printf "%s\n" "-sourcepath ${TESTSRC}" >> options3
-printf "%s\n" "${TESTSRC}/Order.java" >> options3
-
-$APT @options3
-
-RESULT=$?
-case "${RESULT}" in
- 0 )
- ;;
-
- * )
- echo "Improper counts"
- exit 1
- ;;
-esac
-
-
-exit 0;
--- a/langtools/test/tools/apt/Scanners/servicesScanner Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Scanner
--- a/langtools/test/tools/apt/lib/Ignore.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import java.lang.annotation.*;
-
-/**
- * An annotation used to indicate that a test -- a method annotated
- * with @Test -- should not be executed.
- *
- * @author Scott Seligman
- */
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Ignore {
-
- /**
- * Reason for ignoring this test.
- */
- String value() default "";
-}
--- a/langtools/test/tools/apt/lib/Test.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import java.lang.annotation.*;
-
-/**
- * An annotation used to indicate that a method constitutes a test,
- * and which provides the expected result. The method must take no parameters.
- *
- * @author Scott Seligman
- */
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Test {
-
- /**
- * An array containing the method's expected result (or
- * elements of the result if the return type is a Collection).
- * Value is ignored if return type is void.
- * Entries are converted to strings via {@link String#valueOf(Object)}.
- */
- String[] result() default {};
-
- /**
- * True if the order of the elements in result() is significant.
- */
- boolean ordered() default false;
-}
--- a/langtools/test/tools/apt/lib/TestProcessor.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import java.lang.reflect.Method;
-import java.util.*;
-import com.sun.mirror.apt.*;
-
-
-/**
- * Annotation processor for the @Test annotation.
- * Invokes each method so annotated, and verifies the result.
- * Throws an Error on failure.
- *
- * @author Scott Seligman
- */
-public class TestProcessor implements AnnotationProcessor {
-
- AnnotationProcessorEnvironment env;
-
- // The tester that's running.
- Tester tester = Tester.activeTester;
-
- TestProcessor(AnnotationProcessorEnvironment env,
- Tester tester) {
- this.env = env;
- this.tester = tester;
- }
-
-
- /**
- * Reflectively invoke the @Test-annotated methods of the live
- * tester. Those methods perform the actual exercising of the
- * mirror API. Then back here to verify the results by
- * reading the live annotations. Convoluted, you say?
- */
- public void process() {
- System.out.printf("\n> Processing %s\n", tester.getClass());
-
- boolean failed = false; // true if a test returns wrong result
-
- for (Method m : tester.getClass().getDeclaredMethods()) {
- Test anno = m.getAnnotation(Test.class);
- Ignore ignore = m.getAnnotation(Ignore.class);
- if (anno != null) {
- if (ignore == null) {
- System.out.println(">> Invoking test " + m.getName());
- Object result;
- try {
- result = m.invoke(tester);
- } catch (Exception e) {
- throw new Error("Test invocation failed", e);
- }
- boolean ok = true; // result of this test
- if (Collection.class.isAssignableFrom(m.getReturnType())) {
- ok = verifyResults((Collection) result,
- anno.result(), anno.ordered());
- } else if (m.getReturnType() != void.class) {
- ok = verifyResult(result, anno.result());
- }
- if (!ok) {
- System.out.println(">>> Expected: " + anno);
- System.out.println(">>> Got: " + result);
- failed = true;
- }
- } else {
- System.out.println(">> Ignoring test " + m.getName());
- if (ignore.value().length() > 0) {
- System.out.println(">>> Reason: " + ignore.value());
- }
- }
- }
- }
- if (failed) {
- throw new Error("Test(s) returned unexpected result");
- }
- }
-
- /**
- * Verify that a single-valued (non-Collection) result matches
- * its expected value.
- */
- private boolean verifyResult(Object result, String[] expected) {
- assert expected.length == 1 :
- "Single-valued test expecting " + expected.length + " results";
- return expected[0].equals(String.valueOf(result));
- }
-
- /**
- * Verify that a multi-valued result (a Collection) matches
- * its expected values.
- */
- private boolean verifyResults(Collection result,
- String[] expected, boolean ordered) {
- if (result.size() != expected.length) {
- return false;
- }
-
- // Convert result to an array of strings.
- String[] res = new String[result.size()];
- int i = 0;
- for (Object e : result) {
- res[i++] = String.valueOf(e);
- }
-
- if (!ordered) {
- Arrays.sort(res);
- Arrays.sort(expected);
- }
- return Arrays.equals(res, expected);
- }
-}
--- a/langtools/test/tools/apt/lib/TestProcessorFactory.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-import java.util.*;
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.util.*;
-
-
-/**
- * A factory for generating the TestProcessor annotation processor, which
- * processes the @Test annotation.
- *
- * @author Scott Seligman
- */
-public class TestProcessorFactory implements AnnotationProcessorFactory {
-
- public Collection<String> supportedOptions() {
- return new ArrayList<String>();
- }
-
- public Collection<String> supportedAnnotationTypes() {
- ArrayList<String> res = new ArrayList<String>();
- res.add("Test");
- res.add("Ignore");
- return res;
- }
-
- public AnnotationProcessor getProcessorFor(
- Set<AnnotationTypeDeclaration> as,
- AnnotationProcessorEnvironment env) {
- // The tester that's running.
- Tester tester = Tester.activeTester;
-
- try {
- // Find the tester's class declaration.
- ClassDeclaration testerDecl = null;
- for (TypeDeclaration decl : env.getSpecifiedTypeDeclarations()) {
- if (decl.getQualifiedName().equals(
- tester.getClass().getName())) {
- testerDecl = (ClassDeclaration) decl;
- break;
- }
- }
-
- // Give the tester access to its own declaration and to the env.
- tester.thisClassDecl = testerDecl;
- tester.env = env;
-
- // Initializer the tester.
- tester.init();
-
- return new TestProcessor(env, tester);
-
- } catch (Exception e) {
- throw new Error("Couldn't create test annotation processor", e);
- }
- }
-}
--- a/langtools/test/tools/apt/lib/Tester.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * A utility used to invoke and test the apt tool.
- * Tests should subclass Tester, and invoke run().
- *
- * @author Scott Seligman
- */
-
-import java.io.*;
-import java.util.*;
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-
-
-public abstract class Tester {
-
- /**
- * The declaration corresponding to this tester's class. Set by
- * TestProcessorFactory after the constructor completes, and
- * before init() is invoked.
- */
- ClassDeclaration thisClassDecl;
-
- /**
- * The environment for this apt run. Set by TestProcessorFactory
- * after the constructor completes, and before init() is invoked.
- */
- AnnotationProcessorEnvironment env;
-
-
- // TestProcessorFactory looks here to find the tester that's running
- // when it's invoked.
- static Tester activeTester;
-
- private static final String[] DEFAULT_ARGS = {
- "-nocompile",
- "-XPrintAptRounds",
- "-XListDeclarations",
- };
- private static final String[] NO_STRINGS = {};
-
- // Force processor and factory to be compiled
- private static Class dummy = TestProcessorFactory.class;
-
- private final String testSrc = System.getProperty("test.src", ".");
- private final String testClasses = System.getProperty("test.classes", ".");
-
- // apt command-line args
- private String[] args;
-
-
- static {
- // Enable assertions in the unnamed package.
- ClassLoader loader = Tester.class.getClassLoader();
- if (loader != null) {
- loader.setPackageAssertionStatus(null, true);
- }
- }
-
-
- protected Tester(String... additionalArgs) {
- String sourceFile = testSrc + File.separator +
- getClass().getName() + ".java";
-
- ArrayList<String> as = new ArrayList<String>();
- Collections.addAll(as, DEFAULT_ARGS);
- as.add("-sourcepath"); as.add(testSrc);
- as.add("-factory"); as.add(TestProcessorFactory.class.getName());
- Collections.addAll(as, additionalArgs);
- as.add(sourceFile);
- args = as.toArray(NO_STRINGS);
- }
-
- /**
- * Run apt.
- */
- protected void run() {
- activeTester = this;
- if (com.sun.tools.apt.Main.process(args) != 0) {
- throw new Error("apt errors encountered.");
- }
- }
-
- /**
- * Called after thisClassDecl and env have been set, but before any
- * tests are run, to allow the tester subclass to perform any
- * needed initialization.
- */
- protected void init() {
- }
-
- /**
- * Returns the declaration of a named method in this class. If this
- * method name is overloaded, one method is chosen arbitrarily.
- * Returns null if no method is found.
- */
- protected MethodDeclaration getMethod(String methodName) {
- for (MethodDeclaration m : thisClassDecl.getMethods()) {
- if (methodName.equals(m.getSimpleName())) {
- return m;
- }
- }
- return null;
- }
-
- /**
- * Returns the declaration of a named field in this class.
- * Returns null if no field is found.
- */
- protected FieldDeclaration getField(String fieldName) {
- for (FieldDeclaration f : thisClassDecl.getFields()) {
- if (fieldName.equals(f.getSimpleName())) {
- return f;
- }
- }
- return null;
- }
-
- /**
- * Returns the annotation mirror of a given type on a named method
- * in this class. If this method name is overloaded, one method is
- * chosen arbitrarily. Returns null if no appropriate annotation
- * is found.
- */
- protected AnnotationMirror getAnno(String methodName, String annoType) {
- MethodDeclaration m = getMethod(methodName);
- if (m != null) {
- TypeDeclaration at = env.getTypeDeclaration(annoType);
- for (AnnotationMirror a : m.getAnnotationMirrors()) {
- if (at == a.getAnnotationType().getDeclaration()) {
- return a;
- }
- }
- }
- return null;
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/AnnoMirror.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5014539
- * @summary Tests AnnotationMirror and AnnotationValue methods.
- * @library ../../lib
- * @compile -source 1.5 AnnoMirror.java
- * @run main/othervm AnnoMirror
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-
-
-public class AnnoMirror extends Tester {
-
- public static void main(String[] args) {
- (new AnnoMirror()).run();
- }
-
-
- @Test(result={"AT1"})
- @AT1
- AnnotationType getAnnotationType() {
- AnnotationMirror anno = getAnno("getAnnotationType", "AT1");
- return anno.getAnnotationType();
- }
-
- @Test(result={})
- @AT1
- Set getElementValuesNone() {
- AnnotationMirror anno = getAnno("getElementValuesNone", "AT1");
- return anno.getElementValues().entrySet();
- }
-
-
- // The seemingly out-of-place parens in the following "result"
- // entry are needed due to the shortcut of having the test return
- // the entry set directly.
- @Test(result={"i()=2",
- "b()=true",
- "k()=java.lang.Boolean.class",
- "a()=@AT1"})
- @AT2(i = 1+1,
- b = true,
- k = Boolean.class,
- a = @AT1)
- Set getElementValues() {
- AnnotationMirror anno = getAnno("getElementValues", "AT2");
- return anno.getElementValues().entrySet();
- }
-
- @Test(result={"@AT1(\"zax\")",
- "@AT2(i=2, b=true, k=java.lang.Boolean.class, a=@AT1)",
- "@AT3(arr={1})",
- "@AT4({2, 3, 4})"})
- Collection<AnnotationMirror> toStringTests() {
- for (MethodDeclaration m : thisClassDecl.getMethods()) {
- if (m.getSimpleName().equals("toStringTestsHelper")) {
- return m.getAnnotationMirrors();
- }
- }
- throw new AssertionError();
- }
-
- @AT1("zax")
- @AT2(i = 1+1,
- b = true,
- k = Boolean.class,
- a = @AT1)
- @AT3(arr={1})
- @AT4({2,3,4})
- private void toStringTestsHelper() {
- }
-}
-
-
-/*
- * Annotations used for testing.
- */
-
-@interface AT1 {
- String value() default "";
-}
-
-@interface AT2 {
- int i();
- boolean b();
- Class k();
- AT1 a();
-}
-
-@interface AT3 {
- int[] arr();
-}
-
-@interface AT4 {
- int[] value();
-}
--- a/langtools/test/tools/apt/mirror/declaration/AnnoTypeDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5014539
- * @summary AnnotationTypeDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 AnnoTypeDecl.java
- * @run main/othervm AnnoTypeDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class AnnoTypeDecl extends Tester {
-
- public static void main(String[] args) {
- (new AnnoTypeDecl()).run();
- }
-
-
- private AnnotationTypeDeclaration at;
-
- protected void init() {
- at = (AnnotationTypeDeclaration) env.getTypeDeclaration("AT");
- }
-
-
- // Declaration methods
-
- @Test(result="annotation type")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- at.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitClassDeclaration(ClassDeclaration c) {
- res.add("class");
- }
- public void visitInterfaceDeclaration(InterfaceDeclaration i) {
- res.add("interface");
- }
- public void visitAnnotationTypeDeclaration(
- AnnotationTypeDeclaration a) {
- res.add("annotation type");
- }
- });
- return res;
- }
-
-
- // AnnotationTypeDeclaration methods
-
- @Test(result={"s()"})
- Collection<AnnotationTypeElementDeclaration> getMethods() {
- return at.getMethods();
- }
-}
-
-
-// An annotation type to use for testing.
-
-@interface AT {
- String s();
-}
--- a/langtools/test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 4993299 5010385 5014539
- * @summary AnnotationTypeElementDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 AnnoTypeElemDecl.java
- * @run main/othervm AnnoTypeElemDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class AnnoTypeElemDecl extends Tester {
-
- public static void main(String[] args) {
- (new AnnoTypeElemDecl()).run();
- }
-
-
- // Some annotation type elements to use.
- private AnnotationTypeElementDeclaration elem1 = null; // s()
- private AnnotationTypeElementDeclaration elem2 = null; // i()
- private AnnotationTypeElementDeclaration elem3 = null; // b()
-
- protected void init() {
- for (TypeDeclaration at : thisClassDecl.getNestedTypes()) {
- for (MethodDeclaration meth : at.getMethods()) {
- AnnotationTypeElementDeclaration elem =
- (AnnotationTypeElementDeclaration) meth;
- if (elem.getSimpleName().equals("s")) {
- elem1 = elem; // s()
- } else if (elem.getSimpleName().equals("i")) {
- elem2 = elem; // i()
- } else {
- elem3 = elem; // b()
- }
- }
- }
- }
-
-
- // Declaration methods
-
- @Test(result="anno type element")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- elem1.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitExecutableDeclaration(ExecutableDeclaration e) {
- res.add("executable");
- }
- public void visitMethodDeclaration(MethodDeclaration m) {
- res.add("method");
- }
- public void visitAnnotationTypeElementDeclaration(
- AnnotationTypeElementDeclaration a) {
- res.add("anno type element");
- }
- });
- return res;
- }
-
- @Test(result={"@AnnoTypeElemDecl.AT2"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return elem1.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return elem1.getDocComment();
- }
-
- @Test(result={"public", "abstract"})
- Collection<Modifier> getModifiers() {
- return elem1.getModifiers();
- }
-
- @Test(result="AnnoTypeElemDecl.java")
- String getPosition() {
- return elem1.getPosition().file().getName();
- }
-
- @Test(result="s")
- String getSimpleName() {
- return elem1.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="AnnoTypeElemDecl.AT1")
- TypeDeclaration getDeclaringType() {
- return elem1.getDeclaringType();
- }
-
-
- // ExecutableDeclaration methods
-
- @Test(result={})
- Collection<TypeParameterDeclaration> getFormalTypeParameters() {
- return elem1.getFormalTypeParameters();
- }
-
- @Test(result={})
- Collection<ParameterDeclaration> getParameters() {
- return elem1.getParameters();
- }
-
- @Test(result={})
- Collection<ReferenceType> getThrownTypes() {
- return elem1.getThrownTypes();
- }
-
- @Test(result="false")
- Boolean isVarArgs() {
- return elem1.isVarArgs();
- }
-
-
- // AnnotationTypeElementDeclaration method
-
- @Test(result="\"default\"")
- AnnotationValue getDefaultValue1() {
- return elem1.getDefaultValue();
- }
-
- @Test(result="null")
- AnnotationValue getDefaultValue2() {
- return elem2.getDefaultValue();
- }
-
- // 5010385: getValue() returns null for boolean type elements
- @Test(result="false")
- Boolean getDefaultValue3() {
- return (Boolean) elem3.getDefaultValue().getValue();
- }
-
-
- // toString
-
- @Test(result="s()")
- String toStringTest() {
- return elem1.toString();
- }
-
-
- // Declarations used by tests.
-
- @interface AT1 {
- /**
- * Sed Quis custodiet ipsos custodes?
- */
- @AT2
- String s() default "default";
-
- int i();
-
- boolean b() default false;
- }
-
- @interface AT2 {
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/AnnoVal.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5014539 5034991
- * @summary Tests AnnotationValue methods.
- * @library ../../lib
- * @compile -source 1.5 AnnoVal.java
- * @run main/othervm AnnoVal
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-
-
-public class AnnoVal extends Tester {
-
- public static void main(String[] args) {
- (new AnnoVal()).run();
- }
-
- @Test(result={
- "i Integer 2",
- "l Long 4294967296",
- "d Double 3.14",
- "b Boolean true",
- "c Character @",
- "s String sigh",
- // The following results reflect some implementation details.
- "k ClassTypeImpl java.lang.Boolean",
- "kb PrimitiveTypeImpl boolean",
- "ka ArrayTypeImpl java.lang.Boolean[]",
- "kab ArrayTypeImpl int[][]",
- "w ClassTypeImpl java.lang.Long",
- "e EnumConstantDeclarationImpl TYPE",
- "sa ArrayList [\"up\", \"down\"]",
- "a AnnotationMirrorImpl @AT1"})
- @AT2(i = 1 + 1,
- l = 1024 * 1024 * 1024 * 4L,
- d = 3.14,
- b = true,
- c = '@',
- s = "sigh",
- k = Boolean.class,
- kb = boolean.class,
- ka = Boolean[].class, // bugid 5020899
- kab = int[][].class, // "
- w = Long.class,
- e = java.lang.annotation.ElementType.TYPE,
- sa = {"up", "down"},
- a = @AT1)
- Collection<String> getValue() {
- Collection<String> res = new ArrayList<String>();
- AnnotationMirror anno = getAnno("getValue", "AT2");
-
- for (Map.Entry<AnnotationTypeElementDeclaration, AnnotationValue> e :
- anno.getElementValues().entrySet()) {
- Object val = e.getValue().getValue();
- res.add(String.format("%s %s %s",
- e.getKey().getSimpleName(),
- simpleClassName(val),
- val));
- }
- return res;
- }
-
- @Test(result={
- "int i 2",
- "long l 4294967296L",
- "double d 3.14",
- "boolean b true",
- "char c '@'",
- "java.lang.String s \"sigh\"",
- "java.lang.Class k java.lang.Boolean.class",
- "java.lang.Class kb boolean.class",
- "java.lang.Class ka java.lang.Boolean[].class",
- "java.lang.Class kab int[][].class",
- "java.lang.Class<? extends java.lang.Number> w java.lang.Long.class",
- "java.lang.annotation.ElementType e java.lang.annotation.ElementType.TYPE",
- "java.lang.String[] sa {\"up\", \"down\"}",
- "AT1 a @AT1"})
- Collection<String> toStringTests() {
- Collection<String> res = new ArrayList<String>();
- AnnotationMirror anno = getAnno("getValue", "AT2");
-
- for (Map.Entry<AnnotationTypeElementDeclaration,AnnotationValue> e :
- anno.getElementValues().entrySet()) {
- res.add(String.format("%s %s %s",
- e.getKey().getReturnType(),
- e.getKey().getSimpleName(),
- e.getValue().toString()));
- }
- return res;
- }
-
- @Test(result={
- "byte b 0x0b",
- "float f 3.0f",
- "double nan 0.0/0.0",
- "double hi 1.0/0.0",
- "float lo -1.0f/0.0f",
- "char newline '\\n'",
- "char ff '\\u00ff'",
- "java.lang.String s \"\\\"high\\tlow\\\"\"",
- "java.lang.String smiley \"\\u263a\""})
- @AT3(b = 11,
- f = 3,
- nan = 0.0/0.0,
- hi = 1.0/0.0,
- lo = -1.0f/0.0f,
- newline = '\n',
- ff = '\u00FF',
- s = "\"high\tlow\"",
- smiley = "\u263A")
- Collection<String> toStringFancy() {
- Collection<String> res = new ArrayList<String>();
- AnnotationMirror anno = getAnno("toStringFancy", "AT3");
-
- for (Map.Entry<AnnotationTypeElementDeclaration,AnnotationValue> e :
- anno.getElementValues().entrySet()) {
- res.add(String.format("%s %s %s",
- e.getKey().getReturnType(),
- e.getKey().getSimpleName(),
- e.getValue().toString()));
- }
- return res;
- }
-
-
- /**
- * Returns the simple name of an object's class.
- */
- private String simpleClassName(Object o) {
- return (o == null)
- ? "null"
- : o.getClass().getName().replaceFirst(".*\\.", "");
- }
-}
-
-
-/*
- * Annotations used for testing.
- */
-
-@interface AT1 {
- String value() default "";
-}
-
-@interface AT2 {
- int i();
- long l();
- double d();
- boolean b();
- char c();
- String s();
- Class k();
- Class kb();
- Class ka();
- Class kab();
- Class<? extends Number> w();
- java.lang.annotation.ElementType e();
- String[] sa();
- AT1 a();
-}
-
-@interface AT3 {
- byte b();
- float f();
- double nan();
- double hi();
- float lo();
- char newline();
- char ff();
- String s();
- String smiley();
-}
--- a/langtools/test/tools/apt/mirror/declaration/ClassDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 4997614
- * @summary ClassDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 ClassDecl.java
- * @run main/othervm ClassDecl
- */
-
-
-import java.io.Serializable;
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-/**
- * Sed Quis custodiet ipsos custodes?
- */
-@AT1
-@AT2
-public class ClassDecl extends Tester {
-
- public static void main(String[] args) {
- (new ClassDecl()).run();
- }
-
-
- private ClassDeclaration nested = null; // a nested type
- private ClassDeclaration object = null; // java.lang.object
-
- // A constructor to be found
- private ClassDecl() {
- }
-
- // Another constructor to be found
- private ClassDecl(int i) {
- this();
- }
-
- // An extra field to be found
- static int i;
-
- // Static initializer isn't among this class's methods.
- static {
- i = 7;
- }
-
- // A nested class with some accoutrements
- private static strictfp class NestedClass<T> implements Serializable {
- void m1() {}
- void m2() {}
- void m2(int i) {}
- }
-
- protected void init() {
- nested = (ClassDeclaration)
- thisClassDecl.getNestedTypes().iterator().next();
- object = (ClassDeclaration)
- env.getTypeDeclaration("java.lang.Object");
- }
-
-
- // Declaration methods
-
- @Test(result="class")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- thisClassDecl.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitClassDeclaration(ClassDeclaration c) {
- res.add("class");
- }
- public void visitEnumDeclaration(EnumDeclaration e) {
- res.add("enum");
- }
- });
- return res;
- }
-
- @Test(result={"@AT1", "@AT2"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return thisClassDecl.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return thisClassDecl.getDocComment();
- }
-
- @Test(result={"public"})
- Collection<Modifier> getModifiers1() {
- return thisClassDecl.getModifiers();
- }
-
- // Check that static nested class has "static" modifier, even though
- // the VM doesn't set that bit.
- @Test(result={"private", "static", "strictfp"})
- Collection<Modifier> getModifiers2() {
- return nested.getModifiers();
- }
-
- @Test(result="ClassDecl.java")
- String getPosition() {
- return thisClassDecl.getPosition().file().getName();
- }
-
- @Test(result="ClassDecl")
- String getSimpleName1() {
- return thisClassDecl.getSimpleName();
- }
-
- @Test(result="NestedClass")
- String getSimpleName2() {
- return nested.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="null")
- TypeDeclaration getDeclaringType1() {
- return thisClassDecl.getDeclaringType();
- }
-
- @Test(result="ClassDecl")
- TypeDeclaration getDeclaringType2() {
- return nested.getDeclaringType();
- }
-
-
- // TypeDeclaration methods
-
- @Test(result={"nested", "object", "i"})
- Collection<FieldDeclaration> getFields() {
- return thisClassDecl.getFields();
- }
-
- @Test(result={})
- Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
- return thisClassDecl.getFormalTypeParameters();
- }
-
- @Test(result="T")
- Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
- return nested.getFormalTypeParameters();
- }
-
- @Test(result="ClassDecl.NestedClass<T>")
- Collection<TypeDeclaration> getNestedTypes() {
- return thisClassDecl.getNestedTypes();
- }
-
- @Test(result="")
- PackageDeclaration getPackage1() {
- return thisClassDecl.getPackage();
- }
-
- @Test(result="java.lang")
- PackageDeclaration getPackage2() {
- return object.getPackage();
- }
-
- @Test(result="ClassDecl")
- String getQualifiedName1() {
- return thisClassDecl.getQualifiedName();
- }
-
- @Test(result="ClassDecl.NestedClass")
- String getQualifiedName2() {
- return nested.getQualifiedName();
- }
-
- @Test(result="java.lang.Object")
- String getQualifiedName3() {
- return object.getQualifiedName();
- }
-
- @Test(result="java.io.Serializable")
- Collection<InterfaceType> getSuperinterfaces() {
- return nested.getSuperinterfaces();
- }
-
-
- // ClassDeclaration methods
-
- @Test(result={"ClassDecl()", "ClassDecl(int)"})
- Collection<ConstructorDeclaration> getConstructors1() {
- return thisClassDecl.getConstructors();
- }
-
- // Check for default constructor.
- // 4997614: visitConstructionDeclaration reports info when there is no ctor
- @Test(result={"NestedClass()"})
- Collection<ConstructorDeclaration> getConstructors2() {
- return nested.getConstructors();
- }
-
- @Test(result={"m1()", "m2()", "m2(int)"})
- Collection<MethodDeclaration> getMethods() {
- return nested.getMethods();
- }
-
- @Test(result={"Tester"})
- ClassType getSuperclass() {
- return thisClassDecl.getSuperclass();
- }
-
- @Test(result={"null"})
- ClassType objectHasNoSuperclass() {
- return object.getSuperclass();
- }
-}
-
-
-// Annotations used for testing.
-
-@interface AT1 {
-}
-
-@interface AT2 {
-}
--- a/langtools/test/tools/apt/mirror/declaration/ConstExpr.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 5027675 5048535
- * @summary Tests FieldDeclaration.getConstantExpression method
- * @library ../../lib
- * @compile -source 1.5 ConstExpr.java
- * @run main/othervm ConstExpr
- */
-
-
-import java.math.RoundingMode;
-import java.util.*;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import static java.math.RoundingMode.UP;
-
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-
-public class ConstExpr extends Tester {
-
- public static void main(String[] args) {
- (new ConstExpr()).run();
- }
-
-
- // Declarations used by tests
-
- public static final byte B = (byte) 0xBE;
- public static final short S = (short) 32767;
- public static final int I = -4;
- public static final long l = 4294967296L;
- public static final float f = 3.5f;
- public static final double PI = Math.PI;
- public static final char C = 'C';
- public static final String STR = "cheese";
-
- public static final char SMILEY = '\u263A';
- public static final String TWOLINES = "ab\ncd";
-
- public static final double D1 = Double.POSITIVE_INFINITY;
- public static final double D2 = Double.NEGATIVE_INFINITY;
- public static final double D3 = Double.NaN;
- public static final float F1 = Float.POSITIVE_INFINITY;
- public static final float F2 = Float.NEGATIVE_INFINITY;
- public static final float F3 = Float.NaN;
-
- public static final String NOSTR = null; // not a compile-time constant
- public static final RoundingMode R = UP; // not a compile-time constant
-
-
- @Test(result={
- "0xbe",
- "32767",
- "-4",
- "4294967296L",
- "3.5f",
- "3.141592653589793",
- "'C'",
- "\"cheese\"",
-
- "'\\u263a'",
- "\"ab\\ncd\"",
-
- "1.0/0.0",
- "-1.0/0.0",
- "0.0/0.0",
- "1.0f/0.0f",
- "-1.0f/0.0f",
- "0.0f/0.0f",
-
- "null",
- "null"
- },
- ordered=true)
- Collection<String> getConstantExpression() {
- final Collection<String> res = new ArrayList<String>();
-
- thisClassDecl.accept(
- DeclarationVisitors.getSourceOrderDeclarationScanner(
- NO_OP,
- new SimpleDeclarationVisitor() {
- public void visitFieldDeclaration(FieldDeclaration f) {
- res.add(f.getConstantExpression());
- }
- }));
- return res;
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/ConstructorDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 4993299
- * @summary ConstructorDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 ConstructorDecl.java
- * @run main/othervm ConstructorDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class ConstructorDecl extends Tester {
-
- /**
- * Sed Quis custodiet ipsos custodes?
- */
- @AT1
- public ConstructorDecl() {
- }
-
-
- public static void main(String[] args) {
- (new ConstructorDecl()).run();
- }
-
-
- private ConstructorDeclaration ctor = null; // a constructor
- private ConstructorDeclaration ctorDef = null; // a default c'tor
- private ConstructorDeclaration ctorInner = null; // an inner class c'tor
-
- protected void init() {
- ctor = getAConstructor(thisClassDecl);
- ctorDef = getAConstructor((ClassDeclaration)
- env.getTypeDeclaration("C1"));
- ctorInner = getAConstructor((ClassDeclaration)
- env.getTypeDeclaration("C1.C2"));
- }
-
- // Return a constructor of a class.
- private ConstructorDeclaration getAConstructor(ClassDeclaration c) {
- return c.getConstructors().iterator().next();
- }
-
-
- // Declaration methods
-
- @Test(result="constructor")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- ctor.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitExecutableDeclaration(ExecutableDeclaration e) {
- res.add("executable");
- }
- public void visitConstructorDeclaration(ConstructorDeclaration c) {
- res.add("constructor");
- }
- });
- return res;
- }
-
- @Test(result={"@AT1"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return ctor.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return ctor.getDocComment();
- }
-
- @Test(result={"public"})
- Collection<Modifier> getModifiers() {
- return ctor.getModifiers();
- }
-
- @Test(result="ConstructorDecl.java")
- String getPosition() {
- return ctor.getPosition().file().getName();
- }
-
- @Test(result="ConstructorDecl.java")
- String getPositionDefault() {
- return ctorDef.getPosition().file().getName();
- }
-
- @Test(result="ConstructorDecl")
- String getSimpleName() {
- return ctor.getSimpleName();
- }
-
- @Test(result="C2")
- String getSimpleNameInner() {
- return ctorInner.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="ConstructorDecl")
- TypeDeclaration getDeclaringType() {
- return ctor.getDeclaringType();
- }
-
-
- // ExecutableDeclaration methods
-
- @Test(result={})
- Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
- return ctor.getFormalTypeParameters();
- }
-
- @Test(result={"N extends java.lang.Number"})
- Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
- return ctorInner.getFormalTypeParameters();
- }
-
- @Test(result={})
- Collection<ParameterDeclaration> getParameters1() {
- return ctor.getParameters();
- }
-
- // 4993299: verify synthetic parameters to inner class constructors
- // aren't visible
- @Test(result={"N n1", "N n2", "java.lang.String[] ss"},
- ordered=true)
- Collection<ParameterDeclaration> getParameters2() {
- return ctorInner.getParameters();
- }
-
- @Test(result={"java.lang.Throwable"})
- Collection<ReferenceType> getThrownTypes() {
- return ctorInner.getThrownTypes();
- }
-
- @Test(result="false")
- Boolean isVarArgs1() {
- return ctor.isVarArgs();
- }
-
- @Test(result="true")
- Boolean isVarArgs2() {
- return ctorInner.isVarArgs();
- }
-
-
- // toString
-
- @Test(result="<N extends java.lang.Number> C2(N, N, String...)")
- @Ignore("This is what it would be nice to see.")
- String toStringTest() {
- return ctorInner.toString();
- }
-}
-
-
-// Classes and interfaces used for testing.
-
-class C1 {
- class C2 {
- <N extends Number> C2(N n1, N n2, String... ss) throws Throwable {
- }
- }
-}
-
-@interface AT1 {
-}
--- a/langtools/test/tools/apt/mirror/declaration/EnumDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 4989987 5010050
- * @summary EnumDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 EnumDecl.java
- * @run main/othervm EnumDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class EnumDecl extends Tester {
-
- public static void main(String[] args) {
- (new EnumDecl()).run();
- }
-
-
- private EnumDeclaration eDecl;
-
- protected void init() {
- eDecl = (EnumDeclaration) env.getTypeDeclaration("E");
- }
-
-
- // Declaration methods
-
- @Test(result="enum")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- eDecl.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitClassDeclaration(ClassDeclaration c) {
- res.add("class");
- }
- public void visitEnumDeclaration(EnumDeclaration e) {
- res.add("enum");
- }
- });
- return res;
- }
-
-
- // ClassDeclaration methods
-
- // 4989987: Verify synthetic enum constructor parameters are not visible
- @Test(result={"E(java.lang.String)"})
- Collection<ConstructorDeclaration> getConstructors() {
- return eDecl.getConstructors();
- }
-
- // 4989987: Verify synthetic enum constructor parameters are not visible
- @Test(result={"java.lang.String color"})
- Collection<ParameterDeclaration> getConstructorParams() {
- return eDecl.getConstructors().iterator().next().getParameters();
- }
-
- @Test(result={"values()", "valueOf(java.lang.String)"})
- Collection<MethodDeclaration> getMethods() {
- return eDecl.getMethods();
- }
-
- // 5010050: Cannot find parameter names for valueOf(String name) method...
- @Test(result={"java.lang.String name"})
- Collection<ParameterDeclaration> getMethodParams() {
- for (MethodDeclaration m : eDecl.getMethods()) {
- if (m.getSimpleName().equals("valueOf")) {
- return m.getParameters();
- }
- }
- throw new AssertionError();
- }
-
-
- // EnumDeclaration methods
-
- @Test(result={"stop", "slow", "go"})
- Collection<EnumConstantDeclaration> getEnumConstants() {
- return eDecl.getEnumConstants();
- }
-}
-
-
-// An enum to use for testing.
-
-enum E {
- stop("red"),
- slow("amber"),
- go("green");
-
- private String color;
- E(String color) {
- this.color = color;
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/FieldDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5008309
- * @summary FieldDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 FieldDecl.java
- * @run main/othervm FieldDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class FieldDecl extends Tester {
-
- public static void main(String[] args) {
- (new FieldDecl()).run();
- }
-
-
- private FieldDeclaration f1 = null; // a field
- private FieldDeclaration f2 = null; // a static field
- private FieldDeclaration f3 = null; // a constant field
-
- protected void init() {
- f1 = getField("aField");
- f2 = getField("aStaticField");
- f3 = getField("aConstantField");
- }
-
-
- // Declaration methods
-
- @Test(result="field")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- f1.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitFieldDeclaration(FieldDeclaration f) {
- res.add("field");
- }
- public void visitEnumConstantDeclaration(
- EnumConstantDeclaration e) {
- res.add("enum const");
- }
- });
- return res;
- }
-
- @Test(result={"@FieldDecl.AT1"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return f1.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return f1.getDocComment();
- }
-
- @Test(result={"public"})
- Collection<Modifier> getModifiers() {
- return f1.getModifiers();
- }
-
- @Test(result="FieldDecl.java")
- String getPosition() {
- return f1.getPosition().file().getName();
- }
-
- @Test(result="aField")
- String getSimpleName() {
- return f1.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="FieldDecl")
- TypeDeclaration getDeclaringType() {
- return f1.getDeclaringType();
- }
-
-
- // FieldDeclaration methods
-
- @Test(result="java.util.List<java.lang.String>")
- TypeMirror getType1() {
- return f1.getType();
- }
-
- @Test(result="int")
- TypeMirror getType2() {
- return f2.getType();
- }
-
- @Test(result="null")
- Object getConstantValue1() {
- return f1.getConstantValue();
- }
-
- // 5008309: FieldDeclaration.getConstantValue() doesn't return anything
- @Test(result="true")
- Object getConstantValue2() {
- return f3.getConstantValue();
- }
-
-
- // toString
-
- @Test(result="aField")
- String toStringTest() {
- return f1.toString();
- }
-
-
- // Declarations used by tests.
-
- /**
- * Sed Quis custodiet ipsos custodes?
- */
- @AT1
- public List<String> aField = new ArrayList<String>();
-
- static int aStaticField;
-
- public static final boolean aConstantField = true;
-
-
- @interface AT1 {
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/GetAnno.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4989091 5050782 5051962
- * @summary Tests Declaration.getAnnotation method
- * @library ../../lib
- * @compile -source 1.5 GetAnno.java
- * @run main/othervm GetAnno
- */
-
-
-import java.lang.annotation.*;
-import java.util.*;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-
-import static java.lang.annotation.RetentionPolicy.*;
-
-
-public class GetAnno extends Tester {
-
- public static void main(String[] args) {
- (new GetAnno()).run();
- }
-
-
- // Annotations used by tests
-
- @Retention(RUNTIME)
- @interface AT1 {
- long l();
- String s();
- RetentionPolicy e();
- String[] sa();
- AT2 a();
- }
-
- @Inherited
- @interface AT2 {
- }
-
- @interface AT3 {
- Class value() default String.class;
- }
-
- // Array-valued elements of various kinds.
- @interface AT4 {
- boolean[] bs();
- long[] ls();
- String[] ss();
- RetentionPolicy[] es();
- AT2[] as();
- }
-
-
- @Test(result="@GetAnno$AT1(l=7, s=sigh, e=CLASS, sa=[in, out], " +
- "a=@GetAnno$AT2())")
- @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2)
- public Annotation getAnnotation() {
- MethodDeclaration m = getMethod("getAnnotation");
- AT1 a = m.getAnnotation(AT1.class);
- if (a.l() != 7 || !a.s().equals("sigh") || a.e() != CLASS)
- throw new AssertionError();
- return a;
- }
-
- @Test(result="null")
- public Annotation getAnnotationNotThere() {
- return thisClassDecl.getAnnotation(Deprecated.class);
- }
-
- @Test(result="@GetAnno$AT4(bs=[true, false], " +
- "ls=[9, 8], " +
- "ss=[black, white], " +
- "es=[CLASS, SOURCE], " +
- "as=[@GetAnno$AT2(), @GetAnno$AT2()])")
- @AT4(bs={true, false},
- ls={9, 8},
- ss={"black", "white"},
- es={CLASS, SOURCE},
- as={@AT2, @AT2})
- public AT4 getAnnotationArrayValues() {
- MethodDeclaration m = getMethod("getAnnotationArrayValues");
- return m.getAnnotation(AT4.class);
- }
-
- @Test(result="@GetAnno$AT3(value=java.lang.String)")
- @AT3(String.class)
- public AT3 getAnnotationWithClass1() {
- MethodDeclaration m = getMethod("getAnnotationWithClass1");
- return m.getAnnotation(AT3.class);
- }
-
- @Test(result="java.lang.String")
- public TypeMirror getAnnotationWithClass2() {
- AT3 a = getAnnotationWithClass1();
- try {
- Class c = a.value();
- throw new AssertionError();
- } catch (MirroredTypeException e) {
- return e.getTypeMirror();
- }
- }
-
- @Test(result="boolean")
- @AT3(boolean.class)
- public TypeMirror getAnnotationWithPrim() {
- MethodDeclaration m = getMethod("getAnnotationWithPrim");
- AT3 a = m.getAnnotation(AT3.class);
- try {
- Class c = a.value();
- throw new AssertionError();
- } catch (MirroredTypeException e) {
- return e.getTypeMirror();
- }
- }
-
- // 5050782
- @Test(result="null")
- public AT2 getInheritedAnnotation() {
- return thisClassDecl.getAnnotation(AT2.class);
- }
-
- /**
- * Verify that an annotation created by Declaration.getAnnotation()
- * has the same hash code as a like annotation created by core
- * reflection.
- */
- @Test(result="true")
- @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2)
- public boolean getAnnotationHashCode() {
- MethodDeclaration m1 = getMethod("getAnnotationHashCode");
- AT1 a1 = m1.getAnnotation(AT1.class);
- java.lang.reflect.Method m2 = null;
- try {
- m2 = this.getClass().getMethod("getAnnotationHashCode");
- } catch (NoSuchMethodException e) {
- assert false;
- }
- AT1 a2 = m2.getAnnotation(AT1.class);
- return a1.hashCode() == a2.hashCode();
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/InterfaceDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 4993303 5004618 5010746
- * @summary InterfaceDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 InterfaceDecl.java
- * @run main/othervm InterfaceDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-/**
- * Sed Quis custodiet ipsos custodes?
- */
-@AT1
-@AT2
-public class InterfaceDecl extends Tester {
-
- public static void main(String[] args) {
- (new InterfaceDecl()).run();
- }
-
-
- private InterfaceDeclaration iDecl = null; // an interface
- private InterfaceDeclaration nested = null; // a nested interface
-
- protected void init() {
- iDecl = (InterfaceDeclaration) env.getTypeDeclaration("I");
- nested = (InterfaceDeclaration)
- iDecl.getNestedTypes().iterator().next();
- }
-
-
- // Declaration methods
-
- @Test(result="interface")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- iDecl.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitClassDeclaration(ClassDeclaration c) {
- res.add("class");
- }
- public void visitInterfaceDeclaration(InterfaceDeclaration e) {
- res.add("interface");
- }
- public void visitAnnotationTypeDeclaration(
- AnnotationTypeDeclaration e) {
- res.add("annotation type");
- }
- });
- return res;
- }
-
- @Test(result="true")
- boolean equals1() {
- return iDecl.equals(iDecl);
- }
-
- @Test(result="false")
- boolean equals2() {
- return iDecl.equals(nested);
- }
-
- @Test(result="true")
- boolean equals3() {
- return iDecl.equals(env.getTypeDeclaration("I"));
- }
-
-
- @Test(result={"@AT1", "@AT2"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return iDecl.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return iDecl.getDocComment();
- }
-
- // Check that interface has "abstract" modifier, even though it's implict
- // in the source code.
- @Test(result={"abstract"})
- Collection<Modifier> getModifiers1() {
- return iDecl.getModifiers();
- }
-
- // Check that nested interface has "static" modifier, even though
- // it's implicit in the source code and the VM doesn't set that bit.
- @Test(result={"public", "abstract", "static"})
- Collection<Modifier> getModifiers2() {
- return nested.getModifiers();
- }
-
- @Test(result="InterfaceDecl.java")
- String getPosition() {
- return iDecl.getPosition().file().getName();
- }
-
- @Test(result="I")
- String getSimpleName1() {
- return iDecl.getSimpleName();
- }
-
- @Test(result="Nested")
- String getSimpleName2() {
- return nested.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="null")
- TypeDeclaration getDeclaringType1() {
- return iDecl.getDeclaringType();
- }
-
- @Test(result="I<T extends java.lang.Number>")
- TypeDeclaration getDeclaringType2() {
- return nested.getDeclaringType();
- }
-
-
- // TypeDeclaration methods
-
- @Test(result={"i"})
- Collection<FieldDeclaration> getFields() {
- return iDecl.getFields();
- }
-
- @Test(result={"T extends java.lang.Number"})
- Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
- return iDecl.getFormalTypeParameters();
- }
-
- @Test(result={})
- Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
- return nested.getFormalTypeParameters();
- }
-
- // 4993303: verify policy on Object methods being visible
- @Test(result={"m()", "toString()"})
- Collection<? extends MethodDeclaration> getMethods() {
- return nested.getMethods();
- }
-
- @Test(result="I.Nested")
- Collection<TypeDeclaration> getNestedTypes() {
- return iDecl.getNestedTypes();
- }
-
- @Test(result="")
- PackageDeclaration getPackage1() {
- return iDecl.getPackage();
- }
-
- @Test(result="java.util")
- PackageDeclaration getPackage2() {
- InterfaceDeclaration set =
- (InterfaceDeclaration) env.getTypeDeclaration("java.util.Set");
- return set.getPackage();
- }
-
- @Test(result="I")
- String getQualifiedName1() {
- return iDecl.getQualifiedName();
- }
-
- @Test(result="I.Nested")
- String getQualifiedName2() {
- return nested.getQualifiedName();
- }
-
- @Test(result="java.util.Set")
- String getQualifiedName3() {
- InterfaceDeclaration set =
- (InterfaceDeclaration) env.getTypeDeclaration("java.util.Set");
- return set.getQualifiedName();
- }
-
- @Test(result="java.lang.Runnable")
- Collection<InterfaceType> getSuperinterfaces() {
- return iDecl.getSuperinterfaces();
- }
-}
-
-
-// Interfaces used for testing.
-
-/**
- * Sed Quis custodiet ipsos custodes?
- */
-@AT1
-@AT2
-interface I<T extends Number> extends Runnable {
- int i = 6;
- void m1();
- void m2();
- void m2(int j);
-
- interface Nested {
- void m();
- String toString();
- }
-}
-
-@interface AT1 {
-}
-
-@interface AT2 {
-}
--- a/langtools/test/tools/apt/mirror/declaration/MethodDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5010746
- * @summary MethodDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 MethodDecl.java
- * @run main/othervm MethodDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class MethodDecl extends Tester {
-
- public static void main(String[] args) {
- (new MethodDecl()).run();
- }
-
-
- private MethodDeclaration meth1 = null; // a method
- private MethodDeclaration meth2 = null; // another method
-
- protected void init() {
- meth1 = getMethod("m1");
- meth2 = getMethod("m2");
- }
-
-
- // Declaration methods
-
- @Test(result="method")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- meth1.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitExecutableDeclaration(ExecutableDeclaration e) {
- res.add("executable");
- }
- public void visitMethodDeclaration(MethodDeclaration m) {
- res.add("method");
- }
- public void visitAnnotationTypeElementDeclaration(
- AnnotationTypeElementDeclaration a) {
- res.add("anno type element");
- }
- });
- return res;
- }
-
- @Test(result={"@AT1"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return meth1.getAnnotationMirrors();
- }
-
- @Test(result=" Sed Quis custodiet ipsos custodes?\n")
- String getDocComment() {
- return meth1.getDocComment();
- }
-
- @Test(result={"private", "static", "strictfp"})
- Collection<Modifier> getModifiers() {
- return meth1.getModifiers();
- }
-
- // Interface methods are implicitly public and abstract.
- @Test(result={"public", "abstract"})
- Collection<Modifier> getModifiersInterface() {
- for (TypeDeclaration t : thisClassDecl.getNestedTypes()) {
- for (MethodDeclaration m : t.getMethods()) {
- return m.getModifiers();
- }
- }
- throw new AssertionError();
- }
-
- @Test(result="MethodDecl.java")
- String getPosition() {
- return meth1.getPosition().file().getName();
- }
-
- @Test(result="m2")
- String getSimpleName() {
- return meth2.getSimpleName();
- }
-
-
- // MemberDeclaration method
-
- @Test(result="MethodDecl")
- TypeDeclaration getDeclaringType() {
- return meth1.getDeclaringType();
- }
-
-
- // ExecutableDeclaration methods
-
- @Test(result={})
- Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
- return meth1.getFormalTypeParameters();
- }
-
- @Test(result={"T", "N extends java.lang.Number"},
- ordered=true)
- Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
- return meth2.getFormalTypeParameters();
- }
-
- @Test(result={})
- Collection<ParameterDeclaration> getParameters1() {
- return meth1.getParameters();
- }
-
- @Test(result={"N n", "java.lang.String[] ss"},
- ordered=true)
- Collection<ParameterDeclaration> getParameters2() {
- return meth2.getParameters();
- }
-
- @Test(result="true")
- boolean parameterEquals1() {
- ParameterDeclaration p1 =
- getMethod("m3").getParameters().iterator().next();
- ParameterDeclaration p2 =
- getMethod("m3").getParameters().iterator().next();
- return p1.equals(p2);
- }
-
- @Test(result="false")
- boolean parameterEquals2() {
- ParameterDeclaration p1 =
- getMethod("m3").getParameters().iterator().next();
- ParameterDeclaration p2 =
- getMethod("m4").getParameters().iterator().next();
- return p1.equals(p2);
- }
-
- @Test(result="true")
- boolean parameterHashCode() {
- ParameterDeclaration p1 =
- getMethod("m3").getParameters().iterator().next();
- ParameterDeclaration p2 =
- getMethod("m3").getParameters().iterator().next();
- return p1.hashCode() == p2.hashCode();
- }
-
- @Test(result={"java.lang.Throwable"})
- Collection<ReferenceType> getThrownTypes() {
- return meth2.getThrownTypes();
- }
-
- @Test(result="false")
- Boolean isVarArgs1() {
- return meth1.isVarArgs();
- }
-
- @Test(result="true")
- Boolean isVarArgs2() {
- return meth2.isVarArgs();
- }
-
-
- // MethodDeclaration methods
-
- @Test(result="void")
- TypeMirror getReturnType1() {
- return meth1.getReturnType();
- }
-
- @Test(result="N")
- TypeMirror getReturnType2() {
- return meth2.getReturnType();
- }
-
-
- // toString
-
- @Test(result="<T, N extends java.lang.Number> m2(N, java.lang.String...)")
- @Ignore("This is what it would be nice to see.")
- String toStringTest() {
- return meth2.toString();
- }
-
-
- // Declarations used by tests.
-
- /**
- * Sed Quis custodiet ipsos custodes?
- */
- @AT1
- private static strictfp void m1() {
- }
-
- private <T, N extends Number> N m2(N n, String... ss) throws Throwable {
- return null;
- }
-
- private void m3(String s) {
- }
-
- private void m4(String s) {
- }
-
- // A nested interface
- interface I {
- void m();
- }
-}
-
-
-// Annotation type used by tests.
-
-@interface AT1 {
-}
--- a/langtools/test/tools/apt/mirror/declaration/PackageDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5031168
- * @summary PackageDeclaration tests
- * @library ../../lib
- * @compile -source 1.5 PackageDecl.java
- * @run main/othervm PackageDecl
- */
-
-
-import java.io.File;
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import pkg1.pkg2.*;
-
-
-/**
- * Sed Quis custodiet ipsos custodes?
- */
-public class PackageDecl extends Tester {
-
- public PackageDecl() {
- super(System.getProperty("test.src", ".") + File.separator +
- "pkg1" + File.separator + "package-info.java");
- }
-
- public static void main(String[] args) {
- (new PackageDecl()).run();
- }
-
-
- private PackageDeclaration pkg1 = null; // a package
- private PackageDeclaration pkg2 = null; // a subpackage
-
- protected void init() {
- pkg1 = env.getPackage("pkg1");
- pkg2 = env.getPackage("pkg1.pkg2");
- }
-
-
- // Declaration methods
-
- @Test(result="package")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- pkg1.accept(new SimpleDeclarationVisitor() {
- public void visitTypeDeclaration(TypeDeclaration t) {
- res.add("type");
- }
- public void visitPackageDeclaration(PackageDeclaration p) {
- res.add("package");
- }
- });
- return res;
- }
-
- @Test(result={"@pkg1.AnAnnoType"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return pkg1.getAnnotationMirrors();
- }
-
- @Test(result=" Herein lieth the package comment.\n" +
- " A doc comment it be, and wonderous to behold.\n")
- String getDocCommentFromPackageInfoFile() {
- return pkg1.getDocComment();
- }
-
- @Test(result="\nHerein lieth the package comment.\n" +
- "An HTML file it be, and wonderous to behold.\n\n")
- @Ignore("Not yet supported")
- String getDocCommentFromHtmlFile() {
- return pkg2.getDocComment();
- }
-
- @Test(result={})
- Collection<Modifier> getModifiers() {
- return pkg1.getModifiers();
- }
-
- @Test(result="null")
- SourcePosition getPosition() {
- return thisClassDecl.getPackage().getPosition();
- }
-
- @Test(result="package-info.java")
- String getPositionFromPackageInfoFile() {
- return pkg1.getPosition().file().getName();
- }
-
- @Test(result="pkg1/pkg2/package.html")
- @Ignore("Not yet supported")
- String getPositionFromHtmlFile() {
- return pkg2.getPosition().file().getName()
- .replace(File.separatorChar, '/');
- }
-
- @Test(result="pkg1")
- String getSimpleName1() {
- return pkg1.getSimpleName();
- }
-
- @Test(result="pkg2")
- String getSimpleName2() {
- return pkg2.getSimpleName();
- }
-
-
- // PackageDeclaration methods
-
- @Test(result="pkg1.AnAnnoType")
- Collection<AnnotationTypeDeclaration> getAnnotationTypes() {
- return pkg1.getAnnotationTypes();
- }
-
- @Test(result={"pkg1.AClass", "pkg1.AnEnum"})
- Collection<ClassDeclaration> getClasses() {
- return pkg1.getClasses();
- }
-
- @Test(result="pkg1.AnEnum")
- Collection<EnumDeclaration> getEnums() {
- return pkg1.getEnums();
- }
-
- @Test(result={"pkg1.AnInterface", "pkg1.AnAnnoType"})
- Collection<InterfaceDeclaration> getInterfaces() {
- return pkg1.getInterfaces();
- }
-
- @Test(result="pkg1")
- String getQualifiedName1() {
- return pkg1.getQualifiedName();
- }
-
- @Test(result="pkg1.pkg2")
- String getQualifiedName2() {
- return pkg2.getQualifiedName();
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/ParameterDecl.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5031171
- * @summary ParameterDeclaration tests
- * @library ../../lib
- * @run main/othervm ParameterDecl
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class ParameterDecl extends Tester {
-
- public static void main(String[] args) {
- (new ParameterDecl()).run();
- }
-
-
- // Declarations used by tests
-
- @interface AT1 {
- }
-
- @interface AT2 {
- boolean value();
- }
-
- private void m1(@AT1 @AT2(true) final int p1) {
- }
-
- private void m2(int p1) {
- }
-
-
- private ParameterDeclaration p1 = null; // a parameter
-
- protected void init() {
- p1 = getMethod("m1").getParameters().iterator().next();
- }
-
-
- // Declaration methods
-
- @Test(result="param")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- p1.accept(new SimpleDeclarationVisitor() {
- public void visitFieldDeclaration(FieldDeclaration f) {
- res.add("field");
- }
- public void visitParameterDeclaration(ParameterDeclaration p) {
- res.add("param");
- }
- });
- return res;
- }
-
- @Test(result={"@ParameterDecl.AT1", "@ParameterDecl.AT2(true)"})
- Collection<AnnotationMirror> getAnnotationMirrors() {
- return p1.getAnnotationMirrors();
- }
-
- @Test(result={"final"})
- Collection<Modifier> getModifiers() {
- return p1.getModifiers();
- }
-
- @Test(result="ParameterDecl.java")
- String getPosition() {
- return p1.getPosition().file().getName();
- }
-
- @Test(result="p1")
- String getSimpleName() {
- return p1.getSimpleName();
- }
-
-
- // ParameterDeclaration methods
-
- @Test(result="int")
- TypeMirror getType() {
- return p1.getType();
- }
-
-
- // toString, equals
-
- @Test(result="int p1")
- String toStringTest() {
- return p1.toString();
- }
-
- @Test(result="true")
- boolean equalsTest1() {
- ParameterDeclaration p =
- getMethod("m1").getParameters().iterator().next();
- return p1.equals(p);
- }
-
- // Not all p1's are equal.
- @Test(result="false")
- boolean equalsTest2() {
- ParameterDeclaration p2 =
- getMethod("m2").getParameters().iterator().next();
- return p1.equals(p2);
- }
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/AClass.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package pkg1;
-
-public class AClass {
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/AnAnnoType.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-package pkg1;
-
-public @interface AnAnnoType {
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/AnEnum.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-package pkg1;
-
-enum AnEnum {
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/AnInterface.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-
-package pkg1;
-
-public interface AnInterface {
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/package-info.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/**
- * Herein lieth the package comment.
- * A doc comment it be, and wonderous to behold.
- */
-@AnAnnoType
-package pkg1;
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/pkg2/AnInterface.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package pkg1.pkg2;
-
-public interface AnInterface {
-}
--- a/langtools/test/tools/apt/mirror/declaration/pkg1/pkg2/package.html Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Herein lieth the package comment.
-An HTML file it be, and wonderous to behold.
-
-</body>
-</html>
--- a/langtools/test/tools/apt/mirror/type/AnnoTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450
- * @summary AnnotationType tests
- * @library ../../lib
- * @compile -source 1.5 AnnoTyp.java
- * @run main/othervm AnnoTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class AnnoTyp extends Tester {
-
- public static void main(String[] args) {
- (new AnnoTyp()).run();
- }
-
-
- // Declaration used by tests
-
- @interface AT {
- }
-
-
- private AnnotationType at; // an annotation type
-
- @AT
- protected void init() {
- at = getAnno("init", "AnnoTyp.AT").getAnnotationType();
- }
-
-
- // TypeMirror methods
-
- @Test(result="anno type")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- at.accept(new SimpleTypeVisitor() {
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitClassType(ClassType t) {
- res.add("class");
- }
- public void visitInterfaceType(InterfaceType t) {
- res.add("interface");
- }
- public void visitAnnotationType(AnnotationType t) {
- res.add("anno type");
- }
- });
- return res;
- }
-
-
- // AnnotationType method
-
- @Test(result="AnnoTyp.AT")
- AnnotationTypeDeclaration getDeclaration() {
- return at.getDeclaration();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/ArrayTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5009357
- * @summary ArrayType tests
- * @library ../../lib
- * @compile -source 1.5 ArrayTyp.java
- * @run main/othervm ArrayTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class ArrayTyp extends Tester {
-
- public static void main(String[] args) {
- (new ArrayTyp()).run();
- }
-
-
- // Declaration used by tests
-
- private boolean[] bs;
- private String[][] bss;
-
-
- private ArrayType arr; // an array type
- private ArrayType arrarr; // a multi-dimensional array type
-
- protected void init() {
- arr = (ArrayType) getField("bs").getType();
- arrarr = (ArrayType) getField("bss").getType();
- }
-
-
- // TypeMirror methods
-
- @Test(result="array")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- arr.accept(new SimpleTypeVisitor() {
- public void visitTypeMirror(TypeMirror t) {
- res.add("type");
- }
- public void visitArrayType(ArrayType t) {
- res.add("array");
- }
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- });
- return res;
- }
-
- @Test(result="boolean[]")
- String toStringTest() {
- return arr.toString();
- }
-
- @Test(result="java.lang.String[][]")
- String toStringTestMulti() {
- return arrarr.toString();
- }
-
-
- // ArrayType method
-
- @Test(result="boolean")
- TypeMirror getComponentType() {
- return (PrimitiveType) arr.getComponentType();
- }
-
- @Test(result="java.lang.String[]")
- TypeMirror getComponentTypeMulti() {
- return (ArrayType) arrarr.getComponentType();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/ClassTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5009360 5055963
- * @summary ClassType tests
- * @library ../../lib
- * @run main/othervm ClassTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class ClassTyp<T1,T2> extends Tester {
-
- public static void main(String[] args) {
- (new ClassTyp()).run();
- }
-
-
- // Declarations used by tests
-
- static class C1<S> extends AbstractSet<S> implements Set<S> {
- class C2<R> {
- }
-
- static class C3<R> {
- class C4<Q> {
- }
- }
-
- public Iterator<S> iterator() {
- return null;
- }
-
- public int size() {
- return 0;
- }
- }
-
-
- // Generate some class types to test.
- private C1<T1> f0;
- private C1<String> f1;
- private C1 f2;
- private C1.C3<T2> f3;
- private C1<T1>.C2<T2> f4;
- private C1.C2 f5;
- private C1<T1> f6;
- private C1.C3<T2>.C4<T1> f7;
- private static final int NUMTYPES = 8;
-
- // Type mirrors corresponding to the types of the above fields
- private ClassType[] t = new ClassType[NUMTYPES];
-
- // One more type: our own.
- private ClassTyp<T1,T2> me = this;
-
-
- protected void init() {
- for (int i = 0; i < t.length; i++) {
- t[i] = (ClassType) getField("f"+i).getType();
- }
- }
-
-
- // TypeMirror methods
-
- @Test(result="class")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- t[0].accept(new SimpleTypeVisitor() {
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitClassType(ClassType t) {
- res.add("class");
- }
- public void visitInterfaceType(InterfaceType t) {
- res.add("interface");
- }
- });
- return res;
- }
-
- @Test(result="true")
- boolean equals1() {
- return t[0].equals(t[0]);
- }
-
- @Test(result="false")
- boolean equals2() {
- return t[0].equals(t[1]);
- }
-
- // Raw type is not same as type instantiated with unbounded type var.
- @Test(result="false")
- boolean equals3() {
- return t[0].equals(t[2]);
- }
-
- // C1<T1> is same type as C1<T1>
- @Test(result="true")
- boolean equals4() {
- return t[0].equals(t[6]);
- }
-
- @Test(result={
- "ClassTyp.C1<T1>",
- "ClassTyp.C1<java.lang.String>",
- "ClassTyp.C1",
- "ClassTyp.C1.C3<T2>",
- "ClassTyp.C1<T1>.C2<T2>",
- "ClassTyp.C1.C2",
- "ClassTyp.C1<T1>",
- "ClassTyp.C1.C3<T2>.C4<T1>"
- },
- ordered=true)
- Collection<String> toStringTests() {
- Collection<String> res = new ArrayList<String>();
- for (ClassType c : t) {
- res.add(c.toString());
- }
- return res;
- }
-
-
- // DeclaredType methods
-
- @Test(result={"T1"})
- Collection<TypeMirror> getActualTypeArguments1() {
- return t[0].getActualTypeArguments();
- }
-
- @Test(result={})
- Collection<TypeMirror> getActualTypeArguments2() {
- return t[2].getActualTypeArguments();
- }
-
- @Test(result={"T2"})
- Collection<TypeMirror> getActualTypeArguments3() {
- return t[3].getActualTypeArguments();
- }
-
- @Test(result="null")
- DeclaredType getContainingType1() {
- ClassType thisType = (ClassType) getField("me").getType();
- return thisType.getContainingType();
- }
-
- @Test(result="ClassTyp")
- DeclaredType getContainingType2() {
- return t[0].getContainingType();
- }
-
- @Test(result="ClassTyp.C1")
- DeclaredType getContainingType3() {
- return t[3].getContainingType();
- }
-
- @Test(result="ClassTyp.C1<T1>")
- DeclaredType getContainingType4() {
- return t[4].getContainingType();
- }
-
- @Test(result={"java.util.Set<T1>"})
- Collection<InterfaceType> getSuperinterfaces() {
- return t[0].getSuperinterfaces();
- }
-
-
- // ClassType methods
-
- @Test(result="ClassTyp.C1<S>")
- ClassDeclaration getDeclaration1() {
- return t[0].getDeclaration();
- }
-
- @Test(result="ClassTyp.C1.C3<R>")
- ClassDeclaration getDeclaration2() {
- return t[3].getDeclaration();
- }
-
- @Test(result="ClassTyp.C1<S>.C2<R>")
- ClassDeclaration getDeclaration3a() {
- return t[4].getDeclaration();
- }
-
- @Test(result="ClassTyp.C1<S>.C2<R>")
- ClassDeclaration getDeclaration3b() {
- return t[5].getDeclaration();
- }
-
- @Test(result="true")
- boolean getDeclarationEq() {
- return t[0].getDeclaration() == t[6].getDeclaration();
- }
-
- @Test(result="java.util.AbstractSet<T1>")
- ClassType getSuperclass1() {
- return t[0].getSuperclass();
- }
-
- @Test(result="java.lang.Object")
- ClassType getSuperclass2() {
- return t[4].getSuperclass();
- }
-
- @Test(result="null")
- ClassType getSuperclassOfObject() {
- return t[4].getSuperclass().getSuperclass();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/EnumTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450
- * @summary EnumType tests
- * @library ../../lib
- * @compile -source 1.5 EnumTyp.java
- * @run main/othervm EnumTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class EnumTyp extends Tester {
-
- public static void main(String[] args) {
- (new EnumTyp()).run();
- }
-
-
- // Declarations used by tests
-
- enum Suit {
- CIVIL,
- CRIMINAL
- }
-
- private Suit s;
-
-
- private EnumType e; // an enum type
-
- protected void init() {
- e = (EnumType) getField("s").getType();
- }
-
-
- // TypeMirror methods
-
- @Test(result="enum")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- e.accept(new SimpleTypeVisitor() {
- public void visitTypeMirror(TypeMirror t) {
- res.add("type");
- }
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitClassType(ClassType t) {
- res.add("class");
- }
- public void visitEnumType(EnumType t) {
- res.add("enum");
- }
- public void visitInterfaceType(InterfaceType t) {
- res.add("interface");
- }
- });
- return res;
- }
-
-
- // EnumType method
-
- @Test(result="EnumTyp.Suit")
- EnumDeclaration getDeclaration() {
- return e.getDeclaration();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/InterfaceTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5055963
- * @summary InterfaceType tests
- * @library ../../lib
- * @run main/othervm InterfaceTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class InterfaceTyp<T1,T2> extends Tester {
-
- public static void main(String[] args) {
- (new InterfaceTyp()).run();
- }
-
-
- // Declarations used by tests
-
- interface I1<S> extends Set<String> {
- interface I2<R> {
- }
- }
-
-
- // Generate some interface types to test
- private I1<T1> f0;
- private I1<String> f1;
- private I1 f2;
- private I1.I2<String> f3;
- private I1.I2 f4;
- private I1<T1> f5;
- private I3<T1> f6;
- private static final int NUMTYPES = 7;
-
- // Type mirrors corresponding to the types of the above fields
- private InterfaceType[] t = new InterfaceType[NUMTYPES];
-
- protected void init() {
- for (int i = 0; i < t.length; i++) {
- t[i] = (InterfaceType) getField("f"+i).getType();
- }
- }
-
-
- // TypeMirror methods
-
- @Test(result="interface")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- t[0].accept(new SimpleTypeVisitor() {
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitClassType(ClassType t) {
- res.add("class");
- }
- public void visitInterfaceType(InterfaceType t) {
- res.add("interface");
- }
- });
- return res;
- }
-
- @Test(result="true")
- boolean equals1() {
- return t[0].equals(t[0]);
- }
-
- @Test(result="false")
- boolean equals2() {
- return t[0].equals(t[1]);
- }
-
- // Raw type is not same as type instantiated with unbounded type var.
- @Test(result="false")
- boolean equals3() {
- return t[0].equals(t[2]);
- }
-
- // I1<T1> is same type as I1<T1>
- @Test(result="true")
- boolean equals4() {
- return t[0].equals(t[5]);
- }
-
- @Test(result={
- "InterfaceTyp.I1<T1>",
- "InterfaceTyp.I1<java.lang.String>",
- "InterfaceTyp.I1",
- "InterfaceTyp.I1.I2<java.lang.String>",
- "InterfaceTyp.I1.I2",
- "InterfaceTyp.I1<T1>",
- "I3<T1>"
- },
- ordered=true)
- Collection<String> toStringTests() {
- Collection<String> res = new ArrayList<String>();
- for (InterfaceType i : t) {
- res.add(i.toString());
- }
- return res;
- }
-
-
- // DeclaredType methods
-
- @Test(result={"T1"})
- Collection<TypeMirror> getActualTypeArguments1() {
- return t[0].getActualTypeArguments();
- }
-
- @Test(result={})
- Collection<TypeMirror> getActualTypeArguments2() {
- return t[2].getActualTypeArguments();
- }
-
- @Test(result={"java.lang.String"})
- Collection<TypeMirror> getActualTypeArguments3() {
- return t[3].getActualTypeArguments();
- }
-
- @Test(result="InterfaceTyp")
- DeclaredType getContainingType1() {
- return t[0].getContainingType();
- }
-
- @Test(result="InterfaceTyp.I1")
- DeclaredType getContainingType2() {
- return t[3].getContainingType();
- }
-
- @Test(result="null")
- DeclaredType getContainingTypeTopLevel() {
- return t[6].getContainingType();
- }
-
- @Test(result={"java.util.Set<java.lang.String>"})
- Collection<InterfaceType> getSuperinterfaces() {
- return t[0].getSuperinterfaces();
- }
-
-
-
- // InterfaceType method
-
- @Test(result="InterfaceTyp.I1<S>")
- InterfaceDeclaration getDeclaration1() {
- return t[0].getDeclaration();
- }
-
- @Test(result="InterfaceTyp.I1.I2<R>")
- InterfaceDeclaration getDeclaration2a() {
- return t[3].getDeclaration();
- }
-
- @Test(result="InterfaceTyp.I1.I2<R>")
- InterfaceDeclaration getDeclaration2b() {
- return t[4].getDeclaration();
- }
-
- @Test(result="true")
- boolean getDeclarationCaching() {
- return t[0].getDeclaration() == t[5].getDeclaration();
- }
-}
-
-
-// A top-level interface used by tests.
-
-interface I3<T> {
-}
--- a/langtools/test/tools/apt/mirror/type/PrimitiveTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450
- * @summary PrimitiveType tests
- * @library ../../lib
- * @compile -source 1.5 PrimitiveTyp.java
- * @run main/othervm PrimitiveTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class PrimitiveTyp extends Tester {
-
- public static void main(String[] args) {
- (new PrimitiveTyp()).run();
- }
-
-
- // Declaration used by tests
-
- private boolean b;
-
-
- private PrimitiveType prim; // a primitive type
-
- protected void init() {
- prim = (PrimitiveType) getField("b").getType();
- }
-
-
- // TypeMirror methods
-
- @Test(result="primitive")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- prim.accept(new SimpleTypeVisitor() {
- public void visitTypeMirror(TypeMirror t) {
- res.add("type");
- }
- public void visitPrimitiveType(PrimitiveType t) {
- res.add("primitive");
- }
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- });
- return res;
- }
-
- @Test(result="boolean")
- String toStringTest() {
- return prim.toString();
- }
-
-
- // PrimitiveType method
-
- @Test(result="BOOLEAN")
- PrimitiveType.Kind getKind() {
- return prim.getKind();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/TypeVar.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450
- * @summary TypeVariable tests
- * @library ../../lib
- * @compile -source 1.5 TypeVar.java
- * @run main/othervm TypeVar
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class TypeVar<T, S extends Number & Runnable> extends Tester {
-
- public static void main(String[] args) {
- (new TypeVar()).run();
- }
-
-
- // Declarations used by tests
-
- private T t;
- private S s;
-
-
- private TypeVariable tvT; // type variable T
- private TypeVariable tvS; // type variable S
-
- protected void init() {
- tvT = (TypeVariable) getField("t").getType();
- tvS = (TypeVariable) getField("s").getType();
- }
-
-
- // TypeMirror methods
-
- @Test(result="type var")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- tvT.accept(new SimpleTypeVisitor() {
- public void visitTypeMirror(TypeMirror t) {
- res.add("type");
- }
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitTypeVariable(TypeVariable t) {
- res.add("type var");
- }
- });
- return res;
- }
-
- @Test(result="T")
- String toStringTest1() {
- return tvT.toString();
- }
-
- @Test(result="S")
- String toStringTest2() {
- return tvS.toString();
- }
-
-
- // TypeVariable method
-
- @Test(result="S extends java.lang.Number & java.lang.Runnable")
- TypeParameterDeclaration getDeclaration() {
- return tvS.getDeclaration();
- }
-}
--- a/langtools/test/tools/apt/mirror/type/WildcardTyp.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 4853450 5009396 5010636 5031156
- * @summary WildcardType tests
- * @library ../../lib
- * @compile -source 1.5 WildcardTyp.java
- * @run main/othervm WildcardTyp
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class WildcardTyp extends Tester {
-
- public static void main(String[] args) {
- (new WildcardTyp()).run();
- }
-
-
- // Declarations to use for testing
-
- interface G<T> {
- }
-
- interface G1<N extends Number & Runnable> {
- }
-
- interface G2<T extends G2<T>> {
- }
-
- // Some wildcard types to test.
- private G<?> f0; // unbound
- private G<? extends Number> f1; // covariant
- private G<? super Number> f2; // contravariant
- private G<? extends Object> f3; // <sigh>
- private G1<?> f4; // "true" upper bound is an intersection type
- private G2<?> f5; // 'true" upper bound is a recursive F-bound and
- // not expressible
- private static final int NUMTYPES = 6;
-
- // Type mirrors corresponding to the wildcard types of the above fields
- private WildcardType[] t = new WildcardType[NUMTYPES];
-
-
- protected void init() {
- for (int i = 0; i < t.length; i++) {
- DeclaredType type = (DeclaredType) getField("f"+i).getType();
- t[i] = (WildcardType)
- type.getActualTypeArguments().iterator().next();
- }
- }
-
- private WildcardType wildcardFor(String field) {
- DeclaredType d = (DeclaredType) getField(field).getType();
- return (WildcardType) d.getActualTypeArguments().iterator().next();
- }
-
-
- // TypeMirror methods
-
- @Test(result="wild thing")
- Collection<String> accept() {
- final Collection<String> res = new ArrayList<String>();
-
- t[0].accept(new SimpleTypeVisitor() {
- public void visitTypeMirror(TypeMirror t) {
- res.add("type");
- }
- public void visitReferenceType(ReferenceType t) {
- res.add("ref type");
- }
- public void visitWildcardType(WildcardType t) {
- res.add("wild thing");
- }
- });
- return res;
- }
-
- @Test(result={
- "?",
- "? extends java.lang.Number",
- "? super java.lang.Number",
- "? extends java.lang.Object",
- "?",
- "?"
- },
- ordered=true)
- Collection<String> toStringTests() {
- Collection<String> res = new ArrayList<String>();
- for (WildcardType w : t) {
- res.add(w.toString());
- }
- return res;
- }
-
-
- // WildcardType methods
-
- @Test(result={
- "null",
- "null",
- "java.lang.Number",
- "null",
- "null",
- "null"
- },
- ordered=true)
- Collection<ReferenceType> getLowerBounds() {
- Collection<ReferenceType> res = new ArrayList<ReferenceType>();
- for (WildcardType w : t) {
- Collection<ReferenceType> bounds = w.getLowerBounds();
- int num = bounds.size();
- if (num > 1) {
- throw new AssertionError("Bounds abound");
- }
- res.add((num > 0) ? bounds.iterator().next() : null);
- }
- return res;
- }
-
- @Test(result={
- "null",
- "java.lang.Number",
- "null",
- "java.lang.Object",
- "null",
- "null"
- },
- ordered=true)
- Collection<ReferenceType> getUpperBounds() {
- Collection<ReferenceType> res = new ArrayList<ReferenceType>();
- for (WildcardType w : t) {
- Collection<ReferenceType> bounds = w.getUpperBounds();
- int num = bounds.size();
- if (num > 1) {
- throw new AssertionError("Bounds abound");
- }
- res.add((num > 0) ? bounds.iterator().next() : null);
- }
- return res;
- }
-}
--- a/langtools/test/tools/apt/mirror/util/Overrides.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 5037165
- * @summary Test the Declarations.overrides method
- * @library ../../lib
- * @run main/othervm Overrides
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-
-public class Overrides extends Tester {
-
- public static void main(String[] args) {
- (new Overrides()).run();
- }
-
-
- // Declarations used by tests
-
- static class A {
- void m1(int i) {}; // does not override itself
- void m2(int i) {};
- static void m3(int i) {};
- }
-
- static class B extends A {
- void m1(int j) {}; // overrides A.m1
- void m1(String i) {}; // does not override A.m1
- void m4(int i) {}; // does not override A.m1
- }
-
- static class C extends B {
- void m1(int i) {}; // overrides A.m1 and B.m1
- void m2(int i) {}; // overrides A.m2
- }
-
- static class D extends A {
- static void m3(int i) {}; // does not override A.m3
- }
-
- static class E {
- void m1(int i) {}; // does not override A.m1
- }
-
-
-
- private Declarations decls;
-
- private TypeDeclaration A;
- private TypeDeclaration B;
- private TypeDeclaration C;
- private TypeDeclaration D;
- private TypeDeclaration E;
- private MethodDeclaration Am1;
- private MethodDeclaration Am2;
- private MethodDeclaration Am3;
- private MethodDeclaration Bm1;
- private MethodDeclaration Bm1b;
- private MethodDeclaration Bm4;
- private MethodDeclaration Cm1;
- private MethodDeclaration Cm2;
- private MethodDeclaration Dm3;
- private MethodDeclaration Em1;
-
- protected void init() {
- decls = env.getDeclarationUtils();
-
- A = env.getTypeDeclaration("Overrides.A");
- B = env.getTypeDeclaration("Overrides.B");
- C = env.getTypeDeclaration("Overrides.C");
- D = env.getTypeDeclaration("Overrides.D");
- E = env.getTypeDeclaration("Overrides.E");
-
- Am1 = getMethod(A, "m1", "i");
- Am2 = getMethod(A, "m2", "i");
- Am3 = getMethod(A, "m3", "i");
- Bm1 = getMethod(B, "m1", "j");
- Bm1b = getMethod(B, "m1", "i");
- Bm4 = getMethod(B, "m4", "i");
- Cm1 = getMethod(C, "m1", "i");
- Cm2 = getMethod(C, "m2", "i");
- Dm3 = getMethod(D, "m3", "i");
- Em1 = getMethod(E, "m1", "i");
- }
-
- private MethodDeclaration getMethod(TypeDeclaration t,
- String methodName, String paramName) {
- for (MethodDeclaration m : t.getMethods()) {
- if (methodName.equals(m.getSimpleName()) &&
- paramName.equals(m.getParameters().iterator().next()
- .getSimpleName())) {
- return m;
- }
- }
- throw new AssertionError();
- }
-
-
- // Declarations methods
-
- @Test(result={"false",
- "true",
- "false",
- "false",
- "true",
- "true",
- "true",
- "false",
- "false"},
- ordered=true)
- List<Boolean> overrides() {
- return Arrays.asList(
- decls.overrides(Am1, Am1),
- decls.overrides(Bm1, Am1),
- decls.overrides(Bm1b,Am1),
- decls.overrides(Bm4, Am1),
- decls.overrides(Cm1, Am1),
- decls.overrides(Cm1, Bm1),
- decls.overrides(Cm2, Am2),
- decls.overrides(Dm3, Am3),
- decls.overrides(Em1, Am1));
- }
-}
--- a/langtools/test/tools/apt/mirror/util/TypeCreation.java Thu Feb 16 13:01:46 2012 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- * @test
- * @bug 5033381
- * @summary Test the type creation methods in Types.
- * @library ../../lib
- * @run main/othervm TypeCreation
- */
-
-
-import java.util.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import static com.sun.mirror.type.PrimitiveType.Kind.*;
-
-
-public class TypeCreation extends Tester {
-
- public static void main(String[] args) {
- (new TypeCreation()).run();
- }
-
-
- // Declarations used by tests
-
- class A {
- }
-
- class O<T> {
- class I<S> {
- }
- }
-
-
- private Types types;
-
- private TypeDeclaration A;
- private TypeDeclaration O;
- private TypeDeclaration I;
-
- private DeclaredType AType;
-
- protected void init() {
- types = env.getTypeUtils();
- A = env.getTypeDeclaration("TypeCreation.A");
- O = env.getTypeDeclaration("TypeCreation.O");
- I = env.getTypeDeclaration("TypeCreation.O.I");
-
- AType = types.getDeclaredType(A);
- }
-
-
- @Test(result="boolean")
- PrimitiveType getPrimitiveType() {
- return types.getPrimitiveType(BOOLEAN);
- }
-
- @Test(result="void")
- VoidType getVoidType() {
- return types.getVoidType();
- }
-
- @Test(result="boolean[]")
- ArrayType getArrayType1() {
- return types.getArrayType(
- types.getPrimitiveType(BOOLEAN));
- }
-
- @Test(result="TypeCreation.A[]")
- ArrayType getArrayType2() {
- return types.getArrayType(AType);
- }
-
- @Test(result="? extends TypeCreation.A")
- WildcardType getWildcardType() {
- Collection<ReferenceType> uppers = new ArrayList<ReferenceType>();
- Collection<ReferenceType> downers = new ArrayList<ReferenceType>();
- uppers.add(AType);
- return types.getWildcardType(uppers, downers);
- }
-
- @Test(result="TypeCreation.O<java.lang.String>")
- DeclaredType getDeclaredType1() {
- TypeDeclaration stringDecl = env.getTypeDeclaration("java.lang.String");
- DeclaredType stringType = types.getDeclaredType(stringDecl);
- return types.getDeclaredType(O, stringType);
- }
-
- @Test(result="TypeCreation.O<java.lang.String>.I<java.lang.Number>")
- DeclaredType getDeclaredType2() {
- TypeDeclaration numDecl = env.getTypeDeclaration("java.lang.Number");
- DeclaredType numType = types.getDeclaredType(numDecl);
- DeclaredType OType = getDeclaredType1();
- return types.getDeclaredType(OType, I, numType);
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/7142086/T7142086.java Sat Feb 18 16:12:28 2012 -0800
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7142086
+ * @summary performance problem in Check.checkOverrideClashes(...)
+ * @run main/timeout=10 T7142086
+ */
+
+import com.sun.source.util.JavacTask;
+import java.net.URI;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Locale;
+import javax.tools.Diagnostic;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+public class T7142086 {
+
+ final static int N_METHODS = 1000;
+
+ static class TestClass extends SimpleJavaFileObject {
+
+ String methTemplate = "abstract void m(A#N p);";
+ String classTemplate = "abstract class Test { #M }";
+
+ String source;
+
+ public TestClass() {
+ super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+ StringBuilder buf = new StringBuilder();
+ for (int i = 0 ; i < N_METHODS ; i++) {
+ buf.append(methTemplate.replace("#N", String.valueOf(i)));
+ buf.append("\n");
+ }
+ source = classTemplate.replace("#M", buf.toString());
+ }
+
+ @Override
+ public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+ return source;
+ }
+ }
+
+ static class AnSource extends SimpleJavaFileObject {
+
+ String classTemplate = "abstract class A#N { }";
+
+ String source;
+
+ public AnSource(int n) {
+ super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+ source = classTemplate.replace("#N", String.valueOf(n));
+ }
+
+ @Override
+ public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+ return source;
+ }
+ }
+
+ public static void main(String... args) throws Exception {
+ ArrayList<JavaFileObject> sources = new ArrayList<>();
+ for (int i = 0 ; i < N_METHODS ; i++) {
+ sources.add(new AnSource(i));
+ }
+ sources.add(new TestClass());
+ new T7142086().run(sources);
+ }
+
+ void run(List<JavaFileObject> sources) throws Exception {
+ DiagnosticChecker dc = new DiagnosticChecker();
+ JavaCompiler comp = ToolProvider.getSystemJavaCompiler();
+ StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null);
+ JavacTask ct = (JavacTask)comp.getTask(null, fm, dc,
+ null, null, sources);
+ ct.analyze();
+ }
+
+ static class DiagnosticChecker implements javax.tools.DiagnosticListener<JavaFileObject> {
+
+ boolean errorFound;
+
+ public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+ if (diagnostic.getKind() == Diagnostic.Kind.ERROR) {
+ throw new AssertionError("unexpected diagnostic: " + diagnostic.getMessage(Locale.getDefault()));
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/T7142672/AnnoProcessor.java Sat Feb 18 16:12:28 2012 -0800
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.Set;
+import javax.annotation.processing.*;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+
+@SupportedAnnotationTypes("Anno")
+public class AnnoProcessor extends AbstractProcessor {
+ @Override
+ public SourceVersion getSupportedSourceVersion() {
+ return SourceVersion.latest();
+ }
+
+ @Override
+ public boolean process(Set<? extends TypeElement> set, RoundEnvironment re) {
+ System.out.println("RUNNING...");
+ if(set.isEmpty()) {
+ return false;
+ }
+ return false;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/T7142672/Bug.java Sat Feb 18 16:12:28 2012 -0800
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7142672
+ * @summary Problems with the value passed to the 'classes' param of JavaCompiler.CompilationTask.getTask(...)
+ * @author holmlund
+ * @compile AnnoProcessor.java Bug.java Test3.java
+ * @run main Bug Test2.java
+ * @run main Bug Test2.foo
+ * @run main Bug Test3.java
+ */
+import java.io.*;
+import java.util.*;
+import javax.tools.*;
+
+// Each run should output the 'could not find class file' message, and not throw an AssertError.
+public class Bug {
+ public static void main(String... arg) throws Throwable {
+ String name = arg[0];
+ final String expectedMsg = "error: Could not find class file for '" + name + "'.";
+ JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
+ JavaCompiler.CompilationTask task2;
+ StringWriter sw = new StringWriter();
+ final PrintWriter pw = new PrintWriter(sw);
+
+
+ DiagnosticListener<? super javax.tools.JavaFileObject> dl =
+ new DiagnosticListener<javax.tools.JavaFileObject>() {
+ public void report(Diagnostic message) {
+ pw.print("Diagnostic:\n"+ message.toString()+"\n");
+ if (!message.toString().equals(expectedMsg)){
+ System.err.println("Diagnostic:\n"+ message.toString()+"\n");
+ System.err.println("--Failed: Unexpected diagnostic");
+ System.exit(1);
+ }
+ }
+ };
+
+ StandardJavaFileManager sjfm = javac.getStandardFileManager(dl,null,null);
+
+ List<String> opts = new ArrayList<String>();
+ opts.add("-proc:only");
+ opts.add("-processor");
+ opts.add("AnnoProcessor");
+
+ boolean xxx;
+
+ System.err.println("\n-- " + name);
+ task2 = javac.getTask(pw, sjfm, dl, opts, Arrays.asList(name), null);
+ xxx = task2.call();
+
+ String out = sw.toString();
+ System.err.println(out);
+ if (out.contains("Assert")) {
+ System.err.println("--Failed: Assertion failure");
+ System.exit(1);
+ }
+ if (!out.contains(expectedMsg)) {
+ System.err.println("--Failed: Expected diagnostic not found");
+ System.exit(1);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/T7142672/Test2.java Sat Feb 18 16:12:28 2012 -0800
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+class Test2 {
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/T7142672/Test3.java Sat Feb 18 16:12:28 2012 -0800
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+class Test3 {
+}