test/langtools/jdk/javadoc/doclet/testSingletonLists/TestSingletonLists.java
changeset 54648 89f2043ee67a
parent 54596 86c1da00dd6a
equal deleted inserted replaced
54647:c0d9bc9b4e1f 54648:89f2043ee67a
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
    26  * @bug 8219998
    26  * @bug 8219998 8221991
    27  * @summary Eliminate inherently singleton lists
    27  * @summary Eliminate inherently singleton lists
    28  * @library /tools/lib ../../lib
    28  * @library /tools/lib ../../lib
    29  * @modules jdk.javadoc/jdk.javadoc.internal.tool
    29  * @modules jdk.javadoc/jdk.javadoc.internal.tool
    30  * @modules jdk.compiler/com.sun.tools.javac.api
    30  * @modules jdk.compiler/com.sun.tools.javac.api
    31  *          jdk.compiler/com.sun.tools.javac.main
    31  *          jdk.compiler/com.sun.tools.javac.main
   273         public void startElement(String name, Map<String,String> attrs, boolean selfClosing) {
   273         public void startElement(String name, Map<String,String> attrs, boolean selfClosing) {
   274             switch (name) {
   274             switch (name) {
   275 
   275 
   276                 case "ul": case "ol": case "dl":
   276                 case "ul": case "ol": case "dl":
   277                     counts.push(new TreeMap<>());
   277                     counts.push(new TreeMap<>());
   278                     if (!attrs.isEmpty() && attrs.containsKey("class")
       
   279                             && attrs.containsValue("inheritance")) {
       
   280                         inheritanceClass = true;
       
   281                     }
       
   282                     break;
   278                     break;
   283 
   279 
   284                 case "li": case "dd": case "dt": {
   280                 case "li": case "dd": case "dt": {
   285                     Map<String, Integer> c = counts.peek();
   281                     Map<String, Integer> c = counts.peek();
   286                     c.put(name, 1 + c.computeIfAbsent(name, n -> 0));
   282                     c.put(name, 1 + c.computeIfAbsent(name, n -> 0));
   295                 case "ul": case "ol": {
   291                 case "ul": case "ol": {
   296                     Map<String,Integer> c = counts.pop();
   292                     Map<String,Integer> c = counts.pop();
   297                     if (c.get("li") == 0) {
   293                     if (c.get("li") == 0) {
   298                         error(currFile, getLineNumber(), "empty list");
   294                         error(currFile, getLineNumber(), "empty list");
   299                     } else if (c.get("li") == 1 && fileName != null && !excludeFiles.contains(fileName)) {
   295                     } else if (c.get("li") == 1 && fileName != null && !excludeFiles.contains(fileName)) {
   300                         if (!inheritanceClass) {
   296                         error(currFile, getLineNumber(), "singleton list");
   301                             error(currFile, getLineNumber(), "singleton list");
       
   302                         } else {
       
   303                             inheritanceClass = false;
       
   304                         }
       
   305                     }
   297                     }
   306                     break;
   298                     break;
   307                 }
   299                 }
   308 
   300 
   309                 case "dl": {
   301                 case "dl": {
   317                     break;
   309                     break;
   318                 }
   310                 }
   319             }
   311             }
   320         }
   312         }
   321     }
   313     }
   322 
       
   323 }
   314 }