001 /*
002 * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025
026
027 package com.sun.tools.doclets.internal.toolkit;
028
029 import java.io.*;
030 import com.sun.javadoc.*;
031
032 /**
033 * The interface for writing class output.
034 *
035 * This code is not part of an API.
036 * It is implementation that is subject to change.
037 * Do not use it as an API
038 *
039 * @author Jamie Ho
040 * @since 1.5
041 */
042
043 public interface ClassWriter {
044
045 /**
046 * Write the header of the page.
047 * @param header the header to write.
048 */
049 public void writeHeader(String header);
050
051 /**
052 * Write the class tree documentation.
053 */
054 public void writeClassTree();
055
056 /**
057 * Write all implemented interfaces if this is a class.
058 */
059 public void writeImplementedInterfacesInfo();
060
061 /**
062 * Write all super interfaces if this is an interface.
063 */
064 public void writeSuperInterfacesInfo();
065
066 /**
067 * Write the type parameter information.
068 */
069 public void writeTypeParamInfo();
070
071 /**
072 * Write all the classes that extend this one.
073 */
074 public void writeSubClassInfo();
075
076 /**
077 * Write all the interfaces that extend this one.
078 */
079 public void writeSubInterfacesInfo();
080
081 /**
082 * If this is an interface, write all classes that implement this
083 * interface.
084 */
085 public void writeInterfaceUsageInfo ();
086
087 /**
088 * If this is an inner class or interface, write the enclosing class or
089 * interface.
090 */
091 public void writeNestedClassInfo ();
092
093 /**
094 * If this class is deprecated, write the appropriate information.
095 */
096 public void writeClassDeprecationInfo ();
097
098 /**
099 * Write the signature of the current class.
100 *
101 * @param modifiers the modifiers for the signature.
102 */
103 public void writeClassSignature(String modifiers);
104
105 /**
106 * Build the class description.
107 */
108 public void writeClassDescription();
109
110 /**
111 * Write the tag information for the current class.
112 */
113 public void writeClassTagInfo();
114
115 /**
116 * Write the footer of the page.
117 */
118 public void writeFooter();
119
120 /**
121 * Close the writer.
122 */
123 public void close() throws IOException;
124
125 /**
126 * Return the classDoc being documented.
127 *
128 * @return the classDoc being documented.
129 */
130 public ClassDoc getClassDoc();
131
132 /**
133 * Perform any operations that are necessary when the member summary
134 * finished building.
135 */
136 public void completeMemberSummaryBuild();
137 }