8056061: Mark implementations of public interfaces with an annotation

Adding @DefinedBy annotation to mark methods that implement public API methods; annotating the methods; adding a coding rules analyzer to enforce all such methods are annotated.

Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com>
Reviewed-by: jjg, mcimadamore, jfranck
This commit is contained in:
Jan Lahoda 2014-08-27 07:44:00 +02:00
parent afd18d4cd4
commit c9406c88c4
64 changed files with 1307 additions and 414 deletions

View file

@ -30,6 +30,8 @@ import java.util.ResourceBundle;
import com.sun.source.util.JavacTask;
import com.sun.tools.javac.api.BasicJavacTask;
import com.sun.tools.javac.code.Symtab;
import com.sun.tools.javac.model.JavacElements;
import com.sun.tools.javac.model.JavacTypes;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.TreeScanner;
import com.sun.tools.javac.util.Context;
@ -49,6 +51,8 @@ public abstract class AbstractCodingRulesAnalyzer {
private final Options options;
protected final Messages messages;
protected final Symtab syms;
protected final JavacElements elements;
protected final JavacTypes types;
protected TreeScanner treeVisitor;
protected Kind eventKind;
@ -61,6 +65,8 @@ public abstract class AbstractCodingRulesAnalyzer {
diags = JCDiagnostic.Factory.instance(context);
messages = new Messages();
syms = Symtab.instance(context);
elements = JavacElements.instance(context);
types = JavacTypes.instance(context);
}
protected class Messages {