diff -r 000000000000 -r 959103a6100f src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,185 @@ +/* + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.tools.doclets.formats.html; + +import java.io.*; +import java.util.*; + +import com.sun.javadoc.*; +import com.sun.tools.doclets.formats.html.markup.*; +import com.sun.tools.doclets.internal.toolkit.*; +import com.sun.tools.doclets.internal.toolkit.util.*; + +/** + * Abstract class to print the class hierarchy page for all the Classes. This + * is sub-classed by {@link PackageTreeWriter} and {@link TreeWriter} to + * generate the Package Tree and global Tree(for all the classes and packages) + * pages. + * + *
This is NOT part of any supported API.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.
+ *
+ * @author Atul M Dambalkar
+ */
+public abstract class AbstractTreeWriter extends HtmlDocletWriter {
+
+ /**
+ * The class and interface tree built by using {@link ClassTree}
+ */
+ protected final ClassTree classtree;
+
+ private static final String LI_CIRCLE = "circle";
+
+ /**
+ * Constructor initializes classtree variable. This constructor will be used
+ * while generating global tree file "overview-tree.html".
+ *
+ * @param configuration The current configuration
+ * @param filename File to be generated.
+ * @param classtree Tree built by {@link ClassTree}.
+ * @throws IOException
+ * @throws DocletAbortException
+ */
+ protected AbstractTreeWriter(ConfigurationImpl configuration,
+ DocPath filename, ClassTree classtree)
+ throws IOException {
+ super(configuration, filename);
+ this.classtree = classtree;
+ }
+
+ /**
+ * Add each level of the class tree. For each sub-class or
+ * sub-interface indents the next level information.
+ * Recurses itself to add subclasses info.
+ *
+ * @param parent the superclass or superinterface of the list
+ * @param list list of the sub-classes at this level
+ * @param isEnum true if we are generating a tree for enums
+ * @param contentTree the content tree to which the level information will be added
+ */
+ protected void addLevelInfo(ClassDoc parent, List