langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java
changeset 40587 1c355ea550ed
parent 40500 f293dbb81a53
child 45417 f7479ee8de69
equal deleted inserted replaced
40519:e17429a7e843 40587:1c355ea550ed
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package jdk.javadoc.internal.doclets.formats.html;
    26 package jdk.javadoc.internal.doclets.formats.html;
    27 
    27 
    28 import java.io.IOException;
       
    29 
       
    30 import jdk.javadoc.internal.doclets.formats.html.markup.Comment;
    28 import jdk.javadoc.internal.doclets.formats.html.markup.Comment;
    31 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    29 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    32 import jdk.javadoc.internal.doclets.formats.html.markup.DocType;
    30 import jdk.javadoc.internal.doclets.formats.html.markup.DocType;
    33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
    31 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
    34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
    32 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
    35 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument;
    33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument;
    36 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    37 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    35 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    38 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
    36 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
    39 import jdk.javadoc.internal.doclets.toolkit.Content;
    37 import jdk.javadoc.internal.doclets.toolkit.Content;
    40 import jdk.javadoc.internal.doclets.toolkit.Messages;
    38 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
    41 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
    39 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
    42 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
    40 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
    43 import jdk.javadoc.internal.doclets.toolkit.util.DocletAbortException;
       
    44 
    41 
    45 import static jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocWriter.CONTENT_TYPE;
    42 import static jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocWriter.CONTENT_TYPE;
    46 
    43 
    47 /**
    44 /**
    48  * Writes an index.html file that tries to redirect to an alternate page.
    45  * Writes an index.html file that tries to redirect to an alternate page.
    51  * If neither are supported/enabled in a browser, the page displays the
    48  * If neither are supported/enabled in a browser, the page displays the
    52  * standard "JavaScipt not enabled" message, and a link to the alternate page.
    49  * standard "JavaScipt not enabled" message, and a link to the alternate page.
    53  */
    50  */
    54 public class IndexRedirectWriter extends HtmlDocletWriter {
    51 public class IndexRedirectWriter extends HtmlDocletWriter {
    55 
    52 
    56     public static void generate(ConfigurationImpl configuration) {
    53     public static void generate(ConfigurationImpl configuration)
       
    54             throws DocFileIOException {
    57         IndexRedirectWriter indexRedirect;
    55         IndexRedirectWriter indexRedirect;
    58         DocPath filename = DocPath.empty;
    56         DocPath filename = DocPaths.INDEX;
    59         try {
       
    60             filename = DocPaths.INDEX;
       
    61             indexRedirect = new IndexRedirectWriter(configuration, filename);
    57             indexRedirect = new IndexRedirectWriter(configuration, filename);
    62             indexRedirect.generateIndexFile();
    58             indexRedirect.generateIndexFile();
    63         } catch (IOException exc) {
       
    64             Messages messages = configuration.getMessages();
       
    65             messages.error(
       
    66                     "doclet.exception_encountered",
       
    67                     exc.toString(), filename);
       
    68             throw new DocletAbortException(exc);
       
    69         }
       
    70     }
    59     }
    71 
    60 
    72     IndexRedirectWriter(ConfigurationImpl configuration, DocPath filename)
    61     IndexRedirectWriter(ConfigurationImpl configuration, DocPath filename) {
    73             throws IOException {
       
    74         super(configuration, filename);
    62         super(configuration, filename);
    75     }
    63     }
    76 
    64 
    77     void generateIndexFile() throws IOException {
    65     /**
       
    66      * Generate an index file that redirects to an alternate file.
       
    67      * @throws DocFileIOException if there is a problem generating the file
       
    68      */
       
    69     void generateIndexFile() throws DocFileIOException {
    78         Content htmlDocType = configuration.isOutputHtml5()
    70         Content htmlDocType = configuration.isOutputHtml5()
    79                 ? DocType.HTML5
    71                 ? DocType.HTML5
    80                 : DocType.TRANSITIONAL;
    72                 : DocType.TRANSITIONAL;
    81         Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
    73         Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
    82         Content head = new HtmlTree(HtmlTag.HEAD);
    74         Content head = new HtmlTree(HtmlTag.HEAD);