<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*
 * @(#)DeprecatedListWriter.java	1.18 98/08/18
 *
 * Copyright 1997, 1998 by Sun Microsystems, Inc.,
 * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information
 * of Sun Microsystems, Inc. ("Confidential Information").  You
 * shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement
 * you entered into with Sun.
 */


package com.sun.tools.doclets.standard;

import com.sun.tools.doclets.*;
import com.sun.javadoc.*;
import java.io.*;
import java.lang.*;
import java.util.*;

/**
 * Generate File to list all the deprecated classes and class members with the
 * appropriate links. 
 *
 * @see java.util.List
 * @author Atul M Dambalkar
 */
public class DeprecatedListWriter extends SubWriterHolderWriter {

    /**
     * Constructor.
     *
     * @param filename the file to be generated. 
     */
    public DeprecatedListWriter(String filename) throws IOException {
        super(filename);
    }

    /** 
     * Get list of all the deprecated classes and members in all the Packages 
     * specified on the Command Line. 
     * Then instantiate DeprecatedListWriter and generate File.
     *
     * @param root Root of the Document
     */ 
    public static void generate(RootDoc root) throws DocletAbortException {
        String filename = "deprecated-list.html";
        try {
            DeprecatedListWriter depr = new DeprecatedListWriter(filename);
            depr.generateDeprecatedListFile(new DeprecatedAPIListBuilder(root));
            depr.close();
        } catch (IOException exc) {
 Standard.configuration().standardmessage.error("doclet.exception_encountered",
                                                 exc.toString(), filename);
            throw new DocletAbortException();
        }
    }

    /** 
     * Print the deprecated API list. Separately print all class kinds and 
     * member kinds.
     *
     * @param deprapi list of deprecated API built already.
     */ 
    protected void generateDeprecatedListFile(DeprecatedAPIListBuilder deprapi)
                                                        throws IOException {
        ClassSubWriter classW = new ClassSubWriter(this);
        FieldSubWriter fieldW = new FieldSubWriter(this);
        MethodSubWriter methodW = new MethodSubWriter(this);
        ConstructorSubWriter consW = new ConstructorSubWriter(this);
        printDeprecatedHeader();

        classW.printDeprecatedAPI(deprapi.getDeprecatedClasses(),
                                  "doclet.Deprecated_Classes");
        classW.printDeprecatedAPI(deprapi.getDeprecatedInterfaces(),
                                  "doclet.Deprecated_Interfaces");
        classW.printDeprecatedAPI(deprapi.getDeprecatedExceptions(),
                                  "doclet.Deprecated_Exceptions");
        classW.printDeprecatedAPI(deprapi.getDeprecatedErrors(),
                                  "doclet.Deprecated_Errors");
        fieldW.printDeprecatedAPI(deprapi.getDeprecatedFields(),
                                  "doclet.Deprecated_Fields");
        methodW.printDeprecatedAPI(deprapi.getDeprecatedMethods(), 
                                   "doclet.Deprecated_Methods");
        consW.printDeprecatedAPI(deprapi.getDeprecatedConstructors(), 
                                 "doclet.Deprecated_Constructors");
        
        printDeprecatedFooter();
    }        

    /**
     * Print the navigation bar and header for the deprecated API Listing.
     */
    protected void printDeprecatedHeader() {
        printHeader(getText("doclet.Window_Deprecated_List",
                             Standard.configuration().windowtitle));
        navLinks(true);
        hr();
        center();
        h2();
        boldText("doclet.Deprecated_API");
        h2End();
        centerEnd();
    }

    /**
     * Print the navigation bar and the footer for the deprecated API Listing.
     */
    protected void printDeprecatedFooter() {
        hr();
        navLinks(false);
        printBottom();
        printBodyHtmlEnd();
    }

    /**
     * Highlight the word "Deprecated" in the navigation bar as this is the same
     * page.
     */
    protected void navLinkDeprecated() {
        navCellRevStart();
        fontStyle("NavBarFont1Rev");
        boldText("doclet.navDeprecated");
        fontEnd();
        navCellEnd();
    }
}
</pre></body></html>