Merge
This commit is contained in:
commit
c8adadc51c
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2007, 2011, 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
|
||||
@ -277,7 +277,7 @@
|
||||
<!-- transform the output to a simple html -->
|
||||
<xslt in="${dist.checkstyle.dir}/checkstyle_report.xml"
|
||||
out="${dist.checkstyle.dir}/checkstyle_report.html"
|
||||
style="${checkstyle.home}/contrib/checkstyle-simple.xsl"/>
|
||||
style="${checkstyle.home}/contrib/checkstyle-simple.xsl"/>
|
||||
<!-- transform the output to a very simple emacs friendly text file -->
|
||||
<xslt in="${dist.checkstyle.dir}/checkstyle_report.xml"
|
||||
out="${dist.checkstyle.dir}/checkstyle_report.tmp"
|
||||
@ -297,9 +297,9 @@
|
||||
<target name="checkstyle-ide" depends="checkstyle">
|
||||
<concat>
|
||||
<fileset file="${dist.checkstyle.dir}/checkstyle_report.emacs.txt"/>
|
||||
</concat>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="findbugs" depends="-def-findbugs,build-all-tools">
|
||||
<property name="findbugs.reportLevel" value="medium"/>
|
||||
<mkdir dir="${dist.findbugs.dir}"/>
|
||||
@ -368,7 +368,7 @@
|
||||
executable="${dist.bin.dir}/javac"
|
||||
srcdir="test/tools/javac/diags"
|
||||
destdir="${build.dir}/diag-examples/classes"
|
||||
includes="ArgTypeCompilerFactory.java,Example.java,FileManager.java,HTMLWriter.java,RunExamples.java"
|
||||
includes="ArgTypeCompilerFactory.java,Example.java,FileManager.java,HTMLWriter.java,RunExamples.java,DocCommentProcessor.java"
|
||||
sourcepath=""
|
||||
classpath="${dist.lib.dir}/javac.jar"
|
||||
includeAntRuntime="no"
|
||||
@ -381,6 +381,7 @@
|
||||
dir="test/tools/javac/diags"
|
||||
classpath="${build.dir}/diag-examples/classes;${dist.lib.dir}/javac.jar"
|
||||
classname="RunExamples">
|
||||
<jvmarg value="-Dtest.classes=${build.dir}/diag-examples/classes"/>
|
||||
<arg value="-examples"/>
|
||||
<arg value="examples"/>
|
||||
<arg value="-o"/>
|
||||
@ -695,7 +696,7 @@
|
||||
<target name="-check-checkstyle.home" depends="-def-check">
|
||||
<check name="checkstyle" property="checkstyle.home" marker="${checkstyle.name.version}.jar"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-check-jtreg.home" depends="-def-check">
|
||||
<check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
|
||||
</target>
|
||||
@ -1005,7 +1006,7 @@
|
||||
</taskdef>
|
||||
<property name="checkstyle.defined" value="true"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-def-findbugs" unless="findbugs.defined"
|
||||
depends="-check-findbugs.home,-check-target.java.home">
|
||||
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
|
||||
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
import javax.lang.model.element.Name;
|
||||
|
||||
/**
|
||||
* A tree node for an attribute in an HTML element.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface AttributeTree extends DocTree {
|
||||
enum ValueKind { EMPTY, UNQUOTED, SINGLE, DOUBLE };
|
||||
|
||||
Name getName();
|
||||
ValueKind getValueKind();
|
||||
List<? extends DocTree> getValue();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @author block tag.
|
||||
*
|
||||
* <p>
|
||||
* @author name-text.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface AuthorTree extends BlockTagTree {
|
||||
List<? extends DocTree> getName();
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node used as the base class for the different types of
|
||||
* block tags.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface BlockTagTree extends DocTree {
|
||||
String getTagName();
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* An embedded HTML comment.
|
||||
*
|
||||
* <p>
|
||||
* {@literal <!-- text --> }
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface CommentTree extends DocTree {
|
||||
String getBody();
|
||||
}
|
||||
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @deprecated block tag.
|
||||
*
|
||||
* <p>
|
||||
* @deprecated deprecated text.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface DeprecatedTree extends BlockTagTree {
|
||||
List<? extends DocTree> getBody();
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The top level representation of a documentation comment.
|
||||
*
|
||||
* <p>
|
||||
* first-sentence body block-tags
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface DocCommentTree extends DocTree {
|
||||
List<? extends DocTree> getFirstSentence();
|
||||
List<? extends DocTree> getBody();
|
||||
List<? extends DocTree> getBlockTags();
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node for an @docroot inline tag.
|
||||
*
|
||||
* <p>
|
||||
* {@docroot}
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface DocRootTree extends InlineTagTree { }
|
254
langtools/src/share/classes/com/sun/source/doctree/DocTree.java
Normal file
254
langtools/src/share/classes/com/sun/source/doctree/DocTree.java
Normal file
@ -0,0 +1,254 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* Common interface for all nodes in a documentation syntax tree.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface DocTree {
|
||||
enum Kind {
|
||||
/**
|
||||
* Used for instances of {@link AttributeTree}
|
||||
* representing an HTML attribute.
|
||||
*/
|
||||
ATTRIBUTE,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link AuthorTree}
|
||||
* representing an @author tag.
|
||||
*/
|
||||
AUTHOR("author"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link LiteralTree}
|
||||
* representing an @code tag.
|
||||
*/
|
||||
CODE("code"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link CommentTree}
|
||||
* representing an HTML comment.
|
||||
*/
|
||||
COMMENT,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link DeprecatedTree}
|
||||
* representing an @deprecated tag.
|
||||
*/
|
||||
DEPRECATED("deprecated"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link DocCommentTree}
|
||||
* representing a complete doc comment.
|
||||
*/
|
||||
DOC_COMMENT,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link DocRootTree}
|
||||
* representing an @docRoot tag.
|
||||
*/
|
||||
DOC_ROOT("docRoot"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link EndElementTree}
|
||||
* representing the end of an HTML element.
|
||||
*/
|
||||
END_ELEMENT,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link EntityTree}
|
||||
* representing an HTML entity.
|
||||
*/
|
||||
ENTITY,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ErroneousTree}
|
||||
* representing some invalid text.
|
||||
*/
|
||||
ERRONEOUS,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ThrowsTree}
|
||||
* representing an @exception tag.
|
||||
*/
|
||||
EXCEPTION("exception"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link IdentifierTree}
|
||||
* representing an identifier.
|
||||
*/
|
||||
IDENTIFIER,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link InheritDocTree}
|
||||
* representing an @inheritDoc tag.
|
||||
*/
|
||||
INHERIT_DOC("inheritDoc"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link LinkTree}
|
||||
* representing an @link tag.
|
||||
*/
|
||||
LINK("link"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link LinkTree}
|
||||
* representing an @linkplain tag.
|
||||
*/
|
||||
LINK_PLAIN("linkplain"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link LiteralTree}
|
||||
* representing an @literal tag.
|
||||
*/
|
||||
LITERAL("literal"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ParamTree}
|
||||
* representing an @param tag.
|
||||
*/
|
||||
PARAM("param"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ReferenceTree}
|
||||
* representing a reference to a element in the
|
||||
* Java programming language.
|
||||
*/
|
||||
REFERENCE,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ReturnTree}
|
||||
* representing an @return tag.
|
||||
*/
|
||||
RETURN("return"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link SeeTree}
|
||||
* representing an @see tag.
|
||||
*/
|
||||
SEE("see"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link SerialTree}
|
||||
* representing an @serial tag.
|
||||
*/
|
||||
SERIAL("serial"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link SerialDataTree}
|
||||
* representing an @serialData tag.
|
||||
*/
|
||||
SERIAL_DATA("serialData"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link SerialFieldTree}
|
||||
* representing an @serialField tag.
|
||||
*/
|
||||
SERIAL_FIELD("serialField"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link SinceTree}
|
||||
* representing an @since tag.
|
||||
*/
|
||||
SINCE("since"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link EndElementTree}
|
||||
* representing the start of an HTML element.
|
||||
*/
|
||||
START_ELEMENT,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link TextTree}
|
||||
* representing some documentation text.
|
||||
*/
|
||||
TEXT,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ThrowsTree}
|
||||
* representing an @throws tag.
|
||||
*/
|
||||
THROWS("throws"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link UnknownBlockTagTree}
|
||||
* representing an unknown block tag.
|
||||
*/
|
||||
UNKNOWN_BLOCK_TAG,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link UnknownInlineTagTree}
|
||||
* representing an unknown inline tag.
|
||||
*/
|
||||
UNKNOWN_INLINE_TAG,
|
||||
|
||||
/**
|
||||
* Used for instances of {@link ValueTree}
|
||||
* representing an @value tag.
|
||||
*/
|
||||
VALUE("value"),
|
||||
|
||||
/**
|
||||
* Used for instances of {@link VersionTree}
|
||||
* representing an @version tag.
|
||||
*/
|
||||
VERSION("version"),
|
||||
|
||||
/**
|
||||
* An implementation-reserved node. This is the not the node
|
||||
* you are looking for.
|
||||
*/
|
||||
OTHER;
|
||||
|
||||
public final String tagName;
|
||||
|
||||
Kind() {
|
||||
tagName = null;
|
||||
}
|
||||
|
||||
Kind(String tagName) {
|
||||
this.tagName = tagName;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the kind of this tree.
|
||||
*
|
||||
* @return the kind of this tree.
|
||||
*/
|
||||
Kind getKind();
|
||||
|
||||
/**
|
||||
* Accept method used to implement the visitor pattern. The
|
||||
* visitor pattern is used to implement operations on trees.
|
||||
*
|
||||
* @param <R> result type of this operation.
|
||||
* @param <D> type of additional data.
|
||||
*/
|
||||
<R, D> R accept(DocTreeVisitor<R,D> visitor, D data);
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
|
||||
/**
|
||||
* A visitor of trees, in the style of the visitor design pattern.
|
||||
* Classes implementing this interface are used to operate
|
||||
* on a tree when the kind of tree is unknown at compile time.
|
||||
* When a visitor is passed to an tree's {@link DocTree#accept
|
||||
* accept} method, the <tt>visit<i>XYZ</i></tt> method most applicable
|
||||
* to that tree is invoked.
|
||||
*
|
||||
* <p> Classes implementing this interface may or may not throw a
|
||||
* {@code NullPointerException} if the additional parameter {@code p}
|
||||
* is {@code null}; see documentation of the implementing class for
|
||||
* details.
|
||||
*
|
||||
* <p> <b>WARNING:</b> It is possible that methods will be added to
|
||||
* this interface to accommodate new, currently unknown, doc comment
|
||||
* structures added to future versions of the Java™ programming
|
||||
* language. Therefore, visitor classes directly implementing this
|
||||
* interface may be source incompatible with future versions of the
|
||||
* platform.
|
||||
*
|
||||
* @param <R> the return type of this visitor's methods. Use {@link
|
||||
* Void} for visitors that do not need to return results.
|
||||
* @param <P> the type of the additional parameter to this visitor's
|
||||
* methods. Use {@code Void} for visitors that do not need an
|
||||
* additional parameter.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface DocTreeVisitor<R,P> {
|
||||
R visitAttribute(AttributeTree node, P p);
|
||||
R visitAuthor(AuthorTree node, P p);
|
||||
R visitComment(CommentTree node, P p);
|
||||
R visitDeprecated(DeprecatedTree node, P p);
|
||||
R visitDocComment(DocCommentTree node, P p);
|
||||
R visitDocRoot(DocRootTree node, P p);
|
||||
R visitEndElement(EndElementTree node, P p);
|
||||
R visitEntity(EntityTree node, P p);
|
||||
R visitErroneous(ErroneousTree node, P p);
|
||||
R visitIdentifier(IdentifierTree node, P p);
|
||||
R visitInheritDoc(InheritDocTree node, P p);
|
||||
R visitLink(LinkTree node, P p);
|
||||
R visitLiteral(LiteralTree node, P p);
|
||||
R visitParam(ParamTree node, P p);
|
||||
R visitReference(ReferenceTree node, P p);
|
||||
R visitReturn(ReturnTree node, P p);
|
||||
R visitSee(SeeTree node, P p);
|
||||
R visitSerial(SerialTree node, P p);
|
||||
R visitSerialData(SerialDataTree node, P p);
|
||||
R visitSerialField(SerialFieldTree node, P p);
|
||||
R visitSince(SinceTree node, P p);
|
||||
R visitStartElement(StartElementTree node, P p);
|
||||
R visitText(TextTree node, P p);
|
||||
R visitThrows(ThrowsTree node, P p);
|
||||
R visitUnknownBlockTag(UnknownBlockTagTree node, P p);
|
||||
R visitUnknownInlineTag(UnknownInlineTagTree node, P p);
|
||||
R visitValue(ValueTree node, P p);
|
||||
R visitVersion(VersionTree node, P p);
|
||||
R visitOther(DocTree node, P p);
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import javax.lang.model.element.Name;
|
||||
|
||||
/**
|
||||
* A tree node for the end of an HTML element.
|
||||
*
|
||||
* <p>
|
||||
* </ name >
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface EndElementTree extends DocTree {
|
||||
Name getName();
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import javax.lang.model.element.Name;
|
||||
|
||||
|
||||
/**
|
||||
* A tree node for an HTML entity.
|
||||
*
|
||||
* <p>
|
||||
* & name ;
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface EntityTree extends DocTree {
|
||||
Name getName();
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import javax.tools.Diagnostic;
|
||||
import javax.tools.JavaFileObject;
|
||||
|
||||
/**
|
||||
* A tree node to stand in for a malformed text
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ErroneousTree extends TextTree {
|
||||
/**
|
||||
* Gets a diagnostic object giving details about
|
||||
* the reason the body text is in error.
|
||||
*
|
||||
* @return a diagnostic
|
||||
*/
|
||||
Diagnostic<JavaFileObject> getDiagnostic();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import javax.lang.model.element.Name;
|
||||
|
||||
/**
|
||||
* An identifier in a documentation comment.
|
||||
*
|
||||
* <p>
|
||||
* name
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface IdentifierTree extends DocTree {
|
||||
Name getName();
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
*
|
||||
* A tree node for an @inheritDoc inline tag.
|
||||
*
|
||||
* <p>
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface InheritDocTree extends InlineTagTree { }
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node used as the base class for the different types of
|
||||
* inline tags.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface InlineTagTree extends DocTree {
|
||||
String getTagName();
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @link or @linkplain inline tag.
|
||||
*
|
||||
* <p>
|
||||
* {@link reference label} <br>
|
||||
* {@linkplain reference label }
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface LinkTree extends InlineTagTree {
|
||||
ReferenceTree getReference();
|
||||
List<? extends DocTree> getLabel();
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
*
|
||||
* A tree node for an @literal or @code inline tag.
|
||||
*
|
||||
* <p>
|
||||
* {@literal text}
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface LiteralTree extends InlineTagTree {
|
||||
TextTree getBody();
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @param block tag.
|
||||
*
|
||||
* <p>
|
||||
* @param parameter-name description
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ParamTree extends BlockTagTree {
|
||||
boolean isTypeParameter();
|
||||
IdentifierTree getName();
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node to a reference to a Java language element.
|
||||
*
|
||||
* <p>
|
||||
* package.class#field
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ReferenceTree extends DocTree {
|
||||
String getSignature();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @return block tag.
|
||||
*
|
||||
* <p>
|
||||
* @return description
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ReturnTree extends BlockTagTree {
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* A tree node for an @see block tag.
|
||||
*
|
||||
* <p>
|
||||
* @see "string" <br>
|
||||
* @see <a href="URL#value"> label </a> <br>
|
||||
* @see reference
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface SeeTree extends BlockTagTree {
|
||||
List<? extends DocTree> getReference();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @serialData block tag.
|
||||
*
|
||||
* <p>
|
||||
* @serialData data-description
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface SerialDataTree extends BlockTagTree {
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @serialData block tag.
|
||||
*
|
||||
* <p>
|
||||
* @serialField field-name field-type field-description
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface SerialFieldTree extends BlockTagTree {
|
||||
IdentifierTree getName();
|
||||
ReferenceTree getType();
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @serial block tag.
|
||||
*
|
||||
* <p>
|
||||
* @serial field-description | include | exclude
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface SerialTree extends BlockTagTree {
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an @since block tag.
|
||||
*
|
||||
* <p>
|
||||
* @since since-text
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface SinceTree extends BlockTagTree {
|
||||
List<? extends DocTree> getBody();
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
import javax.lang.model.element.Name;
|
||||
|
||||
/**
|
||||
* A tree node for the start of an HTML element.
|
||||
*
|
||||
* <p>
|
||||
* < name [attributes] [/]>
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface StartElementTree extends DocTree {
|
||||
Name getName();
|
||||
List<? extends DocTree> getAttributes();
|
||||
boolean isSelfClosing();
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node for plain text.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface TextTree extends DocTree {
|
||||
String getBody();
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* A tree node for an @exception or @throws block tag.
|
||||
* @exception is a synonym for @throws.
|
||||
*
|
||||
* <p>
|
||||
* @exception class-name description <br>
|
||||
* @throws class-name description
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ThrowsTree extends BlockTagTree {
|
||||
ReferenceTree getExceptionName();
|
||||
List<? extends DocTree> getDescription();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an unrecognized inline tag.
|
||||
*
|
||||
* <p>
|
||||
* @name content
|
||||
*
|
||||
* @since 1.8
|
||||
*
|
||||
*/
|
||||
public interface UnknownBlockTagTree extends BlockTagTree {
|
||||
List<? extends DocTree> getContent();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A tree node for an unrecognized inline tag.
|
||||
*
|
||||
* <p>
|
||||
* {@name content}
|
||||
*
|
||||
* @since 1.8
|
||||
*
|
||||
*/
|
||||
public interface UnknownInlineTagTree extends InlineTagTree {
|
||||
List<? extends DocTree> getContent();
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
/**
|
||||
* A tree node for an @value inline tag.
|
||||
*
|
||||
* <p>
|
||||
* { @value reference }
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface ValueTree extends InlineTagTree {
|
||||
ReferenceTree getReference();
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* 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.source.doctree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* A tree node for an @version block tag.
|
||||
*
|
||||
* <p>
|
||||
* @version version-text
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface VersionTree extends BlockTagTree {
|
||||
List<? extends DocTree> getBody();
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Provides interfaces to represent documentation comments as abstract syntax
|
||||
* trees (AST).
|
||||
*
|
||||
* @author Jonathan Gibbons
|
||||
* @since 1.8
|
||||
* @see <a href="http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags">http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags</a>
|
||||
*/
|
||||
package com.sun.source.doctree;
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, 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
|
||||
@ -610,7 +610,7 @@ public interface Tree {
|
||||
* visitor pattern is used to implement operations on trees.
|
||||
*
|
||||
* @param <R> result type of this operation.
|
||||
* @param <D> type of additonal data.
|
||||
* @param <D> type of additional data.
|
||||
*/
|
||||
<R,D> R accept(TreeVisitor<R,D> visitor, D data);
|
||||
}
|
||||
|
@ -0,0 +1,273 @@
|
||||
/*
|
||||
* 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.source.util;
|
||||
|
||||
import com.sun.source.doctree.*;
|
||||
|
||||
|
||||
/**
|
||||
* A TreeVisitor that visits all the child tree nodes.
|
||||
* To visit nodes of a particular type, just override the
|
||||
* corresponding visitXYZ method.
|
||||
* Inside your method, call super.visitXYZ to visit descendant
|
||||
* nodes.
|
||||
*
|
||||
* <p>The default implementation of the visitXYZ methods will determine
|
||||
* a result as follows:
|
||||
* <ul>
|
||||
* <li>If the node being visited has no children, the result will be null.
|
||||
* <li>If the node being visited has one child, the result will be the
|
||||
* result of calling {@code scan} on that child. The child may be a simple node
|
||||
* or itself a list of nodes.
|
||||
* <li> If the node being visited has more than one child, the result will
|
||||
* be determined by calling {@code scan} each child in turn, and then combining the
|
||||
* result of each scan after the first with the cumulative result
|
||||
* so far, as determined by the {@link #reduce} method. Each child may be either
|
||||
* a simple node of a list of nodes. The default behavior of the {@code reduce}
|
||||
* method is such that the result of the visitXYZ method will be the result of
|
||||
* the last child scanned.
|
||||
* </ul>
|
||||
*
|
||||
* <p>Here is an example to count the number of erroneous nodes in a tree:
|
||||
* <pre>
|
||||
* class CountErrors extends DocTreeScanner<Integer,Void> {
|
||||
* {@literal @}Override
|
||||
* public Integer visitErroneous(ErroneousTree node, Void p) {
|
||||
* return 1;
|
||||
* }
|
||||
* {@literal @}Override
|
||||
* public Integer reduce(Integer r1, Integer r2) {
|
||||
* return (r1 == null ? 0 : r1) + (r2 == null ? 0 : r2);
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public class DocTreeScanner<R,P> implements DocTreeVisitor<R,P> {
|
||||
|
||||
/**
|
||||
* Scan a single node.
|
||||
*/
|
||||
public R scan(DocTree node, P p) {
|
||||
return (node == null) ? null : node.accept(this, p);
|
||||
}
|
||||
|
||||
private R scanAndReduce(DocTree node, P p, R r) {
|
||||
return reduce(scan(node, p), r);
|
||||
}
|
||||
|
||||
/**
|
||||
* Scan a list of nodes.
|
||||
*/
|
||||
public R scan(Iterable<? extends DocTree> nodes, P p) {
|
||||
R r = null;
|
||||
if (nodes != null) {
|
||||
boolean first = true;
|
||||
for (DocTree node : nodes) {
|
||||
r = (first ? scan(node, p) : scanAndReduce(node, p, r));
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
private R scanAndReduce(Iterable<? extends DocTree> nodes, P p, R r) {
|
||||
return reduce(scan(nodes, p), r);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reduces two results into a combined result.
|
||||
* The default implementation is to return the first parameter.
|
||||
* The general contract of the method is that it may take any action whatsoever.
|
||||
*/
|
||||
public R reduce(R r1, R r2) {
|
||||
return r1;
|
||||
}
|
||||
|
||||
|
||||
/* ***************************************************************************
|
||||
* Visitor methods
|
||||
****************************************************************************/
|
||||
|
||||
@Override
|
||||
public R visitAttribute(AttributeTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitAuthor(AuthorTree node, P p) {
|
||||
return scan(node.getName(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitComment(CommentTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitDeprecated(DeprecatedTree node, P p) {
|
||||
return scan(node.getBody(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitDocComment(DocCommentTree node, P p) {
|
||||
R r = scan(node.getFirstSentence(), p);
|
||||
r = scanAndReduce(node.getBody(), p, r);
|
||||
r = scanAndReduce(node.getBlockTags(), p, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitDocRoot(DocRootTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitEndElement(EndElementTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitEntity(EntityTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitErroneous(ErroneousTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitIdentifier(IdentifierTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitInheritDoc(InheritDocTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitLink(LinkTree node, P p) {
|
||||
R r = scan(node.getReference(), p);
|
||||
r = scanAndReduce(node.getLabel(), p, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitLiteral(LiteralTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitParam(ParamTree node, P p) {
|
||||
R r = scan(node.getName(), p);
|
||||
r = scanAndReduce(node.getDescription(), p, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitReference(ReferenceTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitReturn(ReturnTree node, P p) {
|
||||
return scan(node.getDescription(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitSee(SeeTree node, P p) {
|
||||
return scan(node.getReference(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitSerial(SerialTree node, P p) {
|
||||
return scan(node.getDescription(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitSerialData(SerialDataTree node, P p) {
|
||||
return scan(node.getDescription(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitSerialField(SerialFieldTree node, P p) {
|
||||
R r = scan(node.getName(), p);
|
||||
r = scanAndReduce(node.getType(), p, r);
|
||||
r = scanAndReduce(node.getDescription(), p, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitSince(SinceTree node, P p) {
|
||||
return scan(node.getBody(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitStartElement(StartElementTree node, P p) {
|
||||
return scan(node.getAttributes(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitText(TextTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitThrows(ThrowsTree node, P p) {
|
||||
R r = scan(node.getExceptionName(), p);
|
||||
r = scanAndReduce(node.getDescription(), p, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitUnknownBlockTag(UnknownBlockTagTree node, P p) {
|
||||
return scan(node.getContent(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitUnknownInlineTag(UnknownInlineTagTree node, P p) {
|
||||
return scan(node.getContent(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitValue(ValueTree node, P p) {
|
||||
return scan(node.getReference(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitVersion(VersionTree node, P p) {
|
||||
return scan(node.getBody(), p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R visitOther(DocTree node, P p) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* 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.source.util;
|
||||
|
||||
import javax.annotation.processing.ProcessingEnvironment;
|
||||
import javax.lang.model.element.Element;
|
||||
import javax.tools.JavaCompiler.CompilationTask;
|
||||
|
||||
import com.sun.source.doctree.DocCommentTree;
|
||||
import com.sun.source.doctree.ReferenceTree;
|
||||
import javax.tools.Diagnostic;
|
||||
|
||||
/**
|
||||
* Provides access to syntax trees for doc comments.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public abstract class DocTrees extends Trees {
|
||||
/**
|
||||
* Gets a DocTrees object for a given CompilationTask.
|
||||
* @param task the compilation task for which to get the Trees object
|
||||
* @throws IllegalArgumentException if the task does not support the Trees API.
|
||||
*/
|
||||
public static DocTrees instance(CompilationTask task) {
|
||||
if (!task.getClass().getName().equals("com.sun.tools.javac.api.JavacTaskImpl"))
|
||||
throw new IllegalArgumentException();
|
||||
return (DocTrees) getJavacTrees(CompilationTask.class, task);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a DocTrees object for a given ProcessingEnvironment.
|
||||
* @param env the processing environment for which to get the Trees object
|
||||
* @throws IllegalArgumentException if the env does not support the Trees API.
|
||||
*/
|
||||
public static DocTrees instance(ProcessingEnvironment env) {
|
||||
if (!env.getClass().getName().equals("com.sun.tools.javac.processing.JavacProcessingEnvironment"))
|
||||
throw new IllegalArgumentException();
|
||||
return (DocTrees) getJavacTrees(ProcessingEnvironment.class, env);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the doc comment tree, if any, for the Tree node identified by a given TreePath.
|
||||
* Returns null if no doc comment was found.
|
||||
*/
|
||||
public abstract DocCommentTree getDocCommentTree(TreePath path);
|
||||
|
||||
/**
|
||||
* Gets the language model element referred to by a ReferenceTree that
|
||||
* appears on the declaration identified by the given path.
|
||||
*/
|
||||
public abstract Element getElement(TreePath path, ReferenceTree reference);
|
||||
|
||||
/**
|
||||
* Prints a message of the specified kind at the location of the
|
||||
* tree within the provided compilation unit
|
||||
*
|
||||
* @param kind the kind of message
|
||||
* @param msg the message, or an empty string if none
|
||||
* @param t the tree to use as a position hint
|
||||
* @param root the compilation unit that contains tree
|
||||
*/
|
||||
public abstract void printMessage(Diagnostic.Kind kind, CharSequence msg,
|
||||
com.sun.source.doctree.DocTree t,
|
||||
com.sun.source.doctree.DocCommentTree c,
|
||||
com.sun.source.tree.CompilationUnitTree root);
|
||||
}
|
64
langtools/src/share/classes/com/sun/source/util/Plugin.java
Normal file
64
langtools/src/share/classes/com/sun/source/util/Plugin.java
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* 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
|
||||
* 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.source.util;
|
||||
|
||||
import java.util.ServiceLoader;
|
||||
import javax.tools.StandardLocation;
|
||||
|
||||
/**
|
||||
* The interface for a javac plug-in.
|
||||
*
|
||||
* <p>The javac plug-in mechanism allows a user to specify one or more plug-ins
|
||||
* on the javac command line, to be started soon after the compilation
|
||||
* has begun. Plug-ins are identified by a user-friendly name. Each plug-in that
|
||||
* is started will be passed an array of strings, which may be used to
|
||||
* provide the plug-in with values for any desired options or other arguments.
|
||||
*
|
||||
* <p>Plug-ins are located via a {@link ServiceLoader},
|
||||
* using the same class path as annotation processors (i.e.
|
||||
* {@link StandardLocation#PROCESSOR_PATH PROCESSOR_PATH} or
|
||||
* {@code -processorpath}).
|
||||
*
|
||||
* <p>It is expected that a typical plug-in will simply register a
|
||||
* {@link TaskListener} to be informed of events during the execution
|
||||
* of the compilation, and that the rest of the work will be done
|
||||
* by the task listener.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface Plugin {
|
||||
/**
|
||||
* Get the user-friendly name of this plug-in.
|
||||
* @return the user-friendly name of the plug-in
|
||||
*/
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* Invoke the plug-in for a given compilation task.
|
||||
* @param task The compilation task that has just been started
|
||||
* @param args Arguments, if any, for the plug-in
|
||||
*/
|
||||
void call(JavacTask task, String... args);
|
||||
}
|
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* 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
|
||||
* 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.source.util;
|
||||
|
||||
import com.sun.source.doctree.*;
|
||||
|
||||
/**
|
||||
* A simple visitor for tree nodes.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
public class SimpleDocTreeVisitor<R,P> implements DocTreeVisitor<R, P> {
|
||||
protected final R DEFAULT_VALUE;
|
||||
|
||||
protected SimpleDocTreeVisitor() {
|
||||
DEFAULT_VALUE = null;
|
||||
}
|
||||
|
||||
protected SimpleDocTreeVisitor(R defaultValue) {
|
||||
DEFAULT_VALUE = defaultValue;
|
||||
}
|
||||
|
||||
protected R defaultAction(DocTree node, P p) {
|
||||
return DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
public final R visit(DocTree node, P p) {
|
||||
return (node == null) ? null : node.accept(this, p);
|
||||
}
|
||||
|
||||
public final R visit(Iterable<? extends DocTree> nodes, P p) {
|
||||
R r = null;
|
||||
if (nodes != null) {
|
||||
for (DocTree node : nodes)
|
||||
r = visit(node, p);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
public R visitAttribute(AttributeTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitAuthor(AuthorTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitComment(CommentTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitDeprecated(DeprecatedTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitDocComment(DocCommentTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitDocRoot(DocRootTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitEndElement(EndElementTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitEntity(EntityTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitErroneous(ErroneousTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitIdentifier(IdentifierTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitInheritDoc(InheritDocTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitLink(LinkTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitLiteral(LiteralTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitParam(ParamTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitReference(ReferenceTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitReturn(ReturnTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitSee(SeeTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitSerial(SerialTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitSerialData(SerialDataTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitSerialField(SerialFieldTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitSince(SinceTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitStartElement(StartElementTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitText(TextTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitThrows(ThrowsTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitUnknownBlockTag(UnknownBlockTagTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitUnknownInlineTag(UnknownInlineTagTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitValue(ValueTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitVersion(VersionTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
public R visitOther(DocTree node, P p) {
|
||||
return defaultAction(node, p);
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, 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
|
||||
@ -26,6 +26,7 @@
|
||||
package com.sun.source.util;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import javax.annotation.processing.ProcessingEnvironment;
|
||||
import javax.lang.model.element.AnnotationMirror;
|
||||
import javax.lang.model.element.AnnotationValue;
|
||||
@ -57,7 +58,9 @@ public abstract class Trees {
|
||||
* @throws IllegalArgumentException if the task does not support the Trees API.
|
||||
*/
|
||||
public static Trees instance(CompilationTask task) {
|
||||
if (!task.getClass().getName().equals("com.sun.tools.javac.api.JavacTaskImpl"))
|
||||
String taskClassName = task.getClass().getName();
|
||||
if (!taskClassName.equals("com.sun.tools.javac.api.JavacTaskImpl")
|
||||
&& !taskClassName.equals("com.sun.tools.javac.api.BasicJavacTask"))
|
||||
throw new IllegalArgumentException();
|
||||
return getJavacTrees(CompilationTask.class, task);
|
||||
}
|
||||
@ -73,7 +76,7 @@ public abstract class Trees {
|
||||
return getJavacTrees(ProcessingEnvironment.class, env);
|
||||
}
|
||||
|
||||
private static Trees getJavacTrees(Class<?> argType, Object arg) {
|
||||
static Trees getJavacTrees(Class<?> argType, Object arg) {
|
||||
try {
|
||||
ClassLoader cl = arg.getClass().getClassLoader();
|
||||
Class<?> c = Class.forName("com.sun.tools.javac.api.JavacTrees", false, cl);
|
||||
@ -168,6 +171,7 @@ public abstract class Trees {
|
||||
/**
|
||||
* Gets the doc comment, if any, for the Tree node identified by a given TreePath.
|
||||
* Returns null if no doc comment was found.
|
||||
* @see DocTrees#getDocCommentTree(TreePath)
|
||||
*/
|
||||
public abstract String getDocComment(TreePath path);
|
||||
|
||||
|
@ -45,7 +45,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
public abstract class AbstractExecutableMemberWriter extends AbstractMemberWriter {
|
||||
|
||||
public AbstractExecutableMemberWriter(SubWriterHolderWriter writer,
|
||||
ClassDoc classdoc) {
|
||||
ClassDoc classdoc) {
|
||||
super(writer, classdoc);
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
* @return the display length required to write this information.
|
||||
*/
|
||||
protected int addTypeParameters(ExecutableMemberDoc member, Content htmltree) {
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_MEMBER_TYPE_PARAMS, member, false);
|
||||
String typeParameters = writer.getTypeParameterLinks(linkInfo);
|
||||
if (linkInfo.displayLength > 0) {
|
||||
@ -129,8 +129,8 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
boolean isVarArg, Content tree) {
|
||||
if (param.type() != null) {
|
||||
Content link = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_EXECUTABLE_MEMBER_PARAM, param.type(),
|
||||
isVarArg)));
|
||||
configuration, LinkInfoImpl.CONTEXT_EXECUTABLE_MEMBER_PARAM,
|
||||
param.type(), isVarArg)));
|
||||
tree.addContent(link);
|
||||
}
|
||||
if(param.name().length() > 0) {
|
||||
@ -161,7 +161,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
htmltree.addContent("(");
|
||||
Parameter[] params = member.parameters();
|
||||
String indent = makeSpace(writer.displayLength);
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
//add spaces to offset indentation changes caused by link.
|
||||
indent+= makeSpace(member.name().length());
|
||||
}
|
||||
@ -212,7 +212,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
protected void addExceptions(ExecutableMemberDoc member, Content htmltree) {
|
||||
Type[] exceptions = member.thrownExceptionTypes();
|
||||
if(exceptions.length > 0) {
|
||||
LinkInfoImpl memberTypeParam = new LinkInfoImpl(
|
||||
LinkInfoImpl memberTypeParam = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_MEMBER, member, false);
|
||||
int retlen = getReturnTypeLength(member);
|
||||
writer.getTypeParameterLinks(memberTypeParam);
|
||||
@ -224,7 +224,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
htmltree.addContent(indent);
|
||||
htmltree.addContent("throws ");
|
||||
indent += " ";
|
||||
Content link = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
Content link = new RawHtml(writer.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_MEMBER, exceptions[0])));
|
||||
htmltree.addContent(link);
|
||||
for(int i = 1; i < exceptions.length; i++) {
|
||||
@ -232,7 +232,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
htmltree.addContent(DocletConstants.NL);
|
||||
htmltree.addContent(indent);
|
||||
Content exceptionLink = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_MEMBER, exceptions[i])));
|
||||
configuration, LinkInfoImpl.CONTEXT_MEMBER, exceptions[i])));
|
||||
htmltree.addContent(exceptionLink);
|
||||
}
|
||||
}
|
||||
@ -246,7 +246,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
return rettype.typeName().length() +
|
||||
rettype.dimension().length();
|
||||
} else {
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_MEMBER, rettype);
|
||||
writer.getLink(linkInfo);
|
||||
return linkInfo.displayLength;
|
||||
|
@ -140,7 +140,8 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void addDescription(ClassDoc cd, Content dlTree) {
|
||||
Content link = new RawHtml(
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_INDEX, cd, true)));
|
||||
getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_INDEX, cd, true)));
|
||||
Content dt = HtmlTree.DT(link);
|
||||
dt.addContent(" - ");
|
||||
addClassInfo(cd, dt);
|
||||
|
@ -49,15 +49,20 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*/
|
||||
public abstract class AbstractMemberWriter {
|
||||
|
||||
protected boolean printedSummaryHeader = false;
|
||||
protected final ConfigurationImpl configuration;
|
||||
protected final SubWriterHolderWriter writer;
|
||||
protected final ClassDoc classdoc;
|
||||
protected Map<String,Integer> typeMap = new LinkedHashMap<String,Integer>();
|
||||
protected Set<MethodTypes> methodTypes = EnumSet.noneOf(MethodTypes.class);
|
||||
private int methodTypesOr = 0;
|
||||
public final boolean nodepr;
|
||||
|
||||
public AbstractMemberWriter(SubWriterHolderWriter writer,
|
||||
ClassDoc classdoc) {
|
||||
protected boolean printedSummaryHeader = false;
|
||||
|
||||
public AbstractMemberWriter(SubWriterHolderWriter writer, ClassDoc classdoc) {
|
||||
this.configuration = writer.configuration;
|
||||
this.writer = writer;
|
||||
this.nodepr = configuration().nodeprecated;
|
||||
this.nodepr = configuration.nodeprecated;
|
||||
this.classdoc = classdoc;
|
||||
}
|
||||
|
||||
@ -281,11 +286,11 @@ public abstract class AbstractMemberWriter {
|
||||
code.addContent(new HtmlTree(HtmlTag.BR));
|
||||
}
|
||||
code.addContent(new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(
|
||||
writer.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_SUMMARY_RETURN_TYPE, type))));
|
||||
} else {
|
||||
code.addContent(new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(
|
||||
writer.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_SUMMARY_RETURN_TYPE, type))));
|
||||
}
|
||||
|
||||
@ -305,7 +310,7 @@ public abstract class AbstractMemberWriter {
|
||||
} else if (member.isPrivate()) {
|
||||
code.addContent("private ");
|
||||
} else if (!member.isPublic()) { // Package private
|
||||
code.addContent(configuration().getText("doclet.Package_private"));
|
||||
code.addContent(configuration.getText("doclet.Package_private"));
|
||||
code.addContent(" ");
|
||||
}
|
||||
if (member.isMethod() && ((MethodDoc)member).isAbstract()) {
|
||||
@ -389,7 +394,7 @@ public abstract class AbstractMemberWriter {
|
||||
String tableSummary, String[] tableHeader, Content contentTree) {
|
||||
if (deprmembers.size() > 0) {
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
|
||||
writer.getTableCaption(configuration().getText(headingKey)));
|
||||
writer.getTableCaption(configuration.getText(headingKey)));
|
||||
table.addContent(writer.getSummaryTableHeader(tableHeader, "col"));
|
||||
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
||||
for (int i = 0; i < deprmembers.size(); i++) {
|
||||
@ -507,8 +512,8 @@ public abstract class AbstractMemberWriter {
|
||||
}
|
||||
|
||||
protected void serialWarning(SourcePosition pos, String key, String a1, String a2) {
|
||||
if (configuration().serialwarn) {
|
||||
ConfigurationImpl.getInstance().getDocletSpecificMsg().warning(pos, key, a1, a2);
|
||||
if (configuration.serialwarn) {
|
||||
configuration.getDocletSpecificMsg().warning(pos, key, a1, a2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -516,21 +521,17 @@ public abstract class AbstractMemberWriter {
|
||||
return nodepr? Util.excludeDeprecatedMembers(members): members;
|
||||
}
|
||||
|
||||
public ConfigurationImpl configuration() {
|
||||
return writer.configuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the member summary for the given class.
|
||||
*
|
||||
* @param classDoc the class that is being documented
|
||||
* @param member the member being documented
|
||||
* @param firstSentenceTags the first sentence tags to be added to the summary
|
||||
* @param tableTree the content tree to which the documentation will be added
|
||||
* @param counter the counter for determing style for the table row
|
||||
* @param tableContents the list of contents to which the documentation will be added
|
||||
* @param counter the counter for determining id and style for the table row
|
||||
*/
|
||||
public void addMemberSummary(ClassDoc classDoc, ProgramElementDoc member,
|
||||
Tag[] firstSentenceTags, Content tableTree, int counter) {
|
||||
Tag[] firstSentenceTags, List<Content> tableContents, int counter) {
|
||||
HtmlTree tdSummaryType = new HtmlTree(HtmlTag.TD);
|
||||
tdSummaryType.addStyle(HtmlStyle.colFirst);
|
||||
writer.addSummaryType(this, member, tdSummaryType);
|
||||
@ -540,11 +541,46 @@ public abstract class AbstractMemberWriter {
|
||||
writer.addSummaryLinkComment(this, member, firstSentenceTags, tdSummary);
|
||||
HtmlTree tr = HtmlTree.TR(tdSummaryType);
|
||||
tr.addContent(tdSummary);
|
||||
if (member instanceof MethodDoc && !member.isAnnotationTypeElement()) {
|
||||
int methodType = (member.isStatic()) ? MethodTypes.STATIC.value() :
|
||||
MethodTypes.INSTANCE.value();
|
||||
methodType = (classdoc.isInterface() || ((MethodDoc)member).isAbstract()) ?
|
||||
methodType | MethodTypes.ABSTRACT.value() :
|
||||
methodType | MethodTypes.CONCRETE.value();
|
||||
if (Util.isDeprecated(member) || Util.isDeprecated(classdoc)) {
|
||||
methodType = methodType | MethodTypes.DEPRECATED.value();
|
||||
}
|
||||
methodTypesOr = methodTypesOr | methodType;
|
||||
String tableId = "i" + counter;
|
||||
typeMap.put(tableId, methodType);
|
||||
tr.addAttr(HtmlAttr.ID, tableId);
|
||||
}
|
||||
if (counter%2 == 0)
|
||||
tr.addStyle(HtmlStyle.altColor);
|
||||
else
|
||||
tr.addStyle(HtmlStyle.rowColor);
|
||||
tableTree.addContent(tr);
|
||||
tableContents.add(tr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the method types set and return true if the method summary table
|
||||
* needs to show tabs.
|
||||
*
|
||||
* @return true if the table should show tabs
|
||||
*/
|
||||
public boolean showTabs() {
|
||||
int value;
|
||||
for (MethodTypes type : EnumSet.allOf(MethodTypes.class)) {
|
||||
value = type.value();
|
||||
if ((value & methodTypesOr) == value) {
|
||||
methodTypes.add(type);
|
||||
}
|
||||
}
|
||||
boolean showTabs = methodTypes.size() > 1;
|
||||
if (showTabs) {
|
||||
methodTypes.add(MethodTypes.ALL);
|
||||
}
|
||||
return showTabs;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -597,10 +633,11 @@ public abstract class AbstractMemberWriter {
|
||||
* Get the summary table tree for the given class.
|
||||
*
|
||||
* @param classDoc the class for which the summary table is generated
|
||||
* @param tableContents list of contents to be displayed in the summary table
|
||||
* @return a content tree for the summary table
|
||||
*/
|
||||
public Content getSummaryTableTree(ClassDoc classDoc) {
|
||||
return writer.getSummaryTableTree(this, classDoc);
|
||||
public Content getSummaryTableTree(ClassDoc classDoc, List<Content> tableContents) {
|
||||
return writer.getSummaryTableTree(this, classDoc, tableContents, showTabs());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -138,7 +138,7 @@ public abstract class AbstractTreeWriter extends HtmlDocletWriter {
|
||||
for (int i = 0; i < interfaces.length; i++) {
|
||||
if (parent != interfaces[i]) {
|
||||
if (! (interfaces[i].isPublic() ||
|
||||
Util.isLinkable(interfaces[i], configuration()))) {
|
||||
Util.isLinkable(interfaces[i], configuration))) {
|
||||
continue;
|
||||
}
|
||||
if (counter == 0) {
|
||||
|
@ -159,10 +159,11 @@ public class AllClassesFrameWriter extends HtmlDocletWriter {
|
||||
String label = italicsClassName(cd, false);
|
||||
Content linkContent;
|
||||
if(wantFrames){
|
||||
linkContent = new RawHtml(getLink(new LinkInfoImpl(
|
||||
linkContent = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.ALL_CLASSES_FRAME, cd, label, "classFrame")));
|
||||
} else {
|
||||
linkContent = new RawHtml(getLink(new LinkInfoImpl(cd, label)));
|
||||
linkContent = new RawHtml(getLink(new LinkInfoImpl(
|
||||
configuration, cd, label)));
|
||||
}
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
content.addContent(li);
|
||||
|
@ -103,16 +103,16 @@ public class AnnotationTypeOptionalMemberWriterImpl extends
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Annotation_Type_Optional_Member_Summary"),
|
||||
configuration().getText("doclet.annotation_type_optional_members"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Annotation_Type_Optional_Member_Summary"),
|
||||
configuration.getText("doclet.annotation_type_optional_members"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Annotation_Type_Optional_Members");
|
||||
return configuration.getText("doclet.Annotation_Type_Optional_Members");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -121,9 +121,9 @@ public class AnnotationTypeOptionalMemberWriterImpl extends
|
||||
public String[] getSummaryTableHeader(ProgramElementDoc member) {
|
||||
String[] header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Annotation_Type_Optional_Member"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Annotation_Type_Optional_Member"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
return header;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
|
||||
* @param annotationType the AnnotationType that holds this member.
|
||||
*/
|
||||
public AnnotationTypeRequiredMemberWriterImpl(SubWriterHolderWriter writer,
|
||||
AnnotationTypeDoc annotationType) {
|
||||
AnnotationTypeDoc annotationType) {
|
||||
super(writer, annotationType);
|
||||
}
|
||||
|
||||
@ -106,11 +106,11 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
|
||||
writer.addAnnotationInfo(member, pre);
|
||||
addModifiers(member, pre);
|
||||
Content link = new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
getType(member))));
|
||||
writer.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_MEMBER, getType(member))));
|
||||
pre.addContent(link);
|
||||
pre.addContent(writer.getSpace());
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
Content memberName = new StringContent(member.name());
|
||||
writer.addSrcLink(member, memberName, pre);
|
||||
} else {
|
||||
@ -175,16 +175,16 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Annotation_Type_Required_Member_Summary"),
|
||||
configuration().getText("doclet.annotation_type_required_members"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Annotation_Type_Required_Member_Summary"),
|
||||
configuration.getText("doclet.annotation_type_required_members"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Annotation_Type_Required_Members");
|
||||
return configuration.getText("doclet.Annotation_Type_Required_Members");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -193,9 +193,9 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
|
||||
public String[] getSummaryTableHeader(ProgramElementDoc member) {
|
||||
String[] header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Annotation_Type_Required_Member"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Annotation_Type_Required_Member"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
return header;
|
||||
}
|
||||
|
@ -65,10 +65,10 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
* @param prevType the previous class that was documented.
|
||||
* @param nextType the next class being documented.
|
||||
*/
|
||||
public AnnotationTypeWriterImpl(AnnotationTypeDoc annotationType,
|
||||
Type prevType, Type nextType)
|
||||
public AnnotationTypeWriterImpl(ConfigurationImpl configuration,
|
||||
AnnotationTypeDoc annotationType, Type prevType, Type nextType)
|
||||
throws Exception {
|
||||
super(ConfigurationImpl.getInstance(), DocPath.forClass(annotationType));
|
||||
super(configuration, DocPath.forClass(annotationType));
|
||||
this.annotationType = annotationType;
|
||||
configuration.currentcd = annotationType.asClassDoc();
|
||||
this.prev = prevType;
|
||||
@ -116,7 +116,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
public Content getNavLinkPrevious() {
|
||||
Content li;
|
||||
if (prev != null) {
|
||||
Content prevLink = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content prevLink = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS, prev.asClassDoc(), "",
|
||||
configuration.getText("doclet.Prev_Class"), true)));
|
||||
li = HtmlTree.LI(prevLink);
|
||||
@ -134,7 +134,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
public Content getNavLinkNext() {
|
||||
Content li;
|
||||
if (next != null) {
|
||||
Content nextLink = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content nextLink = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS, next.asClassDoc(), "",
|
||||
configuration.getText("doclet.Next_Class"), true)));
|
||||
li = HtmlTree.LI(nextLink);
|
||||
@ -162,7 +162,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
Content pkgNameDiv = HtmlTree.DIV(HtmlStyle.subTitle, pkgNameContent);
|
||||
div.addContent(pkgNameDiv);
|
||||
}
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_HEADER, annotationType, false);
|
||||
Content headerContent = new StringContent(header);
|
||||
Content heading = HtmlTree.HEADING(HtmlConstants.CLASS_PAGE_HEADING, true,
|
||||
@ -219,11 +219,11 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
addAnnotationInfo(annotationType, pre);
|
||||
pre.addContent(modifiers);
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_SIGNATURE, annotationType, false);
|
||||
Content annotationName = new StringContent(annotationType.name());
|
||||
Content parameterLinks = new RawHtml(getTypeParameterLinks(linkInfo));
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
addSrcLink(annotationType, annotationName, pre);
|
||||
pre.addContent(parameterLinks);
|
||||
} else {
|
||||
|
@ -256,9 +256,9 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
*/
|
||||
protected void addPackageList(Content contentTree) throws IOException {
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
|
||||
getTableCaption(configuration().getText(
|
||||
getTableCaption(configuration.getText(
|
||||
"doclet.ClassUse_Packages.that.use.0",
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
|
||||
getLink(new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
|
||||
false)))));
|
||||
table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
|
||||
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
||||
@ -287,14 +287,14 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
protected void addPackageAnnotationList(Content contentTree) throws IOException {
|
||||
if ((!classdoc.isAnnotationType()) ||
|
||||
pkgToPackageAnnotations == null ||
|
||||
pkgToPackageAnnotations.size() == 0) {
|
||||
pkgToPackageAnnotations.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
|
||||
getTableCaption(configuration().getText(
|
||||
getTableCaption(configuration.getText(
|
||||
"doclet.ClassUse_PackageAnnotation",
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
|
||||
false)))));
|
||||
getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, false)))));
|
||||
table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
|
||||
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
||||
Iterator<PackageDoc> it = pkgToPackageAnnotations.iterator();
|
||||
@ -333,7 +333,7 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
Content li = HtmlTree.LI(HtmlStyle.blockList, getMarkerAnchor(pkg.name()));
|
||||
Content link = new RawHtml(
|
||||
configuration.getText("doclet.ClassUse_Uses.of.0.in.1",
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER,
|
||||
getLink(new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_CLASS_USE_HEADER,
|
||||
classdoc, false)),
|
||||
getPackageLinkString(pkg, Util.getPackageName(pkg), false)));
|
||||
Content heading = HtmlTree.HEADING(HtmlConstants.SUMMARY_HEADING, link);
|
||||
@ -368,7 +368,7 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
* @param contentTree the content tree to which the class use information will be added
|
||||
*/
|
||||
protected void addClassUse(PackageDoc pkg, Content contentTree) throws IOException {
|
||||
String classLink = getLink(new LinkInfoImpl(
|
||||
String classLink = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, false));
|
||||
String pkgLink = getPackageLinkString(pkg, Util.getPackageName(pkg), false);
|
||||
classSubWriter.addUseInfo(pkgToClassAnnotations.get(pkg.name()),
|
||||
@ -477,8 +477,8 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
*/
|
||||
protected Content getNavLinkClass() {
|
||||
Content linkContent = new RawHtml(getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, "",
|
||||
configuration.getText("doclet.Class"), false)));
|
||||
configuration, LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
|
||||
"", configuration.getText("doclet.Class"), false)));
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
return li;
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.builders.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.taglets.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Generate the Class Information Page.
|
||||
@ -56,24 +57,25 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
implements ClassWriter {
|
||||
|
||||
protected ClassDoc classDoc;
|
||||
protected final ClassDoc classDoc;
|
||||
|
||||
protected ClassTree classtree;
|
||||
protected final ClassTree classtree;
|
||||
|
||||
protected ClassDoc prev;
|
||||
protected final ClassDoc prev;
|
||||
|
||||
protected ClassDoc next;
|
||||
protected final ClassDoc next;
|
||||
|
||||
/**
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param classDoc the class being documented.
|
||||
* @param prevClass the previous class that was documented.
|
||||
* @param nextClass the next class being documented.
|
||||
* @param classTree the class tree for the given class.
|
||||
*/
|
||||
public ClassWriterImpl (ClassDoc classDoc,
|
||||
public ClassWriterImpl (ConfigurationImpl configuration, ClassDoc classDoc,
|
||||
ClassDoc prevClass, ClassDoc nextClass, ClassTree classTree)
|
||||
throws Exception {
|
||||
super(ConfigurationImpl.getInstance(), DocPath.forClass(classDoc));
|
||||
throws IOException {
|
||||
super(configuration, DocPath.forClass(classDoc));
|
||||
this.classDoc = classDoc;
|
||||
configuration.currentcd = classDoc;
|
||||
this.classtree = classTree;
|
||||
@ -122,7 +124,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
public Content getNavLinkPrevious() {
|
||||
Content li;
|
||||
if (prev != null) {
|
||||
Content prevLink = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content prevLink = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS, prev, "",
|
||||
configuration.getText("doclet.Prev_Class"), true)));
|
||||
li = HtmlTree.LI(prevLink);
|
||||
@ -140,7 +142,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
public Content getNavLinkNext() {
|
||||
Content li;
|
||||
if (next != null) {
|
||||
Content nextLink = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content nextLink = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS, next, "",
|
||||
configuration.getText("doclet.Next_Class"), true)));
|
||||
li = HtmlTree.LI(nextLink);
|
||||
@ -168,8 +170,8 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
Content pkgNameDiv = HtmlTree.DIV(HtmlStyle.subTitle, pkgNameContent);
|
||||
div.addContent(pkgNameDiv);
|
||||
}
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl( LinkInfoImpl.CONTEXT_CLASS_HEADER,
|
||||
classDoc, false);
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_HEADER, classDoc, false);
|
||||
//Let's not link to ourselves in the header.
|
||||
linkInfo.linkToSelf = false;
|
||||
Content headerContent = new StringContent(header);
|
||||
@ -228,13 +230,13 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
addAnnotationInfo(classDoc, pre);
|
||||
pre.addContent(modifiers);
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_SIGNATURE, classDoc, false);
|
||||
//Let's not link to ourselves in the signature.
|
||||
linkInfo.linkToSelf = false;
|
||||
Content className = new StringContent(classDoc.name());
|
||||
Content parameterLinks = new RawHtml(getTypeParameterLinks(linkInfo));
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
addSrcLink(classDoc, className, pre);
|
||||
pre.addContent(parameterLinks);
|
||||
} else {
|
||||
@ -244,11 +246,11 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
}
|
||||
if (!isInterface) {
|
||||
Type superclass = Util.getFirstVisibleSuperClass(classDoc,
|
||||
configuration());
|
||||
configuration);
|
||||
if (superclass != null) {
|
||||
pre.addContent(DocletConstants.NL);
|
||||
pre.addContent("extends ");
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME,
|
||||
superclass)));
|
||||
pre.addContent(link);
|
||||
@ -260,7 +262,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
for (int i = 0; i < implIntfacs.length; i++) {
|
||||
ClassDoc classDoc = implIntfacs[i].asClassDoc();
|
||||
if (! (classDoc.isPublic() ||
|
||||
Util.isLinkable(classDoc, configuration()))) {
|
||||
Util.isLinkable(classDoc, configuration))) {
|
||||
continue;
|
||||
}
|
||||
if (counter == 0) {
|
||||
@ -269,7 +271,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
} else {
|
||||
pre.addContent(", ");
|
||||
}
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME,
|
||||
implIntfacs[i])));
|
||||
pre.addContent(link);
|
||||
@ -315,7 +317,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
do {
|
||||
sup = Util.getFirstVisibleSuperClass(
|
||||
type instanceof ClassDoc ? (ClassDoc) type : type.asClassDoc(),
|
||||
configuration());
|
||||
configuration);
|
||||
if (sup != null) {
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.addStyle(HtmlStyle.inheritance);
|
||||
@ -345,7 +347,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
Content li = new HtmlTree(HtmlTag.LI);
|
||||
if (type.equals(classDoc)) {
|
||||
String typeParameters = getTypeParameterLinks(
|
||||
new LinkInfoImpl(LinkInfoImpl.CONTEXT_TREE,
|
||||
new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_TREE,
|
||||
classDoc, false));
|
||||
if (configuration.shouldExcludeQualifier(
|
||||
classDoc.containingPackage().name())) {
|
||||
@ -356,7 +358,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
li.addContent(new RawHtml(typeParameters));
|
||||
}
|
||||
} else {
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content link = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS_TREE_PARENT,
|
||||
type instanceof ClassDoc ? (ClassDoc) type : type,
|
||||
configuration.getClassName(type.asClassDoc()), false)));
|
||||
@ -504,8 +506,8 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
Content dt = HtmlTree.DT(label);
|
||||
Content dl = HtmlTree.DL(dt);
|
||||
Content dd = new HtmlTree(HtmlTag.DD);
|
||||
dd.addContent(new RawHtml(getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass,
|
||||
false))));
|
||||
dd.addContent(new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CLASS, outerClass, false))));
|
||||
dl.addContent(dd);
|
||||
classInfoTree.addContent(dl);
|
||||
}
|
||||
@ -549,11 +551,11 @@ public class ClassWriterImpl extends SubWriterHolderWriter
|
||||
}
|
||||
if (typeList[i] instanceof ClassDoc) {
|
||||
Content link = new RawHtml(getLink(
|
||||
new LinkInfoImpl(context, (ClassDoc)(typeList[i]))));
|
||||
new LinkInfoImpl(configuration, context, (ClassDoc)(typeList[i]))));
|
||||
dd.addContent(link);
|
||||
} else {
|
||||
Content link = new RawHtml(getLink(
|
||||
new LinkInfoImpl(context, (Type)(typeList[i]))));
|
||||
new LinkInfoImpl(configuration, context, (Type)(typeList[i]))));
|
||||
dd.addContent(link);
|
||||
}
|
||||
}
|
||||
|
@ -28,9 +28,13 @@ package com.sun.tools.doclets.formats.html;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
|
||||
import javax.tools.JavaFileManager;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
import com.sun.tools.javac.file.JavacFileManager;
|
||||
import com.sun.tools.javac.util.Context;
|
||||
|
||||
/**
|
||||
* Configure the output based on the command line options.
|
||||
@ -57,8 +61,6 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*/
|
||||
public class ConfigurationImpl extends Configuration {
|
||||
|
||||
private static ConfigurationImpl instance = new ConfigurationImpl();
|
||||
|
||||
/**
|
||||
* The build date. Note: For now, we will use
|
||||
* a version number instead of a date.
|
||||
@ -183,34 +185,21 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* The classdoc for the class file getting generated.
|
||||
*/
|
||||
public ClassDoc currentcd = null; // Set this classdoc in the
|
||||
// ClassWriter.
|
||||
public ClassDoc currentcd = null; // Set this classdoc in the ClassWriter.
|
||||
|
||||
/**
|
||||
* Constructor. Initializes resource for the
|
||||
* {@link com.sun.tools.doclets.internal.toolkit.util.MessageRetriever MessageRetriever}.
|
||||
*/
|
||||
private ConfigurationImpl() {
|
||||
public ConfigurationImpl() {
|
||||
standardmessage = new MessageRetriever(this,
|
||||
"com.sun.tools.doclets.formats.html.resources.standard");
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset to a fresh new ConfigurationImpl, to allow multiple invocations
|
||||
* of javadoc within a single VM. It would be better not to be using
|
||||
* static fields at all, but .... (sigh).
|
||||
*/
|
||||
public static void reset() {
|
||||
instance = new ConfigurationImpl();
|
||||
}
|
||||
|
||||
public static ConfigurationImpl getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the build date for the doclet.
|
||||
*/
|
||||
@Override
|
||||
public String getDocletSpecificBuildDate() {
|
||||
return BUILD_DATE;
|
||||
}
|
||||
@ -221,6 +210,7 @@ public class ConfigurationImpl extends Configuration {
|
||||
*
|
||||
* @param options The array of option names and values.
|
||||
*/
|
||||
@Override
|
||||
public void setSpecificDocletOptions(String[][] options) {
|
||||
for (int oi = 0; oi < options.length; ++oi) {
|
||||
String[] os = options[oi];
|
||||
@ -339,6 +329,7 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean validOptions(String options[][],
|
||||
DocErrorReporter reporter) {
|
||||
boolean helpfile = false;
|
||||
@ -427,6 +418,7 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public MessageRetriever getDocletSpecificMsg() {
|
||||
return standardmessage;
|
||||
}
|
||||
@ -496,6 +488,7 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public WriterFactory getWriterFactory() {
|
||||
return new WriterFactoryImpl(this);
|
||||
}
|
||||
@ -503,6 +496,7 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Comparator<ProgramElementDoc> getMemberComparator() {
|
||||
return null;
|
||||
}
|
||||
@ -510,10 +504,27 @@ public class ConfigurationImpl extends Configuration {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
if (root instanceof com.sun.tools.javadoc.RootDocImpl)
|
||||
return ((com.sun.tools.javadoc.RootDocImpl)root).getLocale();
|
||||
else
|
||||
return Locale.getDefault();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public JavaFileManager getFileManager() {
|
||||
if (fileManager == null) {
|
||||
if (root instanceof com.sun.tools.javadoc.RootDocImpl)
|
||||
fileManager = ((com.sun.tools.javadoc.RootDocImpl)root).getFileManager();
|
||||
else
|
||||
fileManager = new JavacFileManager(new Context(), false, null);
|
||||
}
|
||||
return fileManager;
|
||||
}
|
||||
|
||||
private JavaFileManager fileManager;
|
||||
}
|
||||
|
@ -184,9 +184,9 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
|
||||
*/
|
||||
public Content getConstantMembersHeader(ClassDoc cd) {
|
||||
//generate links backward only to public classes.
|
||||
String classlink = (cd.isPublic() || cd.isProtected())?
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CONSTANT_SUMMARY, cd,
|
||||
false)) :
|
||||
String classlink = (cd.isPublic() || cd.isProtected()) ?
|
||||
getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CONSTANT_SUMMARY, cd, false)) :
|
||||
cd.qualifiedName();
|
||||
String name = cd.containingPackage().name();
|
||||
if (name.length() > 0) {
|
||||
@ -260,7 +260,7 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
|
||||
code.addContent(modifier);
|
||||
code.addContent(getSpace());
|
||||
}
|
||||
Content type = new RawHtml(getLink(new LinkInfoImpl(
|
||||
Content type = new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_CONSTANT_SUMMARY, member.type())));
|
||||
code.addContent(type);
|
||||
tdType.addContent(code);
|
||||
|
@ -60,7 +60,7 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
ClassDoc classDoc) {
|
||||
super(writer, classDoc);
|
||||
VisibleMemberMap visibleMemberMap = new VisibleMemberMap(classDoc,
|
||||
VisibleMemberMap.CONSTRUCTORS, configuration().nodeprecated);
|
||||
VisibleMemberMap.CONSTRUCTORS, configuration.nodeprecated);
|
||||
List<ProgramElementDoc> constructors = new ArrayList<ProgramElementDoc>(visibleMemberMap.getMembersFor(classDoc));
|
||||
for (int i = 0; i < constructors.size(); i++) {
|
||||
if ((constructors.get(i)).isProtected() ||
|
||||
@ -130,7 +130,7 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
writer.addAnnotationInfo(constructor, pre);
|
||||
addModifiers(constructor, pre);
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
Content constructorName = new StringContent(constructor.name());
|
||||
writer.addSrcLink(constructor, constructorName, pre);
|
||||
} else {
|
||||
@ -217,16 +217,16 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Constructor_Summary"),
|
||||
configuration().getText("doclet.constructors"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Constructor_Summary"),
|
||||
configuration.getText("doclet.constructors"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Constructors");
|
||||
return configuration.getText("doclet.Constructors");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -236,17 +236,17 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
String[] header;
|
||||
if (foundNonPubConstructor) {
|
||||
header = new String[] {
|
||||
configuration().getText("doclet.Modifier"),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Constructor"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.Modifier"),
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Constructor"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
}
|
||||
else {
|
||||
header = new String[] {
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Constructor"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Constructor"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
}
|
||||
return header;
|
||||
@ -313,7 +313,7 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
code.addContent(writer.getSpace());
|
||||
} else {
|
||||
code.addContent(
|
||||
configuration().getText("doclet.Package_private"));
|
||||
configuration.getText("doclet.Package_private"));
|
||||
}
|
||||
tdSummaryType.addContent(code);
|
||||
}
|
||||
|
@ -101,11 +101,11 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
writer.addAnnotationInfo(enumConstant, pre);
|
||||
addModifiers(enumConstant, pre);
|
||||
Content enumConstantLink = new RawHtml(writer.getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
enumConstant.type())));
|
||||
Content enumConstantLink = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
configuration, LinkInfoImpl.CONTEXT_MEMBER, enumConstant.type())));
|
||||
pre.addContent(enumConstantLink);
|
||||
pre.addContent(" ");
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
Content enumConstantName = new StringContent(enumConstant.name());
|
||||
writer.addSrcLink(enumConstant, enumConstantName, pre);
|
||||
} else {
|
||||
@ -174,16 +174,16 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Enum_Constant_Summary"),
|
||||
configuration().getText("doclet.enum_constants"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Enum_Constant_Summary"),
|
||||
configuration.getText("doclet.enum_constants"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Enum_Constants");
|
||||
return configuration.getText("doclet.Enum_Constants");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -191,9 +191,9 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
|
||||
*/
|
||||
public String[] getSummaryTableHeader(ProgramElementDoc member) {
|
||||
String[] header = new String[] {
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Enum_Constant"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Enum_Constant"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
return header;
|
||||
}
|
||||
@ -266,7 +266,7 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
|
||||
return writer.getHyperLink((cd == null)?
|
||||
"enum_constant_summary":
|
||||
"enum_constants_inherited_from_class_" +
|
||||
configuration().getClassName(cd),
|
||||
configuration.getClassName(cd),
|
||||
writer.getResource("doclet.navEnum"));
|
||||
} else {
|
||||
return writer.getResource("doclet.navEnum");
|
||||
|
@ -102,11 +102,11 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
writer.addAnnotationInfo(field, pre);
|
||||
addModifiers(field, pre);
|
||||
Content fieldlink = new RawHtml(writer.getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
field.type())));
|
||||
Content fieldlink = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
configuration, LinkInfoImpl.CONTEXT_MEMBER, field.type())));
|
||||
pre.addContent(fieldlink);
|
||||
pre.addContent(" ");
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
Content fieldName = new StringContent(field.name());
|
||||
writer.addSrcLink(field, fieldName, pre);
|
||||
} else {
|
||||
@ -129,7 +129,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
ClassDoc holder = field.containingClass();
|
||||
if (field.inlineTags().length > 0) {
|
||||
if (holder.equals(classdoc) ||
|
||||
(! (holder.isPublic() || Util.isLinkable(holder, configuration())))) {
|
||||
(! (holder.isPublic() || Util.isLinkable(holder, configuration)))) {
|
||||
writer.addInlineComment(field, fieldDocTree);
|
||||
} else {
|
||||
Content link = new RawHtml(
|
||||
@ -195,16 +195,16 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Field_Summary"),
|
||||
configuration().getText("doclet.fields"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Field_Summary"),
|
||||
configuration.getText("doclet.fields"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Fields");
|
||||
return configuration.getText("doclet.Fields");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -213,9 +213,9 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
public String[] getSummaryTableHeader(ProgramElementDoc member) {
|
||||
String[] header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Field"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Field"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
return header;
|
||||
}
|
||||
@ -232,7 +232,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
*/
|
||||
public void addInheritedSummaryAnchor(ClassDoc cd, Content inheritedTree) {
|
||||
inheritedTree.addContent(writer.getMarkerAnchor(
|
||||
"fields_inherited_from_class_" + configuration().getClassName(cd)));
|
||||
"fields_inherited_from_class_" + configuration.getClassName(cd)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -242,8 +242,8 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
Content classLink = new RawHtml(writer.getPreQualifiedClassLink(
|
||||
LinkInfoImpl.CONTEXT_MEMBER, cd, false));
|
||||
Content label = new StringContent(cd.isClass() ?
|
||||
configuration().getText("doclet.Fields_Inherited_From_Class") :
|
||||
configuration().getText("doclet.Fields_Inherited_From_Interface"));
|
||||
configuration.getText("doclet.Fields_Inherited_From_Class") :
|
||||
configuration.getText("doclet.Fields_Inherited_From_Interface"));
|
||||
Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
|
||||
label);
|
||||
labelHeading.addContent(writer.getSpace());
|
||||
@ -296,7 +296,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
return writer.getHyperLink((cd == null)?
|
||||
"field_summary":
|
||||
"fields_inherited_from_class_" +
|
||||
configuration().getClassName(cd),
|
||||
configuration.getClassName(cd),
|
||||
writer.getResource("doclet.navField"));
|
||||
} else {
|
||||
return writer.getResource("doclet.navField");
|
||||
|
@ -46,14 +46,17 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*
|
||||
*/
|
||||
public class HtmlDoclet extends AbstractDoclet {
|
||||
// An instance will be created by validOptions, and used by start.
|
||||
private static HtmlDoclet docletToStart = null;
|
||||
|
||||
public HtmlDoclet() {
|
||||
configuration = (ConfigurationImpl) configuration();
|
||||
configuration = new ConfigurationImpl();
|
||||
}
|
||||
|
||||
/**
|
||||
* The global configuration information for this run.
|
||||
*/
|
||||
public ConfigurationImpl configuration;
|
||||
public final ConfigurationImpl configuration;
|
||||
|
||||
/**
|
||||
* The "start" method as required by Javadoc.
|
||||
@ -63,12 +66,16 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
* @return true if the doclet ran without encountering any errors.
|
||||
*/
|
||||
public static boolean start(RootDoc root) {
|
||||
try {
|
||||
HtmlDoclet doclet = new HtmlDoclet();
|
||||
return doclet.start(doclet, root);
|
||||
} finally {
|
||||
ConfigurationImpl.reset();
|
||||
// In typical use, options will have been set up by calling validOptions,
|
||||
// which will create an HtmlDoclet for use here.
|
||||
HtmlDoclet doclet;
|
||||
if (docletToStart != null) {
|
||||
doclet = docletToStart;
|
||||
docletToStart = null;
|
||||
} else {
|
||||
doclet = new HtmlDoclet();
|
||||
}
|
||||
return doclet.start(doclet, root);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -77,7 +84,7 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
* configuration.
|
||||
*/
|
||||
public Configuration configuration() {
|
||||
return ConfigurationImpl.getInstance();
|
||||
return configuration;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,6 +117,8 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
copyResourceFile("tab.gif");
|
||||
copyResourceFile("titlebar.gif");
|
||||
copyResourceFile("titlebar_end.gif");
|
||||
copyResourceFile("activetitlebar.gif");
|
||||
copyResourceFile("activetitlebar_end.gif");
|
||||
// do early to reduce memory footprint
|
||||
if (configuration.classuse) {
|
||||
ClassUseWriter.generate(configuration, classtree);
|
||||
@ -145,10 +154,13 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
}
|
||||
// If a stylesheet file is not specified, copy the default stylesheet
|
||||
// and replace newline with platform-specific newline.
|
||||
DocFile f;
|
||||
if (configuration.stylesheetfile.length() == 0) {
|
||||
DocFile f = DocFile.createFileForOutput(configuration, DocPaths.STYLESHEET);
|
||||
f = DocFile.createFileForOutput(configuration, DocPaths.STYLESHEET);
|
||||
f.copyResource(DocPaths.RESOURCES.resolve(DocPaths.STYLESHEET), false, true);
|
||||
}
|
||||
f = DocFile.createFileForOutput(configuration, DocPaths.JAVASCRIPT);
|
||||
f.copyResource(DocPaths.RESOURCES.resolve(DocPaths.JAVASCRIPT), true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -220,6 +232,9 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
}
|
||||
}
|
||||
|
||||
public static final ConfigurationImpl sharedInstanceForOptions =
|
||||
new ConfigurationImpl();
|
||||
|
||||
/**
|
||||
* Check for doclet added options here.
|
||||
*
|
||||
@ -228,7 +243,7 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
*/
|
||||
public static int optionLength(String option) {
|
||||
// Construct temporary configuration for check
|
||||
return (ConfigurationImpl.getInstance()).optionLength(option);
|
||||
return sharedInstanceForOptions.optionLength(option);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -244,8 +259,8 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
*/
|
||||
public static boolean validOptions(String options[][],
|
||||
DocErrorReporter reporter) {
|
||||
// Construct temporary configuration for check
|
||||
return (ConfigurationImpl.getInstance()).validOptions(options, reporter);
|
||||
docletToStart = new HtmlDoclet();
|
||||
return docletToStart.configuration.validOptions(options, reporter);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -82,7 +82,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
/**
|
||||
* The global configuration information for this run.
|
||||
*/
|
||||
public ConfigurationImpl configuration;
|
||||
public final ConfigurationImpl configuration;
|
||||
|
||||
/**
|
||||
* To check whether annotation heading is printed or not.
|
||||
@ -302,7 +302,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
*/
|
||||
public void printHtmlDocument(String[] metakeywords, boolean includeScript,
|
||||
Content body) throws IOException {
|
||||
Content htmlDocType = DocType.Transitional();
|
||||
Content htmlDocType = DocType.TRANSITIONAL;
|
||||
Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
|
||||
Content head = new HtmlTree(HtmlTag.HEAD);
|
||||
if (!configuration.notimestamp) {
|
||||
@ -327,6 +327,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
}
|
||||
}
|
||||
head.addContent(getStyleSheetProperties());
|
||||
head.addContent(getScriptProperties());
|
||||
Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(),
|
||||
head, body);
|
||||
Content htmlDocument = new HtmlDocument(htmlDocType,
|
||||
@ -835,7 +836,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
String tableSummary, String[] tableHeader, Content contentTree) {
|
||||
if (deprPkgs.size() > 0) {
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
|
||||
getTableCaption(configuration().getText(headingKey)));
|
||||
getTableCaption(configuration.getText(headingKey)));
|
||||
table.addContent(getSummaryTableHeader(tableHeader, "col"));
|
||||
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
||||
for (int i = 0; i < deprPkgs.size(); i++) {
|
||||
@ -1079,7 +1080,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
* @return a content tree for the link
|
||||
*/
|
||||
public Content getQualifiedClassLink(int context, ClassDoc cd) {
|
||||
return new RawHtml(getLink(new LinkInfoImpl(context, cd,
|
||||
return new RawHtml(getLink(new LinkInfoImpl(configuration, context, cd,
|
||||
configuration.getClassName(cd), "")));
|
||||
}
|
||||
|
||||
@ -1110,7 +1111,8 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
if(pd != null && ! configuration.shouldExcludeQualifier(pd.name())) {
|
||||
classlink = getPkgName(cd);
|
||||
}
|
||||
classlink += getLink(new LinkInfoImpl(context, cd, cd.name(), isStrong));
|
||||
classlink += getLink(new LinkInfoImpl(configuration,
|
||||
context, cd, cd.name(), isStrong));
|
||||
return classlink;
|
||||
}
|
||||
|
||||
@ -1130,7 +1132,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
if(pd != null && ! configuration.shouldExcludeQualifier(pd.name())) {
|
||||
contentTree.addContent(getPkgName(cd));
|
||||
}
|
||||
contentTree.addContent(new RawHtml(getLink(new LinkInfoImpl(
|
||||
contentTree.addContent(new RawHtml(getLink(new LinkInfoImpl(configuration,
|
||||
context, cd, cd.name(), isStrong))));
|
||||
}
|
||||
|
||||
@ -1187,14 +1189,14 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
public String getDocLink(int context, ClassDoc classDoc, MemberDoc doc,
|
||||
String label, boolean strong) {
|
||||
if (! (doc.isIncluded() ||
|
||||
Util.isLinkable(classDoc, configuration()))) {
|
||||
Util.isLinkable(classDoc, configuration))) {
|
||||
return label;
|
||||
} else if (doc instanceof ExecutableMemberDoc) {
|
||||
ExecutableMemberDoc emd = (ExecutableMemberDoc)doc;
|
||||
return getLink(new LinkInfoImpl(context, classDoc,
|
||||
return getLink(new LinkInfoImpl(configuration, context, classDoc,
|
||||
getAnchor(emd), label, strong));
|
||||
} else if (doc instanceof MemberDoc) {
|
||||
return getLink(new LinkInfoImpl(context, classDoc,
|
||||
return getLink(new LinkInfoImpl(configuration, context, classDoc,
|
||||
doc.name(), label, strong));
|
||||
} else {
|
||||
return label;
|
||||
@ -1215,14 +1217,14 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
public Content getDocLink(int context, ClassDoc classDoc, MemberDoc doc,
|
||||
String label) {
|
||||
if (! (doc.isIncluded() ||
|
||||
Util.isLinkable(classDoc, configuration()))) {
|
||||
Util.isLinkable(classDoc, configuration))) {
|
||||
return new StringContent(label);
|
||||
} else if (doc instanceof ExecutableMemberDoc) {
|
||||
ExecutableMemberDoc emd = (ExecutableMemberDoc)doc;
|
||||
return new RawHtml(getLink(new LinkInfoImpl(context, classDoc,
|
||||
return new RawHtml(getLink(new LinkInfoImpl(configuration, context, classDoc,
|
||||
getAnchor(emd), label, false)));
|
||||
} else if (doc instanceof MemberDoc) {
|
||||
return new RawHtml(getLink(new LinkInfoImpl(context, classDoc,
|
||||
return new RawHtml(getLink(new LinkInfoImpl(configuration, context, classDoc,
|
||||
doc.name(), label, false)));
|
||||
} else {
|
||||
return new StringContent(label);
|
||||
@ -1302,7 +1304,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
if (label.isEmpty()) {
|
||||
label = plainOrCodeText(plain, refClass.name());
|
||||
}
|
||||
return getLink(new LinkInfoImpl(refClass, label));
|
||||
return getLink(new LinkInfoImpl(configuration, refClass, label));
|
||||
} else if (refMem == null) {
|
||||
// Must be a member reference since refClass is not null and refMemName is not null.
|
||||
// However, refMem is null, so this referenced member does not exist.
|
||||
@ -1313,7 +1315,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
ClassDoc containing = refMem.containingClass();
|
||||
if (see.text().trim().startsWith("#") &&
|
||||
! (containing.isPublic() ||
|
||||
Util.isLinkable(containing, configuration()))) {
|
||||
Util.isLinkable(containing, configuration))) {
|
||||
// Since the link is relative and the holder is not even being
|
||||
// documented, this must be an inherited link. Redirect it.
|
||||
// The current class either overrides the referenced member or
|
||||
@ -1502,7 +1504,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
StringBuilder textBuff = new StringBuilder();
|
||||
while (lines.hasMoreTokens()) {
|
||||
StringBuilder line = new StringBuilder(lines.nextToken());
|
||||
Util.replaceTabs(configuration.sourcetab, line);
|
||||
Util.replaceTabs(configuration, line);
|
||||
textBuff.append(line.toString());
|
||||
}
|
||||
result.append(textBuff);
|
||||
@ -1686,6 +1688,17 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
return link;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a link to the JavaScript file.
|
||||
*
|
||||
* @return an HtmlTree for the Script tag which provides the JavaScript location
|
||||
*/
|
||||
public HtmlTree getScriptProperties() {
|
||||
HtmlTree script = HtmlTree.SCRIPT("text/javascript",
|
||||
pathToRoot.resolve(DocPaths.JAVASCRIPT).getPath());
|
||||
return script;
|
||||
}
|
||||
|
||||
/**
|
||||
* According to
|
||||
* <cite>The Java™ Language Specification</cite>,
|
||||
@ -1784,7 +1797,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
continue;
|
||||
}
|
||||
annotation = new StringBuilder();
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_ANNOTATION, annotationDoc);
|
||||
linkInfo.label = "@" + annotationDoc.name();
|
||||
annotation.append(getLink(linkInfo));
|
||||
@ -1835,7 +1848,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||
if (annotationValue.value() instanceof Type) {
|
||||
Type type = (Type) annotationValue.value();
|
||||
if (type.asClassDoc() != null) {
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_ANNOTATION, type);
|
||||
linkInfo.label = (type.asClassDoc().isIncluded() ?
|
||||
type.typeName() :
|
||||
|
@ -130,7 +130,7 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
|
||||
pre.addContent(fieldTypeStr);
|
||||
} else {
|
||||
Content fieldContent = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_SERIAL_MEMBER, fieldType)));
|
||||
configuration, LinkInfoImpl.CONTEXT_SERIAL_MEMBER, fieldType)));
|
||||
pre.addContent(fieldContent);
|
||||
}
|
||||
pre.addContent(fieldDimensions + " ");
|
||||
@ -187,8 +187,8 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
|
||||
*/
|
||||
public void addMemberTags(FieldDoc field, Content contentTree) {
|
||||
TagletOutputImpl output = new TagletOutputImpl("");
|
||||
TagletWriter.genTagOuput(configuration().tagletManager, field,
|
||||
configuration().tagletManager.getCustomTags(field),
|
||||
TagletWriter.genTagOuput(configuration.tagletManager, field,
|
||||
configuration.tagletManager.getCustomTags(field),
|
||||
writer.getTagletWriterInstance(false), output);
|
||||
String outputString = output.toString().trim();
|
||||
Content dlTags = new HtmlTree(HtmlTag.DL);
|
||||
@ -208,7 +208,7 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
|
||||
* @return true if overview details need to be printed
|
||||
*/
|
||||
public boolean shouldPrintOverview(FieldDoc field) {
|
||||
if (!configuration().nocomment) {
|
||||
if (!configuration.nocomment) {
|
||||
if(!field.commentText().isEmpty() ||
|
||||
writer.hasSerializationOverviewTags(field))
|
||||
return true;
|
||||
|
@ -148,7 +148,7 @@ public class HtmlSerialMethodWriter extends MethodWriterImpl implements
|
||||
public void addMemberTags(MethodDoc member, Content methodsContentTree) {
|
||||
TagletOutputImpl output = new TagletOutputImpl("");
|
||||
TagletManager tagletManager =
|
||||
ConfigurationImpl.getInstance().tagletManager;
|
||||
configuration.tagletManager;
|
||||
TagletWriter.genTagOuput(tagletManager, member,
|
||||
tagletManager.getSerializedFormTags(),
|
||||
writer.getTagletWriterInstance(false), output);
|
||||
|
@ -74,7 +74,7 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
StringBuilder label = new StringBuilder(
|
||||
classLinkInfo.getClassLinkLabel(m_writer.configuration));
|
||||
classLinkInfo.displayLength += label.length();
|
||||
Configuration configuration = ConfigurationImpl.getInstance();
|
||||
Configuration configuration = m_writer.configuration;
|
||||
LinkOutputImpl linkOutput = new LinkOutputImpl();
|
||||
if (classDoc.isIncluded()) {
|
||||
if (configuration.isGeneratedDoc(classDoc)) {
|
||||
@ -118,8 +118,8 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
*/
|
||||
protected LinkOutput getTypeParameterLink(LinkInfo linkInfo,
|
||||
Type typeParam) {
|
||||
LinkInfoImpl typeLinkInfo = new LinkInfoImpl(linkInfo.getContext(),
|
||||
typeParam);
|
||||
LinkInfoImpl typeLinkInfo = new LinkInfoImpl(m_writer.configuration,
|
||||
linkInfo.getContext(), typeParam);
|
||||
typeLinkInfo.excludeTypeBounds = linkInfo.excludeTypeBounds;
|
||||
typeLinkInfo.excludeTypeParameterLinks = linkInfo.excludeTypeParameterLinks;
|
||||
typeLinkInfo.linkToSelf = linkInfo.linkToSelf;
|
||||
@ -135,10 +135,10 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
* @return the tool tip for the appropriate class.
|
||||
*/
|
||||
private String getClassToolTip(ClassDoc classDoc, boolean isTypeLink) {
|
||||
Configuration configuration = ConfigurationImpl.getInstance();
|
||||
Configuration configuration = m_writer.configuration;
|
||||
if (isTypeLink) {
|
||||
return configuration.getText("doclet.Href_Type_Param_Title",
|
||||
classDoc.name());
|
||||
classDoc.name());
|
||||
} else if (classDoc.isInterface()){
|
||||
return configuration.getText("doclet.Href_Interface_Title",
|
||||
Util.getPackageName(classDoc.containingPackage()));
|
||||
|
@ -198,6 +198,8 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
*/
|
||||
public static final int CONTEXT_CLASS_USE_HEADER = 33;
|
||||
|
||||
public final ConfigurationImpl configuration;
|
||||
|
||||
/**
|
||||
* The integer indicating the location of the link.
|
||||
*/
|
||||
@ -214,20 +216,22 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
public String styleName ="";
|
||||
|
||||
/**
|
||||
* The valueof the target.
|
||||
* The value of the target.
|
||||
*/
|
||||
public String target = "";
|
||||
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param classDoc the class to link to.
|
||||
* @param label the label for the link.
|
||||
* @param target the value of the target attribute.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ClassDoc classDoc, String label,
|
||||
String target){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ClassDoc classDoc, String label, String target) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.label = label;
|
||||
this.target = target;
|
||||
@ -237,6 +241,7 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param classDoc the class to link to.
|
||||
* @param where the value of the marker #.
|
||||
@ -244,8 +249,10 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
* @param isStrong true if the link should be strong.
|
||||
* @param styleName String style of text defined in style sheet.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ClassDoc classDoc, String where, String label,
|
||||
boolean isStrong, String styleName){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ClassDoc classDoc, String where, String label,
|
||||
boolean isStrong, String styleName) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.where = where;
|
||||
this.label = label;
|
||||
@ -257,14 +264,17 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param classDoc the class to link to.
|
||||
* @param where the value of the marker #.
|
||||
* @param label the label for the link.
|
||||
* @param isStrong true if the link should be strong.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ClassDoc classDoc, String where, String label,
|
||||
boolean isStrong){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ClassDoc classDoc, String where, String label,
|
||||
boolean isStrong) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.where = where;
|
||||
this.label = label;
|
||||
@ -275,10 +285,13 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param classDoc the class to link to.
|
||||
* @param label the label for the link.
|
||||
*/
|
||||
public LinkInfoImpl (ClassDoc classDoc, String label){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
ClassDoc classDoc, String label) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.label = label;
|
||||
setContext(context);
|
||||
@ -287,12 +300,15 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param executableMemberDoc the member to link to.
|
||||
* @param isStrong true if the link should be strong.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ExecutableMemberDoc executableMemberDoc,
|
||||
boolean isStrong){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ExecutableMemberDoc executableMemberDoc,
|
||||
boolean isStrong) {
|
||||
this.configuration = configuration;
|
||||
this.executableMemberDoc = executableMemberDoc;
|
||||
this.isStrong = isStrong;
|
||||
setContext(context);
|
||||
@ -301,11 +317,14 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param classDoc the class to link to.
|
||||
* @param isStrong true if the link should be strong.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ClassDoc classDoc, boolean isStrong){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ClassDoc classDoc, boolean isStrong) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.isStrong = isStrong;
|
||||
setContext(context);
|
||||
@ -314,10 +333,13 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param type the class to link to.
|
||||
*/
|
||||
public LinkInfoImpl (int context, Type type){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, Type type) {
|
||||
this.configuration = configuration;
|
||||
this.type = type;
|
||||
setContext(context);
|
||||
}
|
||||
@ -325,11 +347,14 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param type the class to link to.
|
||||
* @param isVarArg true if this is a link to a var arg.
|
||||
*/
|
||||
public LinkInfoImpl (int context, Type type, boolean isVarArg){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, Type type, boolean isVarArg) {
|
||||
this.configuration = configuration;
|
||||
this.type = type;
|
||||
this.isVarArg = isVarArg;
|
||||
setContext(context);
|
||||
@ -338,13 +363,16 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param type the class to link to.
|
||||
* @param label the label for the link.
|
||||
* @param isStrong true if the link should be strong.
|
||||
*/
|
||||
public LinkInfoImpl (int context, Type type, String label,
|
||||
boolean isStrong){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, Type type, String label,
|
||||
boolean isStrong) {
|
||||
this.configuration = configuration;
|
||||
this.type = type;
|
||||
this.label = label;
|
||||
this.isStrong = isStrong;
|
||||
@ -354,13 +382,16 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
/**
|
||||
* Construct a LinkInfo object.
|
||||
*
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @param context the context of the link.
|
||||
* @param classDoc the class to link to.
|
||||
* @param label the label for the link.
|
||||
* @param isStrong true if the link should be strong.
|
||||
*/
|
||||
public LinkInfoImpl (int context, ClassDoc classDoc, String label,
|
||||
boolean isStrong){
|
||||
public LinkInfoImpl(ConfigurationImpl configuration,
|
||||
int context, ClassDoc classDoc, String label,
|
||||
boolean isStrong) {
|
||||
this.configuration = configuration;
|
||||
this.classDoc = classDoc;
|
||||
this.label = label;
|
||||
this.isStrong = isStrong;
|
||||
@ -448,6 +479,6 @@ public class LinkInfoImpl extends LinkInfo {
|
||||
* desired place.
|
||||
*/
|
||||
public boolean isLinkable() {
|
||||
return Util.isLinkable(classDoc, ConfigurationImpl.getInstance());
|
||||
return Util.isLinkable(classDoc, configuration);
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
addModifiers(method, pre);
|
||||
addTypeParameters(method, pre);
|
||||
addReturnType(method, pre);
|
||||
if (configuration().linksource) {
|
||||
if (configuration.linksource) {
|
||||
Content methodName = new StringContent(method.name());
|
||||
writer.addSrcLink(method, methodName, pre);
|
||||
} else {
|
||||
@ -149,7 +149,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
if (method.inlineTags().length > 0) {
|
||||
if (holder.asClassDoc().equals(classdoc) ||
|
||||
(! (holderClassDoc.isPublic() ||
|
||||
Util.isLinkable(holderClassDoc, configuration())))) {
|
||||
Util.isLinkable(holderClassDoc, configuration)))) {
|
||||
writer.addInlineComment(method, methodDocTree);
|
||||
} else {
|
||||
Content link = new RawHtml(
|
||||
@ -215,16 +215,16 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Method_Summary"),
|
||||
configuration().getText("doclet.methods"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Method_Summary"),
|
||||
configuration.getText("doclet.methods"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Methods");
|
||||
return configuration.getText("doclet.Methods");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -233,9 +233,9 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
public String[] getSummaryTableHeader(ProgramElementDoc member) {
|
||||
String[] header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Method"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Method"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
return header;
|
||||
}
|
||||
@ -253,7 +253,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
public void addInheritedSummaryAnchor(ClassDoc cd, Content inheritedTree) {
|
||||
inheritedTree.addContent(writer.getMarkerAnchor(
|
||||
"methods_inherited_from_class_" +
|
||||
configuration().getClassName(cd)));
|
||||
configuration.getClassName(cd)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -263,8 +263,8 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
Content classLink = new RawHtml(writer.getPreQualifiedClassLink(
|
||||
LinkInfoImpl.CONTEXT_MEMBER, cd, false));
|
||||
Content label = new StringContent(cd.isClass() ?
|
||||
configuration().getText("doclet.Methods_Inherited_From_Class") :
|
||||
configuration().getText("doclet.Methods_Inherited_From_Interface"));
|
||||
configuration.getText("doclet.Methods_Inherited_From_Class") :
|
||||
configuration.getText("doclet.Methods_Inherited_From_Interface"));
|
||||
Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
|
||||
label);
|
||||
labelHeading.addContent(writer.getSpace());
|
||||
@ -285,12 +285,12 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
*/
|
||||
protected static void addOverridden(HtmlDocletWriter writer,
|
||||
Type overriddenType, MethodDoc method, Content dl) {
|
||||
if(writer.configuration.nocomment){
|
||||
if (writer.configuration.nocomment) {
|
||||
return;
|
||||
}
|
||||
ClassDoc holderClassDoc = overriddenType.asClassDoc();
|
||||
if (! (holderClassDoc.isPublic() ||
|
||||
Util.isLinkable(holderClassDoc, writer.configuration()))) {
|
||||
Util.isLinkable(holderClassDoc, writer.configuration))) {
|
||||
//This is an implementation detail that should not be documented.
|
||||
return;
|
||||
}
|
||||
@ -303,7 +303,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
int context = LinkInfoImpl.CONTEXT_METHOD_OVERRIDES;
|
||||
|
||||
if (method != null) {
|
||||
if(overriddenType.asClassDoc().isAbstract() && method.isAbstract()){
|
||||
if (overriddenType.asClassDoc().isAbstract() && method.isAbstract()){
|
||||
//Abstract method is implemented from abstract class,
|
||||
//not overridden
|
||||
label = writer.specifiedByLabel;
|
||||
@ -312,11 +312,11 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
Content dt = HtmlTree.DT(HtmlTree.STRONG(label));
|
||||
dl.addContent(dt);
|
||||
Content overriddenTypeLink = new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(context, overriddenType)));
|
||||
writer.getLink(new LinkInfoImpl(writer.configuration, context, overriddenType)));
|
||||
Content codeOverridenTypeLink = HtmlTree.CODE(overriddenTypeLink);
|
||||
String name = method.name();
|
||||
Content methlink = new RawHtml(writer.getLink(
|
||||
new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
new LinkInfoImpl(writer.configuration, LinkInfoImpl.CONTEXT_MEMBER,
|
||||
overriddenType.asClassDoc(),
|
||||
writer.getAnchor(method), name, false)));
|
||||
Content codeMethLink = HtmlTree.CODE(methlink);
|
||||
@ -362,7 +362,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
MethodDoc implementedMeth = implementedMethods[i];
|
||||
Type intfac = implementedMethodsFinder.getMethodHolder(implementedMeth);
|
||||
Content intfaclink = new RawHtml(writer.getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_METHOD_SPECIFIED_BY, intfac)));
|
||||
writer.configuration, LinkInfoImpl.CONTEXT_METHOD_SPECIFIED_BY, intfac)));
|
||||
Content codeIntfacLink = HtmlTree.CODE(intfaclink);
|
||||
Content dt = HtmlTree.DT(HtmlTree.STRONG(writer.specifiedByLabel));
|
||||
dl.addContent(dt);
|
||||
@ -389,7 +389,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
Type type = method.returnType();
|
||||
if (type != null) {
|
||||
Content linkContent = new RawHtml(writer.getLink(
|
||||
new LinkInfoImpl(LinkInfoImpl.CONTEXT_RETURN_TYPE, type)));
|
||||
new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_RETURN_TYPE, type)));
|
||||
htmltree.addContent(linkContent);
|
||||
htmltree.addContent(writer.getSpace());
|
||||
}
|
||||
@ -403,7 +403,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
return writer.getHyperLink((cd == null)?
|
||||
"method_summary":
|
||||
"methods_inherited_from_class_" +
|
||||
configuration().getClassName(cd),
|
||||
configuration.getClassName(cd),
|
||||
writer.getResource("doclet.navMethod"));
|
||||
} else {
|
||||
return writer.getResource("doclet.navMethod");
|
||||
|
@ -93,16 +93,16 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getTableSummary() {
|
||||
return configuration().getText("doclet.Member_Table_Summary",
|
||||
configuration().getText("doclet.Nested_Class_Summary"),
|
||||
configuration().getText("doclet.nested_classes"));
|
||||
return configuration.getText("doclet.Member_Table_Summary",
|
||||
configuration.getText("doclet.Nested_Class_Summary"),
|
||||
configuration.getText("doclet.nested_classes"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getCaption() {
|
||||
return configuration().getText("doclet.Nested_Classes");
|
||||
return configuration.getText("doclet.Nested_Classes");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,17 +113,17 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
|
||||
if (member.isInterface()) {
|
||||
header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Interface"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Interface"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
}
|
||||
else {
|
||||
header = new String[] {
|
||||
writer.getModifierTypeHeader(),
|
||||
configuration().getText("doclet.0_and_1",
|
||||
configuration().getText("doclet.Class"),
|
||||
configuration().getText("doclet.Description"))
|
||||
configuration.getText("doclet.0_and_1",
|
||||
configuration.getText("doclet.Class"),
|
||||
configuration.getText("doclet.Description"))
|
||||
};
|
||||
}
|
||||
return header;
|
||||
@ -151,8 +151,8 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
|
||||
Content classLink = new RawHtml(writer.getPreQualifiedClassLink(
|
||||
LinkInfoImpl.CONTEXT_MEMBER, cd, false));
|
||||
Content label = new StringContent(cd.isInterface() ?
|
||||
configuration().getText("doclet.Nested_Classes_Interface_Inherited_From_Interface") :
|
||||
configuration().getText("doclet.Nested_Classes_Interfaces_Inherited_From_Class"));
|
||||
configuration.getText("doclet.Nested_Classes_Interface_Inherited_From_Interface") :
|
||||
configuration.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Class"));
|
||||
Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
|
||||
label);
|
||||
labelHeading.addContent(writer.getSpace());
|
||||
@ -166,7 +166,7 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
|
||||
protected void addSummaryLink(int context, ClassDoc cd, ProgramElementDoc member,
|
||||
Content tdSummary) {
|
||||
Content strong = HtmlTree.STRONG(new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(context, (ClassDoc)member, false))));
|
||||
writer.getLink(new LinkInfoImpl(configuration, context, (ClassDoc)member, false))));
|
||||
Content code = HtmlTree.CODE(strong);
|
||||
tdSummary.addContent(code);
|
||||
}
|
||||
@ -177,7 +177,7 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
|
||||
protected void addInheritedSummaryLink(ClassDoc cd,
|
||||
ProgramElementDoc member, Content linksTree) {
|
||||
linksTree.addContent(new RawHtml(
|
||||
writer.getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_MEMBER,
|
||||
(ClassDoc)member, false))));
|
||||
}
|
||||
|
||||
|
@ -121,7 +121,7 @@ public class PackageFrameWriter extends HtmlDocletWriter {
|
||||
* @param contentTree the content tree to which the listing will be added
|
||||
*/
|
||||
protected void addClassListing(Content contentTree) {
|
||||
Configuration config = configuration();
|
||||
Configuration config = configuration;
|
||||
if (packageDoc.isIncluded()) {
|
||||
addClassKindListing(packageDoc.interfaces(),
|
||||
getResource("doclet.Interfaces"), contentTree);
|
||||
@ -181,7 +181,7 @@ public class PackageFrameWriter extends HtmlDocletWriter {
|
||||
contentTree.addContent(heading);
|
||||
printedHeader = true;
|
||||
}
|
||||
Content link = new RawHtml (getLink(new LinkInfoImpl(
|
||||
Content link = new RawHtml (getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.PACKAGE_FRAME, arr[i],
|
||||
(arr[i].isInterface() ? italicsText(arr[i].name()) :
|
||||
arr[i].name()),"classFrame")));
|
||||
|
@ -152,7 +152,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
|
||||
*/
|
||||
protected void addPackageList(Content contentTree) throws IOException {
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
|
||||
getTableCaption(configuration().getText(
|
||||
getTableCaption(configuration.getText(
|
||||
"doclet.ClassUse_Packages.that.use.0",
|
||||
getPackageLinkString(pkgdoc, Util.getPackageName(pkgdoc), false))));
|
||||
table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
|
||||
@ -197,7 +197,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
|
||||
String tableSummary = configuration.getText("doclet.Use_Table_Summary",
|
||||
configuration.getText("doclet.classes"));
|
||||
Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
|
||||
getTableCaption(configuration().getText(
|
||||
getTableCaption(configuration.getText(
|
||||
"doclet.ClassUse_Classes.in.0.used.by.1",
|
||||
getPackageLinkString(pkgdoc, Util.getPackageName(pkgdoc), false),
|
||||
getPackageLinkString(usingPackage,Util.getPackageName(usingPackage), false))));
|
||||
|
@ -179,7 +179,8 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
||||
continue;
|
||||
}
|
||||
Content classContent = new RawHtml(getLink(new LinkInfoImpl(
|
||||
LinkInfoImpl.CONTEXT_PACKAGE, classes[i], false)));
|
||||
configuration, LinkInfoImpl.CONTEXT_PACKAGE, classes[i],
|
||||
false)));
|
||||
Content tdClass = HtmlTree.TD(HtmlStyle.colFirst, classContent);
|
||||
HtmlTree tr = HtmlTree.TR(tdClass);
|
||||
if (i%2 == 0)
|
||||
|
@ -46,11 +46,13 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
|
||||
implements SerializedFormWriter {
|
||||
|
||||
/**
|
||||
* @param configuration the configuration data for the doclet
|
||||
* @throws IOException
|
||||
* @throws DocletAbortException
|
||||
*/
|
||||
public SerializedFormWriterImpl() throws IOException {
|
||||
super(ConfigurationImpl.getInstance(), DocPaths.SERIALIZED_FORM);
|
||||
public SerializedFormWriterImpl(ConfigurationImpl configuration)
|
||||
throws IOException {
|
||||
super(configuration, DocPaths.SERIALIZED_FORM);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,15 +128,16 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
|
||||
*/
|
||||
public Content getClassHeader(ClassDoc classDoc) {
|
||||
String classLink = (classDoc.isPublic() || classDoc.isProtected())?
|
||||
getLink(new LinkInfoImpl(classDoc,
|
||||
getLink(new LinkInfoImpl(configuration, classDoc,
|
||||
configuration.getClassName(classDoc))):
|
||||
classDoc.qualifiedName();
|
||||
Content li = HtmlTree.LI(HtmlStyle.blockList, getMarkerAnchor(
|
||||
classDoc.qualifiedName()));
|
||||
String superClassLink =
|
||||
classDoc.superclassType() != null ?
|
||||
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_SERIALIZED_FORM,
|
||||
classDoc.superclassType())) :
|
||||
getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.CONTEXT_SERIALIZED_FORM,
|
||||
classDoc.superclassType())) :
|
||||
null;
|
||||
|
||||
//Print the heading.
|
||||
|
@ -60,16 +60,24 @@ public class SourceToHTMLConverter {
|
||||
*/
|
||||
private static final Content NEW_LINE = new RawHtml(DocletConstants.NL);
|
||||
|
||||
private final ConfigurationImpl configuration;
|
||||
|
||||
private final RootDoc rootDoc;
|
||||
|
||||
private DocPath outputdir;
|
||||
|
||||
/**
|
||||
* Relative path from the documentation root to the file that is being
|
||||
* generated.
|
||||
*/
|
||||
private static DocPath relativePath = DocPath.empty;
|
||||
private DocPath relativePath = DocPath.empty;
|
||||
|
||||
/**
|
||||
* Source is converted to HTML using static methods below.
|
||||
*/
|
||||
private SourceToHTMLConverter() {}
|
||||
private SourceToHTMLConverter(ConfigurationImpl configuration, RootDoc rd,
|
||||
DocPath outputdir) {
|
||||
this.configuration = configuration;
|
||||
this.rootDoc = rd;
|
||||
this.outputdir = outputdir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the Classes in the given RootDoc to an HTML.
|
||||
@ -80,36 +88,38 @@ public class SourceToHTMLConverter {
|
||||
*/
|
||||
public static void convertRoot(ConfigurationImpl configuration, RootDoc rd,
|
||||
DocPath outputdir) {
|
||||
if (rd == null || outputdir == null) {
|
||||
new SourceToHTMLConverter(configuration, rd, outputdir).generate();
|
||||
}
|
||||
|
||||
void generate() {
|
||||
if (rootDoc == null || outputdir == null) {
|
||||
return;
|
||||
}
|
||||
PackageDoc[] pds = rd.specifiedPackages();
|
||||
PackageDoc[] pds = rootDoc.specifiedPackages();
|
||||
for (int i = 0; i < pds.length; i++) {
|
||||
// If -nodeprecated option is set and the package is marked as deprecated,
|
||||
// do not convert the package files to HTML.
|
||||
if (!(configuration.nodeprecated && Util.isDeprecated(pds[i])))
|
||||
convertPackage(configuration, pds[i], outputdir);
|
||||
convertPackage(pds[i], outputdir);
|
||||
}
|
||||
ClassDoc[] cds = rd.specifiedClasses();
|
||||
ClassDoc[] cds = rootDoc.specifiedClasses();
|
||||
for (int i = 0; i < cds.length; i++) {
|
||||
// If -nodeprecated option is set and the class is marked as deprecated
|
||||
// or the containing package is deprecated, do not convert the
|
||||
// package files to HTML.
|
||||
if (!(configuration.nodeprecated &&
|
||||
(Util.isDeprecated(cds[i]) || Util.isDeprecated(cds[i].containingPackage()))))
|
||||
convertClass(configuration, cds[i], outputdir);
|
||||
convertClass(cds[i], outputdir);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the Classes in the given Package to an HTML.
|
||||
*
|
||||
* @param configuration the configuration.
|
||||
* @param pd the Package to convert.
|
||||
* @param outputdir the name of the directory to output to.
|
||||
*/
|
||||
public static void convertPackage(ConfigurationImpl configuration, PackageDoc pd,
|
||||
DocPath outputdir) {
|
||||
public void convertPackage(PackageDoc pd, DocPath outputdir) {
|
||||
if (pd == null) {
|
||||
return;
|
||||
}
|
||||
@ -120,19 +130,17 @@ public class SourceToHTMLConverter {
|
||||
// containing package deprecation since it is already check in
|
||||
// the calling method above.
|
||||
if (!(configuration.nodeprecated && Util.isDeprecated(cds[i])))
|
||||
convertClass(configuration, cds[i], outputdir);
|
||||
convertClass(cds[i], outputdir);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given Class to an HTML.
|
||||
*
|
||||
* @param configuration the configuration.
|
||||
* @param cd the class to convert.
|
||||
* @param outputdir the name of the directory to output to.
|
||||
*/
|
||||
public static void convertClass(ConfigurationImpl configuration, ClassDoc cd,
|
||||
DocPath outputdir) {
|
||||
public void convertClass(ClassDoc cd, DocPath outputdir) {
|
||||
if (cd == null) {
|
||||
return;
|
||||
}
|
||||
@ -164,7 +172,7 @@ public class SourceToHTMLConverter {
|
||||
try {
|
||||
while ((line = reader.readLine()) != null) {
|
||||
addLineNo(pre, lineno);
|
||||
addLine(pre, line, configuration.sourcetab, lineno);
|
||||
addLine(pre, line, lineno);
|
||||
lineno++;
|
||||
}
|
||||
} finally {
|
||||
@ -173,7 +181,7 @@ public class SourceToHTMLConverter {
|
||||
addBlankLines(pre);
|
||||
Content div = HtmlTree.DIV(HtmlStyle.sourceContainer, pre);
|
||||
body.addContent(div);
|
||||
writeToFile(body, outputdir.resolve(DocPath.forClass(cd)), configuration);
|
||||
writeToFile(body, outputdir.resolve(DocPath.forClass(cd)));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -184,15 +192,13 @@ public class SourceToHTMLConverter {
|
||||
*
|
||||
* @param body the documentation content to be written to the file.
|
||||
* @param path the path for the file.
|
||||
* @param configuration the Doclet configuration to pass notices to.
|
||||
*/
|
||||
private static void writeToFile(Content body, DocPath path,
|
||||
ConfigurationImpl configuration) throws IOException {
|
||||
Content htmlDocType = DocType.Transitional();
|
||||
private void writeToFile(Content body, DocPath path) throws IOException {
|
||||
Content htmlDocType = DocType.TRANSITIONAL;
|
||||
Content head = new HtmlTree(HtmlTag.HEAD);
|
||||
head.addContent(HtmlTree.TITLE(new StringContent(
|
||||
configuration.getText("doclet.Window_Source_title"))));
|
||||
head.addContent(getStyleSheetProperties(configuration));
|
||||
head.addContent(getStyleSheetProperties());
|
||||
Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(),
|
||||
head, body);
|
||||
Content htmlDocument = new HtmlDocument(htmlDocType, htmlTree);
|
||||
@ -210,10 +216,9 @@ public class SourceToHTMLConverter {
|
||||
/**
|
||||
* Returns a link to the stylesheet file.
|
||||
*
|
||||
* @param configuration the doclet configuration for the current run of javadoc
|
||||
* @return an HtmlTree for the lINK tag which provides the stylesheet location
|
||||
*/
|
||||
public static HtmlTree getStyleSheetProperties(ConfigurationImpl configuration) {
|
||||
public HtmlTree getStyleSheetProperties() {
|
||||
String filename = configuration.stylesheetfile;
|
||||
DocPath stylesheet;
|
||||
if (filename.length() > 0) {
|
||||
@ -260,14 +265,13 @@ public class SourceToHTMLConverter {
|
||||
*
|
||||
* @param pre the content tree to which the line will be added.
|
||||
* @param line the string to format.
|
||||
* @param tabLength the number of spaces for each tab.
|
||||
* @param currentLineNo the current number.
|
||||
*/
|
||||
private static void addLine(Content pre, String line, int tabLength,
|
||||
int currentLineNo) {
|
||||
private void addLine(Content pre, String line, int currentLineNo) {
|
||||
if (line != null) {
|
||||
StringBuilder lineBuffer = new StringBuilder(Util.escapeHtmlChars(line));
|
||||
Util.replaceTabs(tabLength, lineBuffer);
|
||||
StringBuilder lineBuffer = new StringBuilder(line);
|
||||
Util.replaceTabs(configuration, lineBuffer);
|
||||
Util.escapeHtmlChars(lineBuffer);
|
||||
pre.addContent(new RawHtml(lineBuffer.toString()));
|
||||
Content anchor = HtmlTree.A_NAME("line." + Integer.toString(currentLineNo));
|
||||
pre.addContent(anchor);
|
||||
|
@ -26,6 +26,7 @@
|
||||
package com.sun.tools.doclets.formats.html;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.formats.html.markup.*;
|
||||
@ -77,15 +78,70 @@ public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
|
||||
*
|
||||
* @param mw the writer for the member being documented
|
||||
* @param cd the classdoc to be documented
|
||||
* @param tableContents list of summary table contents
|
||||
* @param showTabs true if the table needs to show tabs
|
||||
* @return the content tree for the summary table
|
||||
*/
|
||||
public Content getSummaryTableTree(AbstractMemberWriter mw, ClassDoc cd) {
|
||||
public Content getSummaryTableTree(AbstractMemberWriter mw, ClassDoc cd,
|
||||
List<Content> tableContents, boolean showTabs) {
|
||||
Content caption;
|
||||
if (showTabs) {
|
||||
caption = getTableCaption(mw.methodTypes);
|
||||
generateMethodTypesScript(mw.typeMap, mw.methodTypes);
|
||||
}
|
||||
else {
|
||||
caption = getTableCaption(mw.getCaption());
|
||||
}
|
||||
Content table = HtmlTree.TABLE(HtmlStyle.overviewSummary, 0, 3, 0,
|
||||
mw.getTableSummary(), getTableCaption(mw.getCaption()));
|
||||
mw.getTableSummary(), caption);
|
||||
table.addContent(getSummaryTableHeader(mw.getSummaryTableHeader(cd), "col"));
|
||||
for (int i = 0; i < tableContents.size(); i++) {
|
||||
table.addContent(tableContents.get(i));
|
||||
}
|
||||
return table;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the summary table caption.
|
||||
*
|
||||
* @param methodTypes set comprising of method types to show as table caption
|
||||
* @return the caption for the summary table
|
||||
*/
|
||||
public Content getTableCaption(Set<MethodTypes> methodTypes) {
|
||||
Content tabbedCaption = new HtmlTree(HtmlTag.CAPTION);
|
||||
for (MethodTypes type : methodTypes) {
|
||||
Content captionSpan;
|
||||
Content span;
|
||||
if (type.isDefaultTab()) {
|
||||
captionSpan = HtmlTree.SPAN(new StringContent(type.text()));
|
||||
span = HtmlTree.SPAN(type.tabId(),
|
||||
HtmlStyle.activeTableTab, captionSpan);
|
||||
} else {
|
||||
captionSpan = HtmlTree.SPAN(getMethodTypeLinks(type));
|
||||
span = HtmlTree.SPAN(type.tabId(),
|
||||
HtmlStyle.tableTab, captionSpan);
|
||||
}
|
||||
Content tabSpan = HtmlTree.SPAN(HtmlStyle.tabEnd, getSpace());
|
||||
span.addContent(tabSpan);
|
||||
tabbedCaption.addContent(span);
|
||||
}
|
||||
return tabbedCaption;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the method type links for the table caption.
|
||||
*
|
||||
* @param methodType the method type to be displayed as link
|
||||
* @return the content tree for the method type link
|
||||
*/
|
||||
public Content getMethodTypeLinks(MethodTypes methodType) {
|
||||
StringBuilder jsShow = new StringBuilder("javascript:show(");
|
||||
jsShow.append(methodType.value()).append(");");
|
||||
HtmlTree link = HtmlTree.A(jsShow.toString(),
|
||||
new StringContent(methodType.text()));
|
||||
return link;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the inherited summary header.
|
||||
*
|
||||
|
@ -46,11 +46,13 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
|
||||
public class TagletWriterImpl extends TagletWriter {
|
||||
|
||||
private HtmlDocletWriter htmlWriter;
|
||||
private final HtmlDocletWriter htmlWriter;
|
||||
private final ConfigurationImpl configuration;
|
||||
|
||||
public TagletWriterImpl(HtmlDocletWriter htmlWriter, boolean isFirstSentence) {
|
||||
super(isFirstSentence);
|
||||
this.htmlWriter = htmlWriter;
|
||||
this.isFirstSentence = isFirstSentence;
|
||||
configuration = htmlWriter.configuration;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,8 +66,8 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public TagletOutput getDocRootOutput() {
|
||||
if (htmlWriter.configuration.docrootparent.length() > 0)
|
||||
return new TagletOutputImpl(htmlWriter.configuration.docrootparent);
|
||||
if (configuration.docrootparent.length() > 0)
|
||||
return new TagletOutputImpl(configuration.docrootparent);
|
||||
else if (htmlWriter.pathToRoot.isEmpty())
|
||||
return new TagletOutputImpl(".");
|
||||
else
|
||||
@ -81,7 +83,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
if (doc instanceof ClassDoc) {
|
||||
if (Util.isDeprecated((ProgramElementDoc) doc)) {
|
||||
output.append("<span class=\"strong\">" +
|
||||
ConfigurationImpl.getInstance().
|
||||
configuration.
|
||||
getText("doclet.Deprecated") + "</span> ");
|
||||
if (deprs.length > 0) {
|
||||
Tag[] commentTags = deprs[0].inlineTags();
|
||||
@ -97,7 +99,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
MemberDoc member = (MemberDoc) doc;
|
||||
if (Util.isDeprecated((ProgramElementDoc) doc)) {
|
||||
output.append("<span class=\"strong\">" +
|
||||
ConfigurationImpl.getInstance().
|
||||
configuration.
|
||||
getText("doclet.Deprecated") + "</span> ");
|
||||
if (deprs.length > 0) {
|
||||
output.append("<i>");
|
||||
@ -108,7 +110,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
} else {
|
||||
if (Util.isDeprecated(member.containingClass())) {
|
||||
output.append("<span class=\"strong\">" +
|
||||
ConfigurationImpl.getInstance().
|
||||
configuration.
|
||||
getText("doclet.Deprecated") + "</span> ");
|
||||
}
|
||||
}
|
||||
@ -120,7 +122,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public MessageRetriever getMsgRetriever() {
|
||||
return htmlWriter.configuration.message;
|
||||
return configuration.message;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -147,7 +149,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
*/
|
||||
public TagletOutput returnTagOutput(Tag returnTag) {
|
||||
TagletOutput result = new TagletOutputImpl(DocletConstants.NL + "<dt>" +
|
||||
"<span class=\"strong\">" + htmlWriter.configuration.getText("doclet.Returns") +
|
||||
"<span class=\"strong\">" + configuration.getText("doclet.Returns") +
|
||||
"</span>" + "</dt>" + "<dd>" +
|
||||
htmlWriter.commentTagsToString(returnTag, null, returnTag.inlineTags(),
|
||||
false) + "</dd>");
|
||||
@ -178,7 +180,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
((ClassWriterImpl) htmlWriter).getClassDoc().qualifiedName() + "." + ((FieldDoc) holder).name();
|
||||
DocLink link = constantsPath.fragment(whichConstant);
|
||||
result += htmlWriter.getHyperLinkString(link,
|
||||
htmlWriter.configuration.getText("doclet.Constants_Summary"),
|
||||
configuration.getText("doclet.Constants_Summary"),
|
||||
false);
|
||||
}
|
||||
if (holder.isClass() && ((ClassDoc)holder).isSerializable()) {
|
||||
@ -189,7 +191,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
DocPath serialPath = htmlWriter.pathToRoot.resolve(DocPaths.SERIALIZED_FORM);
|
||||
DocLink link = serialPath.fragment(((ClassDoc)holder).qualifiedName());
|
||||
result += htmlWriter.getHyperLinkString(link,
|
||||
htmlWriter.configuration.getText("doclet.Serialized_Form"), false);
|
||||
configuration.getText("doclet.Serialized_Form"), false);
|
||||
}
|
||||
}
|
||||
return result.equals("") ? null : new TagletOutputImpl(result + "</dd>");
|
||||
@ -200,7 +202,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
return result + ", " + DocletConstants.NL;
|
||||
} else {
|
||||
return "<dt><span class=\"strong\">" +
|
||||
htmlWriter.configuration().getText("doclet.See_Also") + "</span></dt><dd>";
|
||||
configuration.getText("doclet.See_Also") + "</span></dt><dd>";
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,7 +236,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
*/
|
||||
public TagletOutput getThrowsHeader() {
|
||||
return new TagletOutputImpl(DocletConstants.NL + "<dt>" + "<span class=\"strong\">" +
|
||||
htmlWriter.configuration().getText("doclet.Throws") + "</span></dt>");
|
||||
configuration.getText("doclet.Throws") + "</span></dt>");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -245,7 +247,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
result += throwsTag.exceptionType() == null ?
|
||||
htmlWriter.codeText(throwsTag.exceptionName()) :
|
||||
htmlWriter.codeText(
|
||||
htmlWriter.getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER,
|
||||
htmlWriter.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_MEMBER,
|
||||
throwsTag.exceptionType())));
|
||||
TagletOutput text = new TagletOutputImpl(
|
||||
htmlWriter.commentTagsToString(throwsTag, null,
|
||||
@ -263,7 +265,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
public TagletOutput throwsTagOutput(Type throwsType) {
|
||||
return new TagletOutputImpl(DocletConstants.NL + "<dd>" +
|
||||
htmlWriter.codeText(htmlWriter.getLink(
|
||||
new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "</dd>");
|
||||
new LinkInfoImpl(configuration, LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "</dd>");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -303,7 +305,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public Configuration configuration() {
|
||||
return htmlWriter.configuration();
|
||||
return configuration;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
package com.sun.tools.doclets.formats.html;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
@ -42,7 +44,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*/
|
||||
public class WriterFactoryImpl implements WriterFactory {
|
||||
|
||||
private ConfigurationImpl configuration;
|
||||
private final ConfigurationImpl configuration;
|
||||
|
||||
public WriterFactoryImpl(ConfigurationImpl configuration) {
|
||||
this.configuration = configuration;
|
||||
@ -60,7 +62,7 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
*/
|
||||
public PackageSummaryWriter getPackageSummaryWriter(PackageDoc packageDoc,
|
||||
PackageDoc prevPkg, PackageDoc nextPkg) throws Exception {
|
||||
return new PackageWriterImpl(ConfigurationImpl.getInstance(), packageDoc,
|
||||
return new PackageWriterImpl(configuration, packageDoc,
|
||||
prevPkg, nextPkg);
|
||||
}
|
||||
|
||||
@ -68,9 +70,9 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public ClassWriter getClassWriter(ClassDoc classDoc, ClassDoc prevClass,
|
||||
ClassDoc nextClass, ClassTree classTree)
|
||||
throws Exception {
|
||||
return new ClassWriterImpl(classDoc, prevClass, nextClass, classTree);
|
||||
ClassDoc nextClass, ClassTree classTree) throws IOException {
|
||||
return new ClassWriterImpl(configuration, classDoc,
|
||||
prevClass, nextClass, classTree);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -79,7 +81,8 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
public AnnotationTypeWriter getAnnotationTypeWriter(
|
||||
AnnotationTypeDoc annotationType, Type prevType, Type nextType)
|
||||
throws Exception {
|
||||
return new AnnotationTypeWriterImpl(annotationType, prevType, nextType);
|
||||
return new AnnotationTypeWriterImpl(configuration,
|
||||
annotationType, prevType, nextType);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,7 +109,7 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public EnumConstantWriter getEnumConstantWriter(ClassWriter classWriter)
|
||||
public EnumConstantWriterImpl getEnumConstantWriter(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return new EnumConstantWriterImpl((SubWriterHolderWriter) classWriter,
|
||||
classWriter.getClassDoc());
|
||||
@ -115,7 +118,7 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public FieldWriter getFieldWriter(ClassWriter classWriter)
|
||||
public FieldWriterImpl getFieldWriter(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return new FieldWriterImpl((SubWriterHolderWriter) classWriter,
|
||||
classWriter.getClassDoc());
|
||||
@ -124,7 +127,7 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public MethodWriter getMethodWriter(ClassWriter classWriter)
|
||||
public MethodWriterImpl getMethodWriter(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return new MethodWriterImpl((SubWriterHolderWriter) classWriter,
|
||||
classWriter.getClassDoc());
|
||||
@ -133,7 +136,7 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public ConstructorWriter getConstructorWriter(ClassWriter classWriter)
|
||||
public ConstructorWriterImpl getConstructorWriter(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return new ConstructorWriterImpl((SubWriterHolderWriter) classWriter,
|
||||
classWriter.getClassDoc());
|
||||
@ -143,20 +146,20 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public MemberSummaryWriter getMemberSummaryWriter(
|
||||
ClassWriter classWriter, int memberType)
|
||||
throws Exception {
|
||||
ClassWriter classWriter, int memberType)
|
||||
throws Exception {
|
||||
switch (memberType) {
|
||||
case VisibleMemberMap.CONSTRUCTORS:
|
||||
return (ConstructorWriterImpl) getConstructorWriter(classWriter);
|
||||
return getConstructorWriter(classWriter);
|
||||
case VisibleMemberMap.ENUM_CONSTANTS:
|
||||
return (EnumConstantWriterImpl) getEnumConstantWriter(classWriter);
|
||||
return getEnumConstantWriter(classWriter);
|
||||
case VisibleMemberMap.FIELDS:
|
||||
return (FieldWriterImpl) getFieldWriter(classWriter);
|
||||
return getFieldWriter(classWriter);
|
||||
case VisibleMemberMap.INNERCLASSES:
|
||||
return new NestedClassWriterImpl((SubWriterHolderWriter)
|
||||
classWriter, classWriter.getClassDoc());
|
||||
case VisibleMemberMap.METHODS:
|
||||
return (MethodWriterImpl) getMethodWriter(classWriter);
|
||||
return getMethodWriter(classWriter);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@ -184,6 +187,6 @@ public class WriterFactoryImpl implements WriterFactory {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public SerializedFormWriter getSerializedFormWriter() throws Exception {
|
||||
return new SerializedFormWriterImpl();
|
||||
return new SerializedFormWriterImpl(configuration);
|
||||
}
|
||||
}
|
||||
|
@ -41,13 +41,15 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*
|
||||
* @author Bhavesh Patel
|
||||
*/
|
||||
public class DocType extends Content{
|
||||
public class DocType extends Content {
|
||||
|
||||
private String docType;
|
||||
|
||||
private static DocType transitional;
|
||||
public static final DocType TRANSITIONAL =
|
||||
new DocType("Transitional", "http://www.w3.org/TR/html4/loose.dtd");
|
||||
|
||||
private static DocType frameset;
|
||||
public static final DocType FRAMESET =
|
||||
new DocType("Frameset", "http://www.w3.org/TR/html4/frameset.dtd");
|
||||
|
||||
/**
|
||||
* Constructor to construct a DocType object.
|
||||
@ -59,28 +61,6 @@ public class DocType extends Content{
|
||||
"//EN\" \"" + dtd + "\">" + DocletConstants.NL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct and return a HTML 4.01 transitional DocType content
|
||||
*
|
||||
* @return a content tree for transitional DocType
|
||||
*/
|
||||
public static DocType Transitional() {
|
||||
if (transitional == null)
|
||||
transitional = new DocType("Transitional", "http://www.w3.org/TR/html4/loose.dtd");
|
||||
return transitional;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct and return a HTML 4.01 frameset DocType content
|
||||
*
|
||||
* @return a content tree for frameset DocType
|
||||
*/
|
||||
public static DocType Frameset() {
|
||||
if (frameset == null)
|
||||
frameset = new DocType("Frameset", "http://www.w3.org/TR/html4/frameset.dtd");
|
||||
return frameset;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is not supported by the class.
|
||||
*
|
||||
|
@ -31,6 +31,7 @@ import java.util.*;
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.formats.html.ConfigurationImpl;
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.DocFile;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.DocLink;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.DocPath;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.DocPaths;
|
||||
@ -63,7 +64,7 @@ public abstract class HtmlDocWriter extends HtmlWriter {
|
||||
throws IOException {
|
||||
super(configuration, filename);
|
||||
configuration.message.notice("doclet.Generating_0",
|
||||
filename.resolveAgainst(configuration.destDirName));
|
||||
DocFile.createFileForOutput(configuration, filename).getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -254,7 +255,7 @@ public abstract class HtmlDocWriter extends HtmlWriter {
|
||||
*/
|
||||
public void printFramesetDocument(String title, boolean noTimeStamp,
|
||||
Content frameset) throws IOException {
|
||||
Content htmlDocType = DocType.Frameset();
|
||||
Content htmlDocType = DocType.FRAMESET;
|
||||
Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
|
||||
Content head = new HtmlTree(HtmlTag.HEAD);
|
||||
if (! noTimeStamp) {
|
||||
|
@ -37,6 +37,7 @@ package com.sun.tools.doclets.formats.html.markup;
|
||||
*/
|
||||
public enum HtmlStyle {
|
||||
aboutLanguage,
|
||||
activeTableTab,
|
||||
altColor,
|
||||
bar,
|
||||
block,
|
||||
@ -75,6 +76,7 @@ public enum HtmlStyle {
|
||||
summary,
|
||||
deprecatedContent,
|
||||
tabEnd,
|
||||
tableTab,
|
||||
title,
|
||||
topNav;
|
||||
}
|
||||
|
@ -493,6 +493,20 @@ public class HtmlTree extends Content {
|
||||
return htmltree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a SCRIPT tag with the type and src attributes.
|
||||
*
|
||||
* @param type type of link
|
||||
* @param src the path for the script
|
||||
* @return an HtmlTree object for the SCRIPT tag
|
||||
*/
|
||||
public static HtmlTree SCRIPT(String type, String src) {
|
||||
HtmlTree htmltree = new HtmlTree(HtmlTag.SCRIPT);
|
||||
htmltree.addAttr(HtmlAttr.TYPE, nullCheck(type));
|
||||
htmltree.addAttr(HtmlAttr.SRC, nullCheck(src));
|
||||
return htmltree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a SMALL tag with some content.
|
||||
*
|
||||
@ -539,6 +553,23 @@ public class HtmlTree extends Content {
|
||||
return htmltree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a SPAN tag with id and style class attributes. It also encloses
|
||||
* a content.
|
||||
*
|
||||
* @param id the id for the tag
|
||||
* @param styleClass stylesheet class for the tag
|
||||
* @param body content for the tag
|
||||
* @return an HtmlTree object for the SPAN tag
|
||||
*/
|
||||
public static HtmlTree SPAN(String id, HtmlStyle styleClass, Content body) {
|
||||
HtmlTree htmltree = new HtmlTree(HtmlTag.SPAN, nullCheck(body));
|
||||
htmltree.addAttr(HtmlAttr.ID, nullCheck(id));
|
||||
if (styleClass != null)
|
||||
htmltree.addStyle(styleClass);
|
||||
return htmltree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a Table tag with border, width and summary attributes and
|
||||
* some content.
|
||||
@ -742,6 +773,9 @@ public class HtmlTree extends Content {
|
||||
return (hasAttr(HtmlAttr.HREF) && !hasContent());
|
||||
case META :
|
||||
return (hasAttr(HtmlAttr.CONTENT) && !hasContent());
|
||||
case SCRIPT :
|
||||
return ((hasAttr(HtmlAttr.TYPE) && hasAttr(HtmlAttr.SRC) && !hasContent()) ||
|
||||
(hasAttr(HtmlAttr.TYPE) && hasContent()));
|
||||
default :
|
||||
return hasContent();
|
||||
}
|
||||
|
@ -26,6 +26,7 @@
|
||||
package com.sun.tools.doclets.formats.html.markup;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
@ -144,6 +145,8 @@ public class HtmlWriter {
|
||||
|
||||
private final Writer writer;
|
||||
|
||||
private Content script;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
@ -301,7 +304,8 @@ public class HtmlWriter {
|
||||
// Don't print windowtitle script for overview-frame, allclasses-frame
|
||||
// and package-frame
|
||||
if (includeScript) {
|
||||
body.addContent(getWinTitleScript());
|
||||
this.script = getWinTitleScript();
|
||||
body.addContent(script);
|
||||
Content noScript = HtmlTree.NOSCRIPT(
|
||||
HtmlTree.DIV(getResource("doclet.No_Script_Message")));
|
||||
body.addContent(noScript);
|
||||
@ -309,6 +313,53 @@ public class HtmlWriter {
|
||||
return body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generated javascript variables for the document.
|
||||
*
|
||||
* @param typeMap map comprising of method and type relationship
|
||||
* @param methodTypes set comprising of all methods types for this class
|
||||
*/
|
||||
public void generateMethodTypesScript(Map<String,Integer> typeMap,
|
||||
Set<MethodTypes> methodTypes) {
|
||||
String sep = "";
|
||||
StringBuilder vars = new StringBuilder("var methods = {");
|
||||
for (Map.Entry<String,Integer> entry : typeMap.entrySet()) {
|
||||
vars.append(sep);
|
||||
sep = ",";
|
||||
vars.append("\"");
|
||||
vars.append(entry.getKey());
|
||||
vars.append("\":");
|
||||
vars.append(entry.getValue());
|
||||
}
|
||||
vars.append("};").append(DocletConstants.NL);
|
||||
sep = "";
|
||||
vars.append("var tabs = {");
|
||||
for (MethodTypes entry : methodTypes) {
|
||||
vars.append(sep);
|
||||
sep = ",";
|
||||
vars.append(entry.value()).append(":");
|
||||
vars.append("[").append("\"").append(entry.tabId());
|
||||
vars.append("\"").append(sep).append("\"").append(entry.text()).append("\"]");
|
||||
}
|
||||
vars.append("};").append(DocletConstants.NL);
|
||||
addStyles(HtmlStyle.altColor, vars);
|
||||
addStyles(HtmlStyle.rowColor, vars);
|
||||
addStyles(HtmlStyle.tableTab, vars);
|
||||
addStyles(HtmlStyle.activeTableTab, vars);
|
||||
script.addContent(new RawHtml(vars.toString()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds javascript style variables to the document.
|
||||
*
|
||||
* @param style style to be added as a javascript variable
|
||||
* @param vars variable string to which the style variable will be added
|
||||
*/
|
||||
public void addStyles(HtmlStyle style, StringBuilder vars) {
|
||||
vars.append("var ").append(style).append(" = \"").append(style)
|
||||
.append("\";").append(DocletConstants.NL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an HtmlTree for the TITLE tag.
|
||||
*
|
||||
|
@ -51,8 +51,8 @@ public abstract class AbstractDoclet {
|
||||
/**
|
||||
* The only doclet that may use this toolkit is {@value}
|
||||
*/
|
||||
private static final String TOOLKIT_DOCLET_NAME = new
|
||||
com.sun.tools.doclets.formats.html.HtmlDoclet().getClass().getName();
|
||||
private static final String TOOLKIT_DOCLET_NAME =
|
||||
com.sun.tools.doclets.formats.html.HtmlDoclet.class.getName();
|
||||
|
||||
/**
|
||||
* Verify that the only doclet that is using this toolkit is
|
||||
|
@ -32,6 +32,7 @@ import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.builders.BuilderFactory;
|
||||
import com.sun.tools.doclets.internal.toolkit.taglets.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
import javax.tools.JavaFileManager;
|
||||
|
||||
/**
|
||||
* Configure the output based on the options. Doclets should sub-class
|
||||
@ -77,14 +78,16 @@ public abstract class Configuration {
|
||||
|
||||
/**
|
||||
* This is true if option "-serialwarn" is used. Defualt value is false to
|
||||
* supress excessive warnings about serial tag.
|
||||
* suppress excessive warnings about serial tag.
|
||||
*/
|
||||
public boolean serialwarn = false;
|
||||
|
||||
/**
|
||||
* The specified amount of space between tab stops.
|
||||
*/
|
||||
public int sourcetab = DocletConstants.DEFAULT_TAB_STOP_LENGTH;
|
||||
public int sourcetab;
|
||||
|
||||
public String tabSpaces;
|
||||
|
||||
/**
|
||||
* True if we should generate browsable sources.
|
||||
@ -259,6 +262,7 @@ public abstract class Configuration {
|
||||
"com.sun.tools.doclets.internal.toolkit.resources.doclets");
|
||||
excludedDocFileDirs = new HashSet<String>();
|
||||
excludedQualifiers = new HashSet<String>();
|
||||
setTabWidth(DocletConstants.DEFAULT_TAB_STOP_LENGTH);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -382,7 +386,7 @@ public abstract class Configuration {
|
||||
} else if (opt.equals("-sourcetab")) {
|
||||
linksource = true;
|
||||
try {
|
||||
sourcetab = Integer.parseInt(os[1]);
|
||||
setTabWidth(Integer.parseInt(os[1]));
|
||||
} catch (NumberFormatException e) {
|
||||
//Set to -1 so that warning will be printed
|
||||
//to indicate what is valid argument.
|
||||
@ -390,7 +394,7 @@ public abstract class Configuration {
|
||||
}
|
||||
if (sourcetab <= 0) {
|
||||
message.warning("doclet.sourcetab_warning");
|
||||
sourcetab = DocletConstants.DEFAULT_TAB_STOP_LENGTH;
|
||||
setTabWidth(DocletConstants.DEFAULT_TAB_STOP_LENGTH);
|
||||
}
|
||||
} else if (opt.equals("-notimestamp")) {
|
||||
notimestamp = true;
|
||||
@ -442,7 +446,7 @@ public abstract class Configuration {
|
||||
/**
|
||||
* Initialize the taglet manager. The strings to initialize the simple custom tags should
|
||||
* be in the following format: "[tag name]:[location str]:[heading]".
|
||||
* @param customTagStrs the set two dimentional arrays of strings. These arrays contain
|
||||
* @param customTagStrs the set two dimensional arrays of strings. These arrays contain
|
||||
* either -tag or -taglet arguments.
|
||||
*/
|
||||
private void initTagletManager(Set<String[]> customTagStrs) {
|
||||
@ -453,11 +457,11 @@ public abstract class Configuration {
|
||||
for (Iterator<String[]> it = customTagStrs.iterator(); it.hasNext(); ) {
|
||||
args = it.next();
|
||||
if (args[0].equals("-taglet")) {
|
||||
tagletManager.addCustomTag(args[1], tagletpath);
|
||||
tagletManager.addCustomTag(args[1], getFileManager(), tagletpath);
|
||||
continue;
|
||||
}
|
||||
String[] tokens = tokenize(args[1],
|
||||
TagletManager.SIMPLE_TAGLET_OPT_SEPERATOR, 3);
|
||||
TagletManager.SIMPLE_TAGLET_OPT_SEPARATOR, 3);
|
||||
if (tokens.length == 1) {
|
||||
String tagName = args[1];
|
||||
if (tagletManager.isKnownCustomTag(tagName)) {
|
||||
@ -749,7 +753,7 @@ public abstract class Configuration {
|
||||
* @return the input steam to the builder XML.
|
||||
* @throws FileNotFoundException when the given XML file cannot be found.
|
||||
*/
|
||||
public InputStream getBuilderXML() throws FileNotFoundException {
|
||||
public InputStream getBuilderXML() throws IOException {
|
||||
return builderXMLPath == null ?
|
||||
Configuration.class.getResourceAsStream(DEFAULT_BUILDER_XML) :
|
||||
DocFile.createFileForInput(this, builderXMLPath).openInputStream();
|
||||
@ -760,6 +764,11 @@ public abstract class Configuration {
|
||||
*/
|
||||
public abstract Locale getLocale();
|
||||
|
||||
/**
|
||||
* Return the current file manager.
|
||||
*/
|
||||
public abstract JavaFileManager getFileManager();
|
||||
|
||||
/**
|
||||
* Return the comparator that will be used to sort member documentation.
|
||||
* To no do any sorting, return null.
|
||||
@ -767,4 +776,9 @@ public abstract class Configuration {
|
||||
* @return the {@link java.util.Comparator} used to sort members.
|
||||
*/
|
||||
public abstract Comparator<ProgramElementDoc> getMemberComparator();
|
||||
|
||||
private void setTabWidth(int n) {
|
||||
sourcetab = n;
|
||||
tabSpaces = String.format("%" + n + "s", "");
|
||||
}
|
||||
}
|
||||
|
@ -58,9 +58,11 @@ public interface MemberSummaryWriter {
|
||||
* Get the summary table for the given class.
|
||||
*
|
||||
* @param classDoc the class the summary table belongs to
|
||||
* @param tableContents list of contents that will be added to the summary table
|
||||
* @return a content tree for the member summary table
|
||||
*/
|
||||
public Content getSummaryTableTree(ClassDoc classDoc);
|
||||
public Content getSummaryTableTree(ClassDoc classDoc,
|
||||
List<Content> tableContents);
|
||||
|
||||
/**
|
||||
* Add the member summary for the given class and member.
|
||||
@ -68,11 +70,11 @@ public interface MemberSummaryWriter {
|
||||
* @param classDoc the class the summary belongs to
|
||||
* @param member the member that is documented
|
||||
* @param firstSentenceTags the tags for the sentence being documented
|
||||
* @param tableTree the content treeto which the information will be added
|
||||
* @param counter the counter for determing style for the table row
|
||||
* @param tableContents list of contents to which the summary will be added
|
||||
* @param counter the counter for determining id and style for the table row
|
||||
*/
|
||||
public void addMemberSummary(ClassDoc classDoc, ProgramElementDoc member,
|
||||
Tag[] firstSentenceTags, Content tableTree, int counter);
|
||||
Tag[] firstSentenceTags, List<Content> tableContents, int counter);
|
||||
|
||||
/**
|
||||
* Get the inherited member summary header for the given class.
|
||||
|
@ -52,18 +52,46 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
*/
|
||||
|
||||
public abstract class AbstractBuilder {
|
||||
public static class Context {
|
||||
/**
|
||||
* The configuration used in this run of the doclet.
|
||||
*/
|
||||
final Configuration configuration;
|
||||
|
||||
/**
|
||||
* Keep track of which packages we have seen for
|
||||
* efficiency purposes. We don't want to copy the
|
||||
* doc files multiple times for a single package.
|
||||
*/
|
||||
final Set<String> containingPackagesSeen;
|
||||
|
||||
/**
|
||||
* Shared parser for the builder XML file
|
||||
*/
|
||||
final LayoutParser layoutParser;
|
||||
|
||||
Context(Configuration configuration,
|
||||
Set<String> containingPackagesSeen,
|
||||
LayoutParser layoutParser) {
|
||||
this.configuration = configuration;
|
||||
this.containingPackagesSeen = containingPackagesSeen;
|
||||
this.layoutParser = layoutParser;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The configuration used in this run of the doclet.
|
||||
*/
|
||||
protected Configuration configuration;
|
||||
protected final Configuration configuration;
|
||||
|
||||
/**
|
||||
* Keep track of which packages we have seen for
|
||||
* efficiency purposes. We don't want to copy the
|
||||
* doc files multiple times for a single package.
|
||||
*/
|
||||
protected static Set<String> containingPackagesSeen;
|
||||
protected final Set<String> containingPackagesSeen;
|
||||
|
||||
protected final LayoutParser layoutParser;
|
||||
|
||||
/**
|
||||
* True if we want to print debug output.
|
||||
@ -75,8 +103,10 @@ public abstract class AbstractBuilder {
|
||||
* @param configuration the configuration used in this run
|
||||
* of the doclet.
|
||||
*/
|
||||
public AbstractBuilder(Configuration configuration) {
|
||||
this.configuration = configuration;
|
||||
public AbstractBuilder(Context c) {
|
||||
this.configuration = c.configuration;
|
||||
this.containingPackagesSeen = c.containingPackagesSeen;
|
||||
this.layoutParser = c.layoutParser;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
package com.sun.tools.doclets.internal.toolkit.builders;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
|
||||
@ -48,8 +50,8 @@ public abstract class AbstractMemberBuilder extends AbstractBuilder {
|
||||
* @param configuration the configuration used in this run
|
||||
* of the doclet.
|
||||
*/
|
||||
public AbstractMemberBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
public AbstractMemberBuilder(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -54,12 +54,12 @@ public class AnnotationTypeBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* The annotation type being documented.
|
||||
*/
|
||||
private AnnotationTypeDoc annotationTypeDoc;
|
||||
private final AnnotationTypeDoc annotationTypeDoc;
|
||||
|
||||
/**
|
||||
* The doclet specific writer.
|
||||
*/
|
||||
private AnnotationTypeWriter writer;
|
||||
private final AnnotationTypeWriter writer;
|
||||
|
||||
/**
|
||||
* The content tree for the annotation documentation.
|
||||
@ -69,38 +69,37 @@ public class AnnotationTypeBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* Construct a new ClassBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param annotationTypeDoc the class being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private AnnotationTypeBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private AnnotationTypeBuilder(Context context,
|
||||
AnnotationTypeDoc annotationTypeDoc,
|
||||
AnnotationTypeWriter writer) {
|
||||
super(context);
|
||||
this.annotationTypeDoc = annotationTypeDoc;
|
||||
this.writer = writer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ClassBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
* @param annotationTypeDoc the class being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static AnnotationTypeBuilder getInstance(Configuration configuration,
|
||||
AnnotationTypeDoc annotationTypeDoc, AnnotationTypeWriter writer)
|
||||
throws Exception {
|
||||
AnnotationTypeBuilder builder = new AnnotationTypeBuilder(configuration);
|
||||
builder.configuration = configuration;
|
||||
builder.annotationTypeDoc = annotationTypeDoc;
|
||||
builder.writer = writer;
|
||||
if(containingPackagesSeen == null) {
|
||||
containingPackagesSeen = new HashSet<String>();
|
||||
}
|
||||
return builder;
|
||||
public static AnnotationTypeBuilder getInstance(Context context,
|
||||
AnnotationTypeDoc annotationTypeDoc,
|
||||
AnnotationTypeWriter writer)
|
||||
throws Exception {
|
||||
return new AnnotationTypeBuilder(context, annotationTypeDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void build() throws IOException {
|
||||
build(LayoutParser.getInstance(configuration).parseXML(ROOT), contentTree);
|
||||
build(layoutParser.parseXML(ROOT), contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,8 +25,6 @@
|
||||
|
||||
package com.sun.tools.doclets.internal.toolkit.builders;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
@ -44,43 +42,36 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
* @since 1.5
|
||||
*/
|
||||
public class AnnotationTypeOptionalMemberBuilder extends
|
||||
AnnotationTypeRequiredMemberBuilder {
|
||||
AnnotationTypeRequiredMemberBuilder {
|
||||
|
||||
|
||||
/**
|
||||
* Construct a new AnnotationTypeMemberBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whose members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private AnnotationTypeOptionalMemberBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private AnnotationTypeOptionalMemberBuilder(Context context,
|
||||
ClassDoc classDoc,
|
||||
AnnotationTypeOptionalMemberWriter writer) {
|
||||
super(context, classDoc, writer,
|
||||
VisibleMemberMap.ANNOTATION_TYPE_MEMBER_OPTIONAL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Construct a new AnnotationTypeMemberBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whose members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static AnnotationTypeOptionalMemberBuilder getInstance(
|
||||
Configuration configuration, ClassDoc classDoc,
|
||||
Context context, ClassDoc classDoc,
|
||||
AnnotationTypeOptionalMemberWriter writer) {
|
||||
AnnotationTypeOptionalMemberBuilder builder =
|
||||
new AnnotationTypeOptionalMemberBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap = new VisibleMemberMap(classDoc,
|
||||
VisibleMemberMap.ANNOTATION_TYPE_MEMBER_OPTIONAL, configuration.nodeprecated);
|
||||
builder.members = new ArrayList<ProgramElementDoc>(
|
||||
builder.visibleMemberMap.getMembersFor(classDoc));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(builder.members,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
return new AnnotationTypeOptionalMemberBuilder(context,
|
||||
classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -74,37 +74,40 @@ public class AnnotationTypeRequiredMemberBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* Construct a new AnnotationTypeRequiredMemberBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whose members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
protected AnnotationTypeRequiredMemberBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
protected AnnotationTypeRequiredMemberBuilder(Context context,
|
||||
ClassDoc classDoc,
|
||||
AnnotationTypeRequiredMemberWriter writer,
|
||||
int memberType) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
this.visibleMemberMap = new VisibleMemberMap(classDoc, memberType,
|
||||
configuration.nodeprecated);
|
||||
this.members = new ArrayList<ProgramElementDoc>(
|
||||
this.visibleMemberMap.getMembersFor(classDoc));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(this.members, configuration.getMemberComparator());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Construct a new AnnotationTypeMemberBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whose members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static AnnotationTypeRequiredMemberBuilder getInstance(
|
||||
Configuration configuration, ClassDoc classDoc,
|
||||
Context context, ClassDoc classDoc,
|
||||
AnnotationTypeRequiredMemberWriter writer) {
|
||||
AnnotationTypeRequiredMemberBuilder builder =
|
||||
new AnnotationTypeRequiredMemberBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap = new VisibleMemberMap(classDoc,
|
||||
VisibleMemberMap.ANNOTATION_TYPE_MEMBER_REQUIRED, configuration.nodeprecated);
|
||||
builder.members = new ArrayList<ProgramElementDoc>(
|
||||
builder.visibleMemberMap.getMembersFor(classDoc));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(builder.members,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
return new AnnotationTypeRequiredMemberBuilder(context, classDoc,
|
||||
writer,
|
||||
VisibleMemberMap.ANNOTATION_TYPE_MEMBER_REQUIRED);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,9 @@
|
||||
|
||||
package com.sun.tools.doclets.internal.toolkit.builders;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
@ -46,12 +49,14 @@ public class BuilderFactory {
|
||||
/**
|
||||
* The current configuration of the doclet.
|
||||
*/
|
||||
private Configuration configuration;
|
||||
private final Configuration configuration;
|
||||
|
||||
/**
|
||||
* The factory to retrieve the required writers from.
|
||||
*/
|
||||
private WriterFactory writerFactory;
|
||||
private final WriterFactory writerFactory;
|
||||
|
||||
private final AbstractBuilder.Context context;
|
||||
|
||||
/**
|
||||
* Construct a builder factory using the given configuration.
|
||||
@ -61,6 +66,10 @@ public class BuilderFactory {
|
||||
public BuilderFactory (Configuration configuration) {
|
||||
this.configuration = configuration;
|
||||
this.writerFactory = configuration.getWriterFactory();
|
||||
|
||||
Set<String> containingPackagesSeen = new HashSet<String>();
|
||||
context = new AbstractBuilder.Context(configuration, containingPackagesSeen,
|
||||
LayoutParser.getInstance(configuration));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -68,7 +77,7 @@ public class BuilderFactory {
|
||||
* @return the builder that builds the constant summary.
|
||||
*/
|
||||
public AbstractBuilder getConstantsSummaryBuider() throws Exception {
|
||||
return ConstantsSummaryBuilder.getInstance(configuration,
|
||||
return ConstantsSummaryBuilder.getInstance(context,
|
||||
writerFactory.getConstantsSummaryWriter());
|
||||
}
|
||||
|
||||
@ -82,7 +91,7 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getPackageSummaryBuilder(PackageDoc pkg, PackageDoc prevPkg,
|
||||
PackageDoc nextPkg) throws Exception {
|
||||
return PackageSummaryBuilder.getInstance(configuration, pkg,
|
||||
return PackageSummaryBuilder.getInstance(context, pkg,
|
||||
writerFactory.getPackageSummaryWriter(pkg, prevPkg, nextPkg));
|
||||
}
|
||||
|
||||
@ -97,9 +106,9 @@ public class BuilderFactory {
|
||||
* writer is not supported by the doclet.
|
||||
*/
|
||||
public AbstractBuilder getClassBuilder(ClassDoc classDoc,
|
||||
ClassDoc prevClass, ClassDoc nextClass, ClassTree classTree)
|
||||
ClassDoc prevClass, ClassDoc nextClass, ClassTree classTree)
|
||||
throws Exception {
|
||||
return ClassBuilder.getInstance(configuration, classDoc,
|
||||
return ClassBuilder.getInstance(context, classDoc,
|
||||
writerFactory.getClassWriter(classDoc, prevClass, nextClass,
|
||||
classTree));
|
||||
}
|
||||
@ -117,9 +126,8 @@ public class BuilderFactory {
|
||||
AnnotationTypeDoc annotationType,
|
||||
Type prevType, Type nextType)
|
||||
throws Exception {
|
||||
return AnnotationTypeBuilder.getInstance(configuration, annotationType,
|
||||
writerFactory.getAnnotationTypeWriter(annotationType, prevType,
|
||||
nextType));
|
||||
return AnnotationTypeBuilder.getInstance(context, annotationType,
|
||||
writerFactory.getAnnotationTypeWriter(annotationType, prevType, nextType));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,7 +137,7 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getMethodBuilder(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return MethodBuilder.getInstance(configuration,
|
||||
return MethodBuilder.getInstance(context,
|
||||
classWriter.getClassDoc(),
|
||||
writerFactory.getMethodWriter(classWriter));
|
||||
}
|
||||
@ -144,7 +152,7 @@ public class BuilderFactory {
|
||||
public AbstractBuilder getAnnotationTypeOptionalMemberBuilder(
|
||||
AnnotationTypeWriter annotationTypeWriter)
|
||||
throws Exception {
|
||||
return AnnotationTypeOptionalMemberBuilder.getInstance(configuration,
|
||||
return AnnotationTypeOptionalMemberBuilder.getInstance(context,
|
||||
annotationTypeWriter.getAnnotationTypeDoc(),
|
||||
writerFactory.getAnnotationTypeOptionalMemberWriter(
|
||||
annotationTypeWriter));
|
||||
@ -160,7 +168,7 @@ public class BuilderFactory {
|
||||
public AbstractBuilder getAnnotationTypeRequiredMemberBuilder(
|
||||
AnnotationTypeWriter annotationTypeWriter)
|
||||
throws Exception {
|
||||
return AnnotationTypeRequiredMemberBuilder.getInstance(configuration,
|
||||
return AnnotationTypeRequiredMemberBuilder.getInstance(context,
|
||||
annotationTypeWriter.getAnnotationTypeDoc(),
|
||||
writerFactory.getAnnotationTypeRequiredMemberWriter(
|
||||
annotationTypeWriter));
|
||||
@ -173,7 +181,7 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getEnumConstantsBuilder(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return EnumConstantBuilder.getInstance(configuration, classWriter.getClassDoc(),
|
||||
return EnumConstantBuilder.getInstance(context, classWriter.getClassDoc(),
|
||||
writerFactory.getEnumConstantWriter(classWriter));
|
||||
}
|
||||
|
||||
@ -184,7 +192,7 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getFieldBuilder(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return FieldBuilder.getInstance(configuration, classWriter.getClassDoc(),
|
||||
return FieldBuilder.getInstance(context, classWriter.getClassDoc(),
|
||||
writerFactory.getFieldWriter(classWriter));
|
||||
}
|
||||
|
||||
@ -195,9 +203,9 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getConstructorBuilder(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return ConstructorBuilder.getInstance(configuration,
|
||||
classWriter.getClassDoc(), writerFactory.getConstructorWriter(
|
||||
classWriter));
|
||||
return ConstructorBuilder.getInstance(context,
|
||||
classWriter.getClassDoc(),
|
||||
writerFactory.getConstructorWriter(classWriter));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +215,7 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getMemberSummaryBuilder(ClassWriter classWriter)
|
||||
throws Exception {
|
||||
return MemberSummaryBuilder.getInstance(classWriter, configuration);
|
||||
return MemberSummaryBuilder.getInstance(classWriter, context);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -220,8 +228,7 @@ public class BuilderFactory {
|
||||
public AbstractBuilder getMemberSummaryBuilder(
|
||||
AnnotationTypeWriter annotationTypeWriter)
|
||||
throws Exception {
|
||||
return MemberSummaryBuilder.getInstance(annotationTypeWriter,
|
||||
configuration);
|
||||
return MemberSummaryBuilder.getInstance(annotationTypeWriter, context);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -231,6 +238,6 @@ public class BuilderFactory {
|
||||
*/
|
||||
public AbstractBuilder getSerializedFormBuilder()
|
||||
throws Exception {
|
||||
return SerializedFormBuilder.getInstance(configuration);
|
||||
return SerializedFormBuilder.getInstance(context);
|
||||
}
|
||||
}
|
||||
|
@ -54,22 +54,22 @@ public class ClassBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* The class being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
/**
|
||||
* The doclet specific writer.
|
||||
*/
|
||||
private ClassWriter writer;
|
||||
private final ClassWriter writer;
|
||||
|
||||
/**
|
||||
* Keep track of whether or not this classdoc is an interface.
|
||||
*/
|
||||
private boolean isInterface = false;
|
||||
private final boolean isInterface;
|
||||
|
||||
/**
|
||||
* Keep track of whether or not this classdoc is an enum.
|
||||
*/
|
||||
private boolean isEnum = false;
|
||||
private final boolean isEnum;
|
||||
|
||||
/**
|
||||
* The content tree for the class documentation.
|
||||
@ -79,44 +79,45 @@ public class ClassBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* Construct a new ClassBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context
|
||||
* @param classDoc the class being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private ClassBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private ClassBuilder(Context context,
|
||||
ClassDoc classDoc, ClassWriter writer) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
if (classDoc.isInterface()) {
|
||||
isInterface = true;
|
||||
isEnum = false;
|
||||
} else if (classDoc.isEnum()) {
|
||||
isInterface = false;
|
||||
isEnum = true;
|
||||
Util.setEnumDocumentation(configuration, classDoc);
|
||||
} else {
|
||||
isInterface = false;
|
||||
isEnum = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ClassBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context
|
||||
* @param classDoc the class being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static ClassBuilder getInstance(Configuration configuration,
|
||||
ClassDoc classDoc, ClassWriter writer)
|
||||
throws Exception {
|
||||
ClassBuilder builder = new ClassBuilder(configuration);
|
||||
builder.configuration = configuration;
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
if (classDoc.isInterface()) {
|
||||
builder.isInterface = true;
|
||||
} else if (classDoc.isEnum()) {
|
||||
builder.isEnum = true;
|
||||
Util.setEnumDocumentation(configuration, classDoc);
|
||||
}
|
||||
if(containingPackagesSeen == null) {
|
||||
containingPackagesSeen = new HashSet<String>();
|
||||
}
|
||||
return builder;
|
||||
public static ClassBuilder getInstance(Context context,
|
||||
ClassDoc classDoc, ClassWriter writer) {
|
||||
return new ClassBuilder(context, classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void build() throws IOException {
|
||||
build(LayoutParser.getInstance(configuration).parseXML(ROOT), contentTree);
|
||||
build(layoutParser.parseXML(ROOT), contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -60,12 +60,12 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* The writer used to write the results.
|
||||
*/
|
||||
protected ConstantsSummaryWriter writer;
|
||||
protected final ConstantsSummaryWriter writer;
|
||||
|
||||
/**
|
||||
* The set of ClassDocs that have constant fields.
|
||||
*/
|
||||
protected Set<ClassDoc> classDocsWithConstFields;
|
||||
protected final Set<ClassDoc> classDocsWithConstFields;
|
||||
|
||||
/**
|
||||
* The set of printed package headers.
|
||||
@ -90,27 +90,25 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* Construct a new ConstantsSummaryBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param writer the writer for the summary.
|
||||
*/
|
||||
private ConstantsSummaryBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private ConstantsSummaryBuilder(Context context,
|
||||
ConstantsSummaryWriter writer) {
|
||||
super(context);
|
||||
this.writer = writer;
|
||||
this.classDocsWithConstFields = new HashSet<ClassDoc>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a ConstantsSummaryBuilder.
|
||||
*
|
||||
* @param configuration the configuration used in this run
|
||||
* of the doclet.
|
||||
* @param context the build context.
|
||||
* @param writer the writer for the summary.
|
||||
*/
|
||||
public static ConstantsSummaryBuilder getInstance(
|
||||
Configuration configuration, ConstantsSummaryWriter writer) {
|
||||
ConstantsSummaryBuilder builder = new ConstantsSummaryBuilder(
|
||||
configuration);
|
||||
builder.writer = writer;
|
||||
builder.classDocsWithConstFields = new HashSet<ClassDoc>();
|
||||
return builder;
|
||||
public static ConstantsSummaryBuilder getInstance(Context context,
|
||||
ConstantsSummaryWriter writer) {
|
||||
return new ConstantsSummaryBuilder(context, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -121,7 +119,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
|
||||
//Doclet does not support this output.
|
||||
return;
|
||||
}
|
||||
build(LayoutParser.getInstance(configuration).parseXML(ROOT), contentTree);
|
||||
build(layoutParser.parseXML(ROOT), contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -59,66 +59,64 @@ public class ConstructorBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The class whose constructors are being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
/**
|
||||
* The visible constructors for the given class.
|
||||
*/
|
||||
private VisibleMemberMap visibleMemberMap;
|
||||
private final VisibleMemberMap visibleMemberMap;
|
||||
|
||||
/**
|
||||
* The writer to output the constructor documentation.
|
||||
*/
|
||||
private ConstructorWriter writer;
|
||||
private final ConstructorWriter writer;
|
||||
|
||||
/**
|
||||
* The constructors being documented.
|
||||
*/
|
||||
private List<ProgramElementDoc> constructors;
|
||||
private final List<ProgramElementDoc> constructors;
|
||||
|
||||
/**
|
||||
* Construct a new ConstructorBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private ConstructorBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private ConstructorBuilder(Context context,
|
||||
ClassDoc classDoc,
|
||||
ConstructorWriter writer) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.CONSTRUCTORS,
|
||||
configuration.nodeprecated);
|
||||
constructors =
|
||||
new ArrayList<ProgramElementDoc>(visibleMemberMap.getMembersFor(classDoc));
|
||||
for (int i = 0; i < constructors.size(); i++) {
|
||||
if (constructors.get(i).isProtected()
|
||||
|| constructors.get(i).isPrivate()) {
|
||||
writer.setFoundNonPubConstructor(true);
|
||||
}
|
||||
}
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(constructors,configuration.getMemberComparator());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ConstructorBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static ConstructorBuilder getInstance(
|
||||
Configuration configuration,
|
||||
ClassDoc classDoc,
|
||||
ConstructorWriter writer) {
|
||||
ConstructorBuilder builder = new ConstructorBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.CONSTRUCTORS,
|
||||
configuration.nodeprecated);
|
||||
builder.constructors =
|
||||
new ArrayList<ProgramElementDoc>(builder.visibleMemberMap.getMembersFor(classDoc));
|
||||
for (int i = 0; i < builder.constructors.size(); i++) {
|
||||
if (builder.constructors.get(i).isProtected()
|
||||
|| builder.constructors.get(i).isPrivate()) {
|
||||
writer.setFoundNonPubConstructor(true);
|
||||
}
|
||||
}
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(
|
||||
builder.constructors,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
public static ConstructorBuilder getInstance(Context context,
|
||||
ClassDoc classDoc, ConstructorWriter writer) {
|
||||
return new ConstructorBuilder(context, classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,22 +48,22 @@ public class EnumConstantBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The class whose enum constants are being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
/**
|
||||
* The visible enum constantss for the given class.
|
||||
*/
|
||||
private VisibleMemberMap visibleMemberMap;
|
||||
private final VisibleMemberMap visibleMemberMap;
|
||||
|
||||
/**
|
||||
* The writer to output the enum constants documentation.
|
||||
*/
|
||||
private EnumConstantWriter writer;
|
||||
private final EnumConstantWriter writer;
|
||||
|
||||
/**
|
||||
* The list of enum constants being documented.
|
||||
*/
|
||||
private List<ProgramElementDoc> enumConstants;
|
||||
private final List<ProgramElementDoc> enumConstants;
|
||||
|
||||
/**
|
||||
* The index of the current enum constant that is being documented at this point
|
||||
@ -74,40 +74,37 @@ public class EnumConstantBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* Construct a new EnumConstantsBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private EnumConstantBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private EnumConstantBuilder(Context context,
|
||||
ClassDoc classDoc, EnumConstantWriter writer) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.ENUM_CONSTANTS,
|
||||
configuration.nodeprecated);
|
||||
enumConstants =
|
||||
new ArrayList<ProgramElementDoc>(visibleMemberMap.getMembersFor(classDoc));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(enumConstants, configuration.getMemberComparator());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new EnumConstantsBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static EnumConstantBuilder getInstance(
|
||||
Configuration configuration,
|
||||
ClassDoc classDoc,
|
||||
EnumConstantWriter writer) {
|
||||
EnumConstantBuilder builder = new EnumConstantBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.ENUM_CONSTANTS,
|
||||
configuration.nodeprecated);
|
||||
builder.enumConstants =
|
||||
new ArrayList<ProgramElementDoc>(builder.visibleMemberMap.getMembersFor(classDoc));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(
|
||||
builder.enumConstants,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
public static EnumConstantBuilder getInstance(Context context,
|
||||
ClassDoc classDoc, EnumConstantWriter writer) {
|
||||
return new EnumConstantBuilder(context, classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,22 +48,22 @@ public class FieldBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The class whose fields are being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
/**
|
||||
* The visible fields for the given class.
|
||||
*/
|
||||
private VisibleMemberMap visibleMemberMap;
|
||||
private final VisibleMemberMap visibleMemberMap;
|
||||
|
||||
/**
|
||||
* The writer to output the field documentation.
|
||||
*/
|
||||
private FieldWriter writer;
|
||||
private final FieldWriter writer;
|
||||
|
||||
/**
|
||||
* The list of fields being documented.
|
||||
*/
|
||||
private List<ProgramElementDoc> fields;
|
||||
private final List<ProgramElementDoc> fields;
|
||||
|
||||
/**
|
||||
* The index of the current field that is being documented at this point
|
||||
@ -74,41 +74,40 @@ public class FieldBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* Construct a new FieldBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the
|
||||
* doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private FieldBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
private FieldBuilder(Context context,
|
||||
ClassDoc classDoc,
|
||||
FieldWriter writer) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.FIELDS,
|
||||
configuration.nodeprecated);
|
||||
fields =
|
||||
new ArrayList<ProgramElementDoc>(visibleMemberMap.getLeafClassMembers(
|
||||
configuration));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(fields, configuration.getMemberComparator());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new FieldBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
public static FieldBuilder getInstance(
|
||||
Configuration configuration,
|
||||
public static FieldBuilder getInstance(Context context,
|
||||
ClassDoc classDoc,
|
||||
FieldWriter writer) {
|
||||
FieldBuilder builder = new FieldBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.FIELDS,
|
||||
configuration.nodeprecated);
|
||||
builder.fields =
|
||||
new ArrayList<ProgramElementDoc>(builder.visibleMemberMap.getLeafClassMembers(
|
||||
configuration));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(
|
||||
builder.fields,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
return new FieldBuilder(context, classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,14 +55,10 @@ public class LayoutParser extends DefaultHandler {
|
||||
*/
|
||||
private Map<String,XMLNode> xmlElementsMap;
|
||||
private XMLNode currentNode;
|
||||
private Configuration configuration;
|
||||
private static LayoutParser instance;
|
||||
private final Configuration configuration;
|
||||
private String currentRoot;
|
||||
private boolean isParsing;
|
||||
|
||||
/**
|
||||
* This class is a singleton.
|
||||
*/
|
||||
private LayoutParser(Configuration configuration) {
|
||||
xmlElementsMap = new HashMap<String,XMLNode>();
|
||||
this.configuration = configuration;
|
||||
@ -75,10 +71,7 @@ public class LayoutParser extends DefaultHandler {
|
||||
* @return an instance of the BuilderXML.
|
||||
*/
|
||||
public static LayoutParser getInstance(Configuration configuration) {
|
||||
if (instance == null) {
|
||||
instance = new LayoutParser(configuration);
|
||||
}
|
||||
return instance;
|
||||
return new LayoutParser(configuration);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -53,7 +53,7 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The visible members for the given class.
|
||||
*/
|
||||
private VisibleMemberMap[] visibleMemberMaps;
|
||||
private final VisibleMemberMap[] visibleMemberMaps;
|
||||
|
||||
/**
|
||||
* The member summary writers for the given class.
|
||||
@ -63,10 +63,27 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The type being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
private MemberSummaryBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
/**
|
||||
* Construct a new MemberSummaryBuilder.
|
||||
*
|
||||
* @param classWriter the writer for the class whose members are being
|
||||
* summarized.
|
||||
* @param context the build context.
|
||||
*/
|
||||
private MemberSummaryBuilder(Context context, ClassDoc classDoc) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
visibleMemberMaps =
|
||||
new VisibleMemberMap[VisibleMemberMap.NUM_MEMBER_TYPES];
|
||||
for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) {
|
||||
visibleMemberMaps[i] =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
i,
|
||||
configuration.nodeprecated);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -74,14 +91,22 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
*
|
||||
* @param classWriter the writer for the class whose members are being
|
||||
* summarized.
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
*/
|
||||
public static MemberSummaryBuilder getInstance(
|
||||
ClassWriter classWriter, Configuration configuration)
|
||||
ClassWriter classWriter, Context context)
|
||||
throws Exception {
|
||||
MemberSummaryBuilder builder = new MemberSummaryBuilder(configuration);
|
||||
builder.classDoc = classWriter.getClassDoc();
|
||||
builder.init(classWriter);
|
||||
MemberSummaryBuilder builder = new MemberSummaryBuilder(context,
|
||||
classWriter.getClassDoc());
|
||||
builder.memberSummaryWriters =
|
||||
new MemberSummaryWriter[VisibleMemberMap.NUM_MEMBER_TYPES];
|
||||
WriterFactory wf = context.configuration.getWriterFactory();
|
||||
for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) {
|
||||
builder.memberSummaryWriters[i] =
|
||||
builder.visibleMemberMaps[i].noVisibleMembers() ?
|
||||
null :
|
||||
wf.getMemberSummaryWriter(classWriter, i);
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
|
||||
@ -93,42 +118,21 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
* @param configuration the current configuration of the doclet.
|
||||
*/
|
||||
public static MemberSummaryBuilder getInstance(
|
||||
AnnotationTypeWriter annotationTypeWriter, Configuration configuration)
|
||||
AnnotationTypeWriter annotationTypeWriter, Context context)
|
||||
throws Exception {
|
||||
MemberSummaryBuilder builder = new MemberSummaryBuilder(configuration);
|
||||
builder.classDoc = annotationTypeWriter.getAnnotationTypeDoc();
|
||||
builder.init(annotationTypeWriter);
|
||||
return builder;
|
||||
}
|
||||
|
||||
private void init(Object writer) throws Exception {
|
||||
visibleMemberMaps =
|
||||
new VisibleMemberMap[VisibleMemberMap.NUM_MEMBER_TYPES];
|
||||
for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) {
|
||||
visibleMemberMaps[i] =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
i,
|
||||
configuration.nodeprecated);
|
||||
}
|
||||
memberSummaryWriters =
|
||||
MemberSummaryBuilder builder = new MemberSummaryBuilder(context,
|
||||
annotationTypeWriter.getAnnotationTypeDoc());
|
||||
builder.memberSummaryWriters =
|
||||
new MemberSummaryWriter[VisibleMemberMap.NUM_MEMBER_TYPES];
|
||||
WriterFactory wf = context.configuration.getWriterFactory();
|
||||
for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) {
|
||||
if (classDoc.isAnnotationType()) {
|
||||
memberSummaryWriters[i] =
|
||||
visibleMemberMaps[i].noVisibleMembers()?
|
||||
builder.memberSummaryWriters[i] =
|
||||
builder.visibleMemberMaps[i].noVisibleMembers()?
|
||||
null :
|
||||
configuration.getWriterFactory().getMemberSummaryWriter(
|
||||
(AnnotationTypeWriter) writer, i);
|
||||
} else {
|
||||
memberSummaryWriters[i] =
|
||||
visibleMemberMaps[i].noVisibleMembers()?
|
||||
null :
|
||||
configuration.getWriterFactory().getMemberSummaryWriter(
|
||||
(ClassWriter) writer, i);
|
||||
}
|
||||
wf.getMemberSummaryWriter(
|
||||
annotationTypeWriter, i);
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -304,7 +308,7 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
configuration));
|
||||
if (members.size() > 0) {
|
||||
Collections.sort(members);
|
||||
Content tableTree = writer.getSummaryTableTree(classDoc);
|
||||
List<Content> tableContents = new LinkedList<Content>();
|
||||
for (int i = 0; i < members.size(); i++) {
|
||||
ProgramElementDoc member = members.get(i);
|
||||
Tag[] firstSentenceTags = member.firstSentenceTags();
|
||||
@ -313,14 +317,15 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
|
||||
//necessary.
|
||||
DocFinder.Output inheritedDoc =
|
||||
DocFinder.search(new DocFinder.Input((MethodDoc) member));
|
||||
if (inheritedDoc.holder != null &&
|
||||
inheritedDoc.holder.firstSentenceTags().length > 0) {
|
||||
if (inheritedDoc.holder != null
|
||||
&& inheritedDoc.holder.firstSentenceTags().length > 0) {
|
||||
firstSentenceTags = inheritedDoc.holder.firstSentenceTags();
|
||||
}
|
||||
}
|
||||
writer.addMemberSummary(classDoc, member, firstSentenceTags, tableTree, i);
|
||||
writer.addMemberSummary(classDoc, member, firstSentenceTags,
|
||||
tableContents, i);
|
||||
}
|
||||
summaryTreeList.add(tableTree);
|
||||
summaryTreeList.add(writer.getSummaryTableTree(classDoc, tableContents));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,57 +54,61 @@ public class MethodBuilder extends AbstractMemberBuilder {
|
||||
/**
|
||||
* The class whose methods are being documented.
|
||||
*/
|
||||
private ClassDoc classDoc;
|
||||
private final ClassDoc classDoc;
|
||||
|
||||
/**
|
||||
* The visible methods for the given class.
|
||||
*/
|
||||
private VisibleMemberMap visibleMemberMap;
|
||||
private final VisibleMemberMap visibleMemberMap;
|
||||
|
||||
/**
|
||||
* The writer to output the method documentation.
|
||||
*/
|
||||
private MethodWriter writer;
|
||||
private final MethodWriter writer;
|
||||
|
||||
/**
|
||||
* The methods being documented.
|
||||
*/
|
||||
private List<ProgramElementDoc> methods;
|
||||
|
||||
private MethodBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
|
||||
/**
|
||||
* Construct a new MethodBuilder.
|
||||
*
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*/
|
||||
private MethodBuilder(Context context,
|
||||
ClassDoc classDoc,
|
||||
MethodWriter writer) {
|
||||
super(context);
|
||||
this.classDoc = classDoc;
|
||||
this.writer = writer;
|
||||
visibleMemberMap = new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.METHODS,
|
||||
configuration.nodeprecated);
|
||||
methods =
|
||||
new ArrayList<ProgramElementDoc>(visibleMemberMap.getLeafClassMembers(
|
||||
configuration));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(methods, configuration.getMemberComparator());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new MethodBuilder.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
* @param classDoc the class whoses members are being documented.
|
||||
* @param writer the doclet specific writer.
|
||||
*
|
||||
* @return an instance of a MethodBuilder.
|
||||
*/
|
||||
public static MethodBuilder getInstance(
|
||||
Configuration configuration,
|
||||
ClassDoc classDoc,
|
||||
MethodWriter writer) {
|
||||
MethodBuilder builder = new MethodBuilder(configuration);
|
||||
builder.classDoc = classDoc;
|
||||
builder.writer = writer;
|
||||
builder.visibleMemberMap =
|
||||
new VisibleMemberMap(
|
||||
classDoc,
|
||||
VisibleMemberMap.METHODS,
|
||||
configuration.nodeprecated);
|
||||
builder.methods =
|
||||
new ArrayList<ProgramElementDoc>(builder.visibleMemberMap.getLeafClassMembers(
|
||||
configuration));
|
||||
if (configuration.getMemberComparator() != null) {
|
||||
Collections.sort(
|
||||
builder.methods,
|
||||
configuration.getMemberComparator());
|
||||
}
|
||||
return builder;
|
||||
public static MethodBuilder getInstance(Context context,
|
||||
ClassDoc classDoc, MethodWriter writer) {
|
||||
return new MethodBuilder(context, classDoc, writer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,40 +52,47 @@ public class PackageSummaryBuilder extends AbstractBuilder {
|
||||
/**
|
||||
* The package being documented.
|
||||
*/
|
||||
private PackageDoc packageDoc;
|
||||
private final PackageDoc packageDoc;
|
||||
|
||||
/**
|
||||
* The doclet specific writer that will output the result.
|
||||
*/
|
||||
private PackageSummaryWriter packageWriter;
|
||||
private final PackageSummaryWriter packageWriter;
|
||||
|
||||
/**
|
||||
* The content that will be added to the package summary documentation tree.
|
||||
*/
|
||||
private Content contentTree;
|
||||
|
||||
private PackageSummaryBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
/**
|
||||
* Construct a new PackageSummaryBuilder.
|
||||
*
|
||||
* @param context the build context.
|
||||
* @param pkg the package being documented.
|
||||
* @param packageWriter the doclet specific writer that will output the
|
||||
* result.
|
||||
*/
|
||||
private PackageSummaryBuilder(Context context,
|
||||
PackageDoc pkg,
|
||||
PackageSummaryWriter packageWriter) {
|
||||
super(context);
|
||||
this.packageDoc = pkg;
|
||||
this.packageWriter = packageWriter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new PackageSummaryBuilder.
|
||||
* @param configuration the current configuration of the doclet.
|
||||
*
|
||||
* @param context the build context.
|
||||
* @param pkg the package being documented.
|
||||
* @param packageWriter the doclet specific writer that will output the
|
||||
* result.
|
||||
*
|
||||
* @return an instance of a PackageSummaryBuilder.
|
||||
*/
|
||||
public static PackageSummaryBuilder getInstance(
|
||||
Configuration configuration,
|
||||
PackageDoc pkg,
|
||||
PackageSummaryWriter packageWriter) {
|
||||
PackageSummaryBuilder builder =
|
||||
new PackageSummaryBuilder(configuration);
|
||||
builder.packageDoc = pkg;
|
||||
builder.packageWriter = packageWriter;
|
||||
return builder;
|
||||
public static PackageSummaryBuilder getInstance(Context context,
|
||||
PackageDoc pkg, PackageSummaryWriter packageWriter) {
|
||||
return new PackageSummaryBuilder(context, pkg, packageWriter);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,7 +103,7 @@ public class PackageSummaryBuilder extends AbstractBuilder {
|
||||
//Doclet does not support this output.
|
||||
return;
|
||||
}
|
||||
build(LayoutParser.getInstance(configuration).parseXML(ROOT), contentTree);
|
||||
build(layoutParser.parseXML(ROOT), contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -93,17 +93,21 @@ public class SerializedFormBuilder extends AbstractBuilder {
|
||||
*/
|
||||
private Content contentTree;
|
||||
|
||||
private SerializedFormBuilder(Configuration configuration) {
|
||||
super(configuration);
|
||||
|
||||
/**
|
||||
* Construct a new SerializedFormBuilder.
|
||||
* @param context the build context.
|
||||
*/
|
||||
private SerializedFormBuilder(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new SerializedFormBuilder.
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param context the build context.
|
||||
*/
|
||||
public static SerializedFormBuilder getInstance(Configuration configuration) {
|
||||
SerializedFormBuilder builder = new SerializedFormBuilder(configuration);
|
||||
return builder;
|
||||
public static SerializedFormBuilder getInstance(Context context) {
|
||||
return new SerializedFormBuilder(context);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +127,7 @@ public class SerializedFormBuilder extends AbstractBuilder {
|
||||
} catch (Exception e) {
|
||||
throw new DocletAbortException();
|
||||
}
|
||||
build(LayoutParser.getInstance(configuration).parseXML(NAME), contentTree);
|
||||
build(layoutParser.parseXML(NAME), contentTree);
|
||||
writer.close();
|
||||
}
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 909 B |
@ -0,0 +1,30 @@
|
||||
function show(type)
|
||||
{
|
||||
count = 0;
|
||||
for (var key in methods) {
|
||||
var row = document.getElementById(key);
|
||||
if ((methods[key] & type) != 0) {
|
||||
row.style.display = '';
|
||||
row.className = (count++ % 2) ? rowColor : altColor;
|
||||
}
|
||||
else
|
||||
row.style.display = 'none';
|
||||
}
|
||||
updateTabs(type);
|
||||
}
|
||||
|
||||
function updateTabs(type)
|
||||
{
|
||||
for (var value in tabs) {
|
||||
var sNode = document.getElementById(tabs[value][0]);
|
||||
var spanNode = sNode.firstChild;
|
||||
if (value == type) {
|
||||
sNode.className = activeTableTab;
|
||||
spanNode.innerHTML = tabs[value][1];
|
||||
}
|
||||
else {
|
||||
sNode.className = tableTab;
|
||||
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
|
||||
}
|
||||
}
|
||||
}
|
@ -381,6 +381,31 @@ caption a:link, caption a:hover, caption a:active, caption a:visited {
|
||||
background-image:url(resources/titlebar.gif);
|
||||
height:18px;
|
||||
}
|
||||
.contentContainer ul.blockList li.blockList caption span.activeTableTab span {
|
||||
white-space:nowrap;
|
||||
padding-top:8px;
|
||||
padding-left:8px;
|
||||
display:block;
|
||||
float:left;
|
||||
background-image:url(resources/activetitlebar.gif);
|
||||
height:18px;
|
||||
}
|
||||
.contentContainer ul.blockList li.blockList caption span.tableTab span {
|
||||
white-space:nowrap;
|
||||
padding-top:8px;
|
||||
padding-left:8px;
|
||||
display:block;
|
||||
float:left;
|
||||
background-image:url(resources/titlebar.gif);
|
||||
height:18px;
|
||||
}
|
||||
.contentContainer ul.blockList li.blockList caption span.tableTab, .contentContainer ul.blockList li.blockList caption span.activeTableTab {
|
||||
padding-top:0px;
|
||||
padding-left:0px;
|
||||
background-image:none;
|
||||
float:none;
|
||||
display:inline;
|
||||
}
|
||||
.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
|
||||
width:10px;
|
||||
background-image:url(resources/titlebar_end.gif);
|
||||
@ -389,6 +414,24 @@ caption a:link, caption a:hover, caption a:active, caption a:visited {
|
||||
position:relative;
|
||||
float:left;
|
||||
}
|
||||
.contentContainer ul.blockList li.blockList .activeTableTab .tabEnd {
|
||||
width:10px;
|
||||
margin-right:5px;
|
||||
background-image:url(resources/activetitlebar_end.gif);
|
||||
background-repeat:no-repeat;
|
||||
background-position:top right;
|
||||
position:relative;
|
||||
float:left;
|
||||
}
|
||||
.contentContainer ul.blockList li.blockList .tableTab .tabEnd {
|
||||
width:10px;
|
||||
margin-right:5px;
|
||||
background-image:url(resources/titlebar_end.gif);
|
||||
background-repeat:no-repeat;
|
||||
background-position:top right;
|
||||
position:relative;
|
||||
float:left;
|
||||
}
|
||||
ul.blockList ul.blockList li.blockList table {
|
||||
margin:0 0 12px 0px;
|
||||
width:100%;
|
||||
|
@ -26,6 +26,7 @@
|
||||
package com.sun.tools.doclets.internal.toolkit.taglets;
|
||||
|
||||
import com.sun.javadoc.*;
|
||||
import com.sun.tools.doclets.internal.toolkit.Configuration;
|
||||
import com.sun.tools.doclets.internal.toolkit.util.*;
|
||||
|
||||
/**
|
||||
@ -104,7 +105,7 @@ public class InheritDocTaglet extends BaseInlineTaglet {
|
||||
|
||||
/**
|
||||
* Given a <code>MethodDoc</code> item, a <code>Tag</code> in the
|
||||
* <code>MethodDoc</code> item and a String, replace all occurances
|
||||
* <code>MethodDoc</code> item and a String, replace all occurrences
|
||||
* of @inheritDoc with documentation from it's superclass or superinterface.
|
||||
*
|
||||
* @param writer the writer that is writing the output.
|
||||
@ -116,12 +117,13 @@ public class InheritDocTaglet extends BaseInlineTaglet {
|
||||
MethodDoc md, Tag holderTag, boolean isFirstSentence) {
|
||||
TagletOutput replacement = writer.getTagletOutputInstance();
|
||||
|
||||
Configuration configuration = writer.configuration();
|
||||
Taglet inheritableTaglet = holderTag == null ?
|
||||
null : writer.configuration().tagletManager.getTaglet(holderTag.name());
|
||||
null : configuration.tagletManager.getTaglet(holderTag.name());
|
||||
if (inheritableTaglet != null &&
|
||||
!(inheritableTaglet instanceof InheritableTaglet)) {
|
||||
//This tag does not support inheritence.
|
||||
writer.configuration().message.warning(md.position(),
|
||||
configuration.message.warning(md.position(),
|
||||
"doclet.noInheritedDoc", md.name() + md.flatSignature());
|
||||
}
|
||||
DocFinder.Output inheritedDoc =
|
||||
@ -129,7 +131,7 @@ public class InheritDocTaglet extends BaseInlineTaglet {
|
||||
(InheritableTaglet) inheritableTaglet, holderTag,
|
||||
isFirstSentence, true));
|
||||
if (inheritedDoc.isValidInheritDocTag == false) {
|
||||
writer.configuration().message.warning(md.position(),
|
||||
configuration.message.warning(md.position(),
|
||||
"doclet.noInheritedDoc", md.name() + md.flatSignature());
|
||||
} else if (inheritedDoc.inlineTags.length > 0) {
|
||||
replacement = writer.commentTagsToOutput(inheritedDoc.holderTag,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user