src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java

Wed, 18 Feb 2009 13:47:27 -0800

author
bpatel
date
Wed, 18 Feb 2009 13:47:27 -0800
changeset 222
d424ed561993
parent 182
47a62d8d98b4
child 243
edd944553131
permissions
-rw-r--r--

6802694: Javadoc doclet does not display deprecated information with -nocomment option for serialized form
Reviewed-by: jjg

     1 /*
     2  * Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Sun designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Sun in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    22  * CA 95054 USA or visit www.sun.com if you need additional information or
    23  * have any questions.
    24  */
    26 package com.sun.tools.doclets.formats.html;
    28 import com.sun.javadoc.*;
    29 import java.io.*;
    30 import java.util.*;
    32 /**
    33  * Abstract class to generate the overview files in
    34  * Frame and Non-Frame format. This will be sub-classed by to
    35  * generate overview-frame.html as well as overview-summary.html.
    36  *
    37  * @author Atul M Dambalkar
    38  */
    39 public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
    41     /**
    42      * Array of Packages to be documented.
    43      */
    44     protected PackageDoc[] packages;
    46     /**
    47      * Constructor. Also initialises the packages variable.
    48      *
    49      * @param filename Name of the package index file to be generated.
    50      */
    51     public AbstractPackageIndexWriter(ConfigurationImpl configuration,
    52                                       String filename) throws IOException {
    53         super(configuration, filename);
    54         this.relativepathNoSlash = ".";
    55         packages = configuration.packages;
    56     }
    58     protected abstract void printNavigationBarHeader();
    60     protected abstract void printNavigationBarFooter();
    62     protected abstract void printOverviewHeader();
    64     protected abstract void printIndexHeader(String text);
    66     protected abstract void printIndexRow(PackageDoc pkg);
    68     protected abstract void printIndexFooter();
    70     /**
    71      * Generate the contants in the package index file. Call appropriate
    72      * methods from the sub-class in order to generate Frame or Non
    73      * Frame format.
    74      * @param title the title of the window.
    75      * @param includeScript boolean set true if windowtitle script is to be included
    76      */
    77     protected void generatePackageIndexFile(String title, boolean includeScript) throws IOException {
    78         String windowOverview = configuration.getText(title);
    79         printHtmlHeader(windowOverview,
    80             configuration.metakeywords.getOverviewMetaKeywords(title,
    81                 configuration.doctitle),
    82             includeScript);
    83         printNavigationBarHeader();
    84         printOverviewHeader();
    86         generateIndex();
    88         printOverview();
    90         printNavigationBarFooter();
    91         printBodyHtmlEnd();
    92     }
    94     /**
    95      * Default to no overview, overwrite to add overview.
    96      */
    97     protected void printOverview() throws IOException {
    98     }
   100     /**
   101      * Generate the frame or non-frame package index.
   102      */
   103     protected void generateIndex() {
   104         printIndexContents(packages, "doclet.Package_Summary");
   105     }
   107     /**
   108      * Generate code for package index contents. Call appropriate methods from
   109      * the sub-classes.
   110      *
   111      * @param packages Array of packages to be documented.
   112      * @param text     String which will be used as the heading.
   113      */
   114     protected void printIndexContents(PackageDoc[] packages, String text) {
   115         if (packages.length > 0) {
   116             Arrays.sort(packages);
   117             printIndexHeader(text);
   118             printAllClassesPackagesLink();
   119             for(int i = 0; i < packages.length; i++) {
   120                 if (packages[i] != null) {
   121                     printIndexRow(packages[i]);
   122                 }
   123             }
   124             printIndexFooter();
   125         }
   126     }
   128     /**
   129      * Print the doctitle, if it is specified on the command line.
   130      */
   131     protected void printConfigurationTitle() {
   132         if (configuration.doctitle.length() > 0) {
   133             center();
   134             h1(configuration.doctitle);
   135             centerEnd();
   136         }
   137     }
   139     /**
   140      * Highlight "Overview" in the strong format, in the navigation bar as this
   141      * is the overview page.
   142      */
   143     protected void navLinkContents() {
   144         navCellRevStart();
   145         fontStyle("NavBarFont1Rev");
   146         strongText("doclet.Overview");
   147         fontEnd();
   148         navCellEnd();
   149     }
   151     /**
   152      * Do nothing. This will be overridden in PackageIndexFrameWriter.
   153      */
   154     protected void printAllClassesPackagesLink() {
   155     }
   156 }

mercurial