diff -r 024ed9c9ed13 -r 83c19f00452c langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java Sun Aug 17 15:52:32 2014 +0100
@@ -0,0 +1,276 @@
+/*
+ * 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
+ * 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.javac.tree;
+
+import com.sun.source.doctree.AttributeTree.ValueKind;
+import com.sun.source.doctree.DocTree.Kind;
+
+import com.sun.tools.javac.parser.Tokens.Comment;
+import com.sun.tools.javac.tree.DCTree.*;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.DiagnosticSource;
+import com.sun.tools.javac.util.JCDiagnostic;
+import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+import com.sun.tools.javac.util.List;
+import com.sun.tools.javac.util.Name;
+import com.sun.tools.javac.util.Position;
+
+/**
+ *
+ *
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.
+ */
+public class DocTreeMaker {
+
+ /** The context key for the tree factory. */
+ protected static final Context.Key treeMakerKey = new Context.Key<>();
+
+ /** Get the TreeMaker instance. */
+ public static DocTreeMaker instance(Context context) {
+ DocTreeMaker instance = context.get(treeMakerKey);
+ if (instance == null)
+ instance = new DocTreeMaker(context);
+ return instance;
+ }
+
+ /** The position at which subsequent trees will be created.
+ */
+ public int pos = Position.NOPOS;
+
+ /** Access to diag factory for ErroneousTrees. */
+ private final JCDiagnostic.Factory diags;
+
+ /** Create a tree maker with NOPOS as initial position.
+ */
+ protected DocTreeMaker(Context context) {
+ context.put(treeMakerKey, this);
+ diags = JCDiagnostic.Factory.instance(context);
+ this.pos = Position.NOPOS;
+ }
+
+ /** Reassign current position.
+ */
+ public DocTreeMaker at(int pos) {
+ this.pos = pos;
+ return this;
+ }
+
+ /** Reassign current position.
+ */
+ public DocTreeMaker at(DiagnosticPosition pos) {
+ this.pos = (pos == null ? Position.NOPOS : pos.getStartPosition());
+ return this;
+ }
+
+ public DCAttribute Attribute(Name name, ValueKind vkind, List value) {
+ DCAttribute tree = new DCAttribute(name, vkind, value);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCAuthor Author(List name) {
+ DCAuthor tree = new DCAuthor(name);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCLiteral Code(DCText text) {
+ DCLiteral tree = new DCLiteral(Kind.CODE, text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCComment Comment(String text) {
+ DCComment tree = new DCComment(text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCDeprecated Deprecated(List text) {
+ DCDeprecated tree = new DCDeprecated(text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCDocComment DocComment(Comment comment, List firstSentence, List body, List tags) {
+ DCDocComment tree = new DCDocComment(comment, firstSentence, body, tags);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCDocRoot DocRoot() {
+ DCDocRoot tree = new DCDocRoot();
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCEndElement EndElement(Name name) {
+ DCEndElement tree = new DCEndElement(name);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCEntity Entity(Name name) {
+ DCEntity tree = new DCEntity(name);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCErroneous Erroneous(String text, DiagnosticSource diagSource, String code, Object... args) {
+ DCErroneous tree = new DCErroneous(text, diags, diagSource, code, args);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCThrows Exception(DCReference name, List description) {
+ DCThrows tree = new DCThrows(Kind.EXCEPTION, name, description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCIdentifier Identifier(Name name) {
+ DCIdentifier tree = new DCIdentifier(name);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCInheritDoc InheritDoc() {
+ DCInheritDoc tree = new DCInheritDoc();
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCLink Link(DCReference ref, List label) {
+ DCLink tree = new DCLink(Kind.LINK, ref, label);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCLink LinkPlain(DCReference ref, List label) {
+ DCLink tree = new DCLink(Kind.LINK_PLAIN, ref, label);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCLiteral Literal(DCText text) {
+ DCLiteral tree = new DCLiteral(Kind.LITERAL, text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCParam Param(boolean isTypeParameter, DCIdentifier name, List description) {
+ DCParam tree = new DCParam(isTypeParameter, name, description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCReference Reference(String signature,
+ JCTree qualExpr, Name member, List paramTypes) {
+ DCReference tree = new DCReference(signature, qualExpr, member, paramTypes);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCReturn Return(List description) {
+ DCReturn tree = new DCReturn(description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCSee See(List reference) {
+ DCSee tree = new DCSee(reference);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCSerial Serial(List description) {
+ DCSerial tree = new DCSerial(description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCSerialData SerialData(List description) {
+ DCSerialData tree = new DCSerialData(description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCSerialField SerialField(DCIdentifier name, DCReference type, List description) {
+ DCSerialField tree = new DCSerialField(name, type, description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCSince Since(List text) {
+ DCSince tree = new DCSince(text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCStartElement StartElement(Name name, List attrs, boolean selfClosing) {
+ DCStartElement tree = new DCStartElement(name, attrs, selfClosing);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCText Text(String text) {
+ DCText tree = new DCText(text);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCThrows Throws(DCReference name, List description) {
+ DCThrows tree = new DCThrows(Kind.THROWS, name, description);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCUnknownBlockTag UnknownBlockTag(Name name, List content) {
+ DCUnknownBlockTag tree = new DCUnknownBlockTag(name, content);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCUnknownInlineTag UnknownInlineTag(Name name, List content) {
+ DCUnknownInlineTag tree = new DCUnknownInlineTag(name, content);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCValue Value(DCReference ref) {
+ DCValue tree = new DCValue(ref);
+ tree.pos = pos;
+ return tree;
+ }
+
+ public DCVersion Version(List text) {
+ DCVersion tree = new DCVersion(text);
+ tree.pos = pos;
+ return tree;
+ }
+}