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    }