langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java Wed Jul 05 22:07:34 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java Mon Aug 22 16:32:40 2016 -0700
@@ -25,7 +25,6 @@
package jdk.javadoc.internal.doclets.formats.html;
-import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -38,10 +37,9 @@
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
import jdk.javadoc.internal.doclets.toolkit.Content;
-import jdk.javadoc.internal.doclets.toolkit.Messages;
+import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
-import jdk.javadoc.internal.doclets.toolkit.util.DocletAbortException;
import jdk.javadoc.internal.doclets.toolkit.util.IndexBuilder;
@@ -71,20 +69,24 @@
*/
protected int next;
- private List<Character> indexElements;
+ private final List<Character> indexElements;
/**
* Construct the SplitIndexWriter. Uses path to this file and relative path
* from this file.
*
+ * @param configuration the configuration for this doclet
* @param path Path to the file which is getting generated.
* @param indexbuilder Unicode based Index from {@link IndexBuilder}
+ * @param elements the collection of characters for which to generate index files
+ * @param prev the previous character that was indexed
+ * @param next the next character to be indexed
*/
public SplitIndexWriter(ConfigurationImpl configuration,
DocPath path,
IndexBuilder indexbuilder,
Collection<Character> elements,
- int prev, int next) throws IOException {
+ int prev, int next) {
super(configuration, path, indexbuilder);
this.indexElements = new ArrayList<>(elements);
this.prev = prev;
@@ -95,34 +97,26 @@
* Generate separate index files, for each Unicode character, listing all
* the members starting with the particular unicode character.
*
+ * @param configuration the configuration for this doclet
* @param indexbuilder IndexBuilder built by {@link IndexBuilder}
- * @throws DocletAbortException
+ * @throws DocFileIOException if there is a problem generating the index files
*/
public static void generate(ConfigurationImpl configuration,
- IndexBuilder indexbuilder) {
- SplitIndexWriter indexgen;
- DocPath filename = DocPath.empty;
+ IndexBuilder indexbuilder) throws DocFileIOException {
DocPath path = DocPaths.INDEX_FILES;
- try {
- Set<Character> keys = new TreeSet<>(indexbuilder.getIndexMap().keySet());
- keys.addAll(configuration.tagSearchIndexKeys);
- ListIterator<Character> li = new ArrayList<>(keys).listIterator();
- while (li.hasNext()) {
- Object ch = li.next();
- filename = DocPaths.indexN(li.nextIndex());
- indexgen = new SplitIndexWriter(configuration,
- path.resolve(filename),
- indexbuilder, keys, li.previousIndex(), li.nextIndex());
- indexgen.generateIndexFile((Character) ch);
- if (!li.hasNext()) {
- indexgen.createSearchIndexFiles();
- }
+ Set<Character> keys = new TreeSet<>(indexbuilder.getIndexMap().keySet());
+ keys.addAll(configuration.tagSearchIndexKeys);
+ ListIterator<Character> li = new ArrayList<>(keys).listIterator();
+ while (li.hasNext()) {
+ Object ch = li.next();
+ DocPath filename = DocPaths.indexN(li.nextIndex());
+ SplitIndexWriter indexgen = new SplitIndexWriter(configuration,
+ path.resolve(filename),
+ indexbuilder, keys, li.previousIndex(), li.nextIndex());
+ indexgen.generateIndexFile((Character) ch);
+ if (!li.hasNext()) {
+ indexgen.createSearchIndexFiles();
}
- } catch (IOException exc) {
- Messages messages = configuration.getMessages();
- messages.error("doclet.exception_encountered",
- exc.toString(), filename.getPath());
- throw new DocletAbortException(exc);
}
}
@@ -132,8 +126,9 @@
*
* @param unicode Unicode character referring to the character for the
* index.
+ * @throws DocFileIOException if there is a problem generating an index file
*/
- protected void generateIndexFile(Character unicode) throws IOException {
+ protected void generateIndexFile(Character unicode) throws DocFileIOException {
String title = configuration.getText("doclet.Window_Split_Index",
unicode.toString());
HtmlTree body = getBody(true, getWindowTitle(title));
@@ -188,6 +183,7 @@
*
* @return a content tree for the link
*/
+ @Override
public Content getNavLinkPrevious() {
Content prevletterLabel = contents.prevLetter;
if (prev == -1) {
@@ -205,6 +201,7 @@
*
* @return a content tree for the link
*/
+ @Override
public Content getNavLinkNext() {
Content nextletterLabel = contents.nextLetter;
if (next == -1) {