# HG changeset patch
# User lana
# Date 1330995888 28800
# Node ID cc866298b20ce4177e580a1f882a13869089b7d8
# Parent 0cfc6f845c5beb1366335b6222d1f8d6df5e58ec# Parent 568a53eb0e22f42c158fa71d8918ae7662ba372d
Merge
diff -r 0cfc6f845c5b -r cc866298b20c langtools/src/share/classes/com/sun/source/tree/MemberReferenceTree.java
--- a/langtools/src/share/classes/com/sun/source/tree/MemberReferenceTree.java Thu Mar 01 12:23:33 2012 -0800
+++ b/langtools/src/share/classes/com/sun/source/tree/MemberReferenceTree.java Mon Mar 05 17:04:48 2012 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -37,7 +37,7 @@
* expression # [ identifier | new ]
*
*
- * @see JSR 292
+ * @since 1.8
*/
public interface MemberReferenceTree extends ExpressionTree {
diff -r 0cfc6f845c5b -r cc866298b20c langtools/src/share/classes/com/sun/source/util/JavacTask.java
--- a/langtools/src/share/classes/com/sun/source/util/JavacTask.java Thu Mar 01 12:23:33 2012 -0800
+++ b/langtools/src/share/classes/com/sun/source/util/JavacTask.java Mon Mar 05 17:04:48 2012 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -25,9 +25,9 @@
package com.sun.source.util;
-import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.tree.Tree;
import java.io.IOException;
+
+import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
@@ -35,6 +35,12 @@
import javax.tools.JavaCompiler.CompilationTask;
import javax.tools.JavaFileObject;
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.Tree;
+import com.sun.tools.javac.api.BasicJavacTask;
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
+import com.sun.tools.javac.util.Context;
+
/**
* Provides access to functionality specific to the JDK Java Compiler, javac.
*
@@ -45,10 +51,29 @@
public abstract class JavacTask implements CompilationTask {
/**
+ * Get the {@code JavacTask} for a {@code ProcessingEnvironment}.
+ * If the compiler is being invoked using a
+ * {@link javax.tools.JavaCompiler.CompilationTask CompilationTask},
+ * then that task will be returned.
+ * @param processingEnvironment
+ * @return the {@code JavacTask} for a {@code ProcessingEnvironment}
+ * @since 1.8
+ */
+ public static JavacTask instance(ProcessingEnvironment processingEnvironment) {
+ if (!processingEnvironment.getClass().getName().equals(
+ "com.sun.tools.javac.processing.JavacProcessingEnvironment"))
+ throw new IllegalArgumentException();
+ Context c = ((JavacProcessingEnvironment) processingEnvironment).getContext();
+ JavacTask t = c.get(JavacTask.class);
+ return (t != null) ? t : new BasicJavacTask(c, true);
+ }
+
+ /**
* Parse the specified files returning a list of abstract syntax trees.
*
* @return a list of abstract syntax trees
* @throws IOException if an unhandled I/O error occurred in the compiler.
+ * @throws IllegalStateException if the operation cannot be performed at this time.
*/
public abstract Iterable extends CompilationUnitTree> parse()
throws IOException;
@@ -58,6 +83,7 @@
*
* @return a list of elements that were analyzed
* @throws IOException if an unhandled I/O error occurred in the compiler.
+ * @throws IllegalStateException if the operation cannot be performed at this time.
*/
public abstract Iterable extends Element> analyze() throws IOException;
@@ -66,17 +92,51 @@
*
* @return a list of files that were generated
* @throws IOException if an unhandled I/O error occurred in the compiler.
+ * @throws IllegalStateException if the operation cannot be performed at this time.
*/
public abstract Iterable extends JavaFileObject> generate() throws IOException;
/**
- * The specified listener will receive events describing the progress of
- * this compilation task.
+ * The specified listener will receive notification of events
+ * describing the progress of this compilation task.
+ *
+ * If another listener is receiving notifications as a result of a prior
+ * call of this method, then that listener will no longer receive notifications.
+ *
+ * Informally, this method is equivalent to calling {@code removeTaskListener} for
+ * any listener that has been previously set, followed by {@code addTaskListener}
+ * for the new listener.
+ *
+ * @throws IllegalStateException if the specified listener has already been added.
*/
public abstract void setTaskListener(TaskListener taskListener);
/**
+ * The specified listener will receive notification of events
+ * describing the progress of this compilation task.
+ *
+ * This method may be called at any time before or during the compilation.
+ *
+ * @throws IllegalStateException if the specified listener has already been added.
+ * @since 1.8
+ */
+ public abstract void addTaskListener(TaskListener taskListener);
+
+ /**
+ * The specified listener will no longer receive notification of events
+ * describing the progress of this compilation task.
+ *
+ * This method may be called at any time before or during the compilation.
+ *
+ * @since 1.8
+ */
+ public abstract void removeTaskListener(TaskListener taskListener);
+
+ /**
* Get a type mirror of the tree node determined by the specified path.
+ * This method has been superceded by methods on
+ * {@link com.sun.source.util.Trees Trees}.
+ * @see com.sun.source.util.Trees#getTypeMirror
*/
public abstract TypeMirror getTypeMirror(Iterable extends Tree> path);
/**
diff -r 0cfc6f845c5b -r cc866298b20c langtools/src/share/classes/com/sun/tools/doclets/package.html
--- a/langtools/src/share/classes/com/sun/tools/doclets/package.html Thu Mar 01 12:23:33 2012 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/package.html Mon Mar 05 17:04:48 2012 -0800
@@ -1,5 +1,5 @@