8012178: Cleanup use of Util.escapeHtmlChars

Tue, 14 May 2013 10:14:55 -0700

author
jjg
date
Tue, 14 May 2013 10:14:55 -0700
changeset 1746
bd51ca92c013
parent 1745
937aa020c667
child 1747
df4f44800923

8012178: Cleanup use of Util.escapeHtmlChars
Reviewed-by: darcy

src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Tue May 14 10:14:55 2013 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Tue May 14 10:14:55 2013 -0700
     1.3 @@ -369,7 +369,7 @@
     1.4      protected void addClassUse(PackageDoc pkg, Content contentTree) throws IOException {
     1.5          String classLink = getLink(new LinkInfoImpl(configuration,
     1.6              LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc)).toString();
     1.7 -        String pkgLink = getPackageLinkString(pkg, Util.escapeHtmlChars(Util.getPackageName(pkg)), false);
     1.8 +        String pkgLink = getPackageLink(pkg, Util.getPackageName(pkg)).toString();
     1.9          classSubWriter.addUseInfo(pkgToClassAnnotations.get(pkg.name()),
    1.10                  configuration.getText("doclet.ClassUse_Annotation", classLink,
    1.11                  pkgLink), classUseTableSummary, contentTree);
     2.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue May 14 10:14:55 2013 -0700
     2.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue May 14 10:14:55 2013 -0700
     2.3 @@ -991,53 +991,6 @@
     2.4       *
     2.5       * @param pkg the package to link to.
     2.6       * @param label the label for the link.
     2.7 -     * @param isStrong true if the label should be strong.
     2.8 -     * @return the link to the given package.
     2.9 -     */
    2.10 -    public String getPackageLinkString(PackageDoc pkg, String label,
    2.11 -                                 boolean isStrong) {
    2.12 -        return getPackageLinkString(pkg, label, isStrong, "");
    2.13 -    }
    2.14 -
    2.15 -    /**
    2.16 -     * Return the link to the given package.
    2.17 -     *
    2.18 -     * @param pkg the package to link to.
    2.19 -     * @param label the label for the link.
    2.20 -     * @param isStrong true if the label should be strong.
    2.21 -     * @param style  the font of the package link label.
    2.22 -     * @return the link to the given package.
    2.23 -     */
    2.24 -    public String getPackageLinkString(PackageDoc pkg, String label, boolean isStrong,
    2.25 -            String style) {
    2.26 -        boolean included = pkg != null && pkg.isIncluded();
    2.27 -        if (! included) {
    2.28 -            PackageDoc[] packages = configuration.packages;
    2.29 -            for (int i = 0; i < packages.length; i++) {
    2.30 -                if (packages[i].equals(pkg)) {
    2.31 -                    included = true;
    2.32 -                    break;
    2.33 -                }
    2.34 -            }
    2.35 -        }
    2.36 -        if (included || pkg == null) {
    2.37 -            return getHyperLinkString(pathString(pkg, DocPaths.PACKAGE_SUMMARY),
    2.38 -                                label, isStrong, style);
    2.39 -        } else {
    2.40 -            DocLink crossPkgLink = getCrossPackageLink(Util.getPackageName(pkg));
    2.41 -            if (crossPkgLink != null) {
    2.42 -                return getHyperLinkString(crossPkgLink, label, isStrong, style);
    2.43 -            } else {
    2.44 -                return label;
    2.45 -            }
    2.46 -        }
    2.47 -    }
    2.48 -
    2.49 -    /**
    2.50 -     * Return the link to the given package.
    2.51 -     *
    2.52 -     * @param pkg the package to link to.
    2.53 -     * @param label the label for the link.
    2.54       * @return a content tree for the package link.
    2.55       */
    2.56      public Content getPackageLink(PackageDoc pkg, String label) {
    2.57 @@ -1302,6 +1255,10 @@
    2.58              String label, boolean strong) {
    2.59          return getDocLink(context, classDoc, doc, label, strong, false);
    2.60      }
    2.61 +    public Content getDocLink(LinkInfoImpl.Kind context, ClassDoc classDoc, MemberDoc doc,
    2.62 +            Content label, boolean strong) {
    2.63 +        return getDocLink(context, classDoc, doc, label, strong, false);
    2.64 +    }
    2.65  
    2.66     /**
    2.67       * Return the link for the given member.
    2.68 @@ -1318,7 +1275,12 @@
    2.69       */
    2.70      public Content getDocLink(LinkInfoImpl.Kind context, ClassDoc classDoc, MemberDoc doc,
    2.71              String label, boolean strong, boolean isProperty) {
    2.72 -        return getDocLink(context, classDoc, doc, new RawHtml(label), strong, isProperty);
    2.73 +        return getDocLink(context, classDoc, doc, new StringContent(check(label)), strong, isProperty);
    2.74 +    }
    2.75 +
    2.76 +    String check(String s) {
    2.77 +        if (s.matches(".*[&<>].*"))throw new IllegalArgumentException(s);
    2.78 +        return s;
    2.79      }
    2.80  
    2.81      public Content getDocLink(LinkInfoImpl.Kind context, ClassDoc classDoc, MemberDoc doc,
    2.82 @@ -1487,7 +1449,7 @@
    2.83              text = plainOrCode(plain, new StringContent(refMemName));
    2.84  
    2.85              return getDocLink(LinkInfoImpl.Kind.SEE_TAG, containing,
    2.86 -                refMem, (label.isEmpty() ? text: label).toString(), false);
    2.87 +                refMem, (label.isEmpty() ? text: label), false);
    2.88          }
    2.89      }
    2.90  
     3.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java	Tue May 14 10:14:55 2013 -0700
     3.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java	Tue May 14 10:14:55 2013 -0700
     3.3 @@ -179,16 +179,16 @@
     3.4                  classDoc.name());
     3.5          } else if (classDoc.isInterface()){
     3.6              return configuration.getText("doclet.Href_Interface_Title",
     3.7 -                Util.escapeHtmlChars(Util.getPackageName(classDoc.containingPackage())));
     3.8 +                Util.getPackageName(classDoc.containingPackage()));
     3.9          } else if (classDoc.isAnnotationType()) {
    3.10              return configuration.getText("doclet.Href_Annotation_Title",
    3.11 -                Util.escapeHtmlChars(Util.getPackageName(classDoc.containingPackage())));
    3.12 +                Util.getPackageName(classDoc.containingPackage()));
    3.13          } else if (classDoc.isEnum()) {
    3.14              return configuration.getText("doclet.Href_Enum_Title",
    3.15 -                Util.escapeHtmlChars(Util.getPackageName(classDoc.containingPackage())));
    3.16 +                Util.getPackageName(classDoc.containingPackage()));
    3.17          } else {
    3.18              return configuration.getText("doclet.Href_Class_Title",
    3.19 -                Util.escapeHtmlChars(Util.getPackageName(classDoc.containingPackage())));
    3.20 +                Util.getPackageName(classDoc.containingPackage()));
    3.21          }
    3.22      }
    3.23  
     4.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Tue May 14 10:14:55 2013 -0700
     4.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Tue May 14 10:14:55 2013 -0700
     4.3 @@ -154,7 +154,7 @@
     4.4          Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
     4.5                  getTableCaption(configuration.getText(
     4.6                  "doclet.ClassUse_Packages.that.use.0",
     4.7 -                getPackageLinkString(pkgdoc, Util.escapeHtmlChars(Util.getPackageName(pkgdoc)), false))));
     4.8 +                getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)).toString())));
     4.9          table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
    4.10          Content tbody = new HtmlTree(HtmlTag.TBODY);
    4.11          Iterator<String> it = usingPackageToUsedClasses.keySet().iterator();
    4.12 @@ -199,8 +199,8 @@
    4.13              Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
    4.14                      getTableCaption(configuration.getText(
    4.15                      "doclet.ClassUse_Classes.in.0.used.by.1",
    4.16 -                    getPackageLinkString(pkgdoc, Util.escapeHtmlChars(Util.getPackageName(pkgdoc)), false),
    4.17 -                    getPackageLinkString(usingPackage, Util.escapeHtmlChars(Util.getPackageName(usingPackage)), false))));
    4.18 +                    getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)).toString(),
    4.19 +                    getPackageLink(usingPackage, Util.getPackageName(usingPackage)).toString())));
    4.20              table.addContent(getSummaryTableHeader(classTableHeader, "col"));
    4.21              Content tbody = new HtmlTree(HtmlTag.TBODY);
    4.22              Iterator<ClassDoc> itc =
     5.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Tue May 14 10:14:55 2013 -0700
     5.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Tue May 14 10:14:55 2013 -0700
     5.3 @@ -102,7 +102,7 @@
     5.4          Content tHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
     5.5                  HtmlStyle.title, packageLabel);
     5.6          tHeading.addContent(getSpace());
     5.7 -        Content packageHead = new RawHtml(heading);
     5.8 +        Content packageHead = new StringContent(heading);
     5.9          tHeading.addContent(packageHead);
    5.10          div.addContent(tHeading);
    5.11          addDeprecationInfo(div);
     6.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Tue May 14 10:14:55 2013 -0700
     6.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Tue May 14 10:14:55 2013 -0700
     6.3 @@ -1,5 +1,5 @@
     6.4  /*
     6.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     6.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     6.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.8   *
     6.9   * This code is free software; you can redistribute it and/or modify it
    6.10 @@ -135,10 +135,8 @@
    6.11       * @return the content tree for the method type link
    6.12       */
    6.13      public Content getMethodTypeLinks(MethodTypes methodType) {
    6.14 -        StringBuilder jsShow = new StringBuilder("javascript:show(");
    6.15 -        jsShow.append(methodType.value()).append(");");
    6.16 -        HtmlTree link = HtmlTree.A(jsShow.toString(),
    6.17 -                new StringContent(methodType.text()));
    6.18 +        String jsShow = "javascript:show(" + methodType.value() +");";
    6.19 +        HtmlTree link = HtmlTree.A(jsShow, new StringContent(methodType.text()));
    6.20          return link;
    6.21      }
    6.22  
     7.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Tue May 14 10:14:55 2013 -0700
     7.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Tue May 14 10:14:55 2013 -0700
     7.3 @@ -71,25 +71,10 @@
     7.4       */
     7.5      public abstract Configuration configuration();
     7.6  
     7.7 -    /**
     7.8 -     * Return Html hyperlink string.
     7.9 -     *
    7.10 -     * @param link       String name of the file.
    7.11 -     * @param label      Tag for the link.
    7.12 -     * @return String    Hyper Link.
    7.13 -     */
    7.14 -    public String getHyperLinkString(DocPath link, String label) {
    7.15 -        return getHyperLinkString(link, label, false, "", "", "");
    7.16 -    }
    7.17 -
    7.18      public Content getHyperLink(DocPath link, String label) {
    7.19          return getHyperLink(link, new StringContent(label), false, "", "", "");
    7.20      }
    7.21  
    7.22 -    public String getHyperLinkString(DocLink link, String label) {
    7.23 -        return getHyperLinkString(link, label, false, "", "", "");
    7.24 -    }
    7.25 -
    7.26      /**
    7.27       * Get Html Hyper Link string.
    7.28       *
     8.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Tue May 14 10:14:55 2013 -0700
     8.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Tue May 14 10:14:55 2013 -0700
     8.3 @@ -78,8 +78,8 @@
     8.4       */
     8.5      public void addAttr(HtmlAttr attrName, String attrValue) {
     8.6          if (attrs.isEmpty())
     8.7 -            attrs = new LinkedHashMap<HtmlAttr,String>();
     8.8 -        attrs.put(nullCheck(attrName), nullCheck(attrValue));
     8.9 +            attrs = new LinkedHashMap<HtmlAttr,String>(3);
    8.10 +        attrs.put(nullCheck(attrName), escapeHtmlChars(attrValue));
    8.11      }
    8.12  
    8.13      /**
    8.14 @@ -131,6 +131,35 @@
    8.15      }
    8.16  
    8.17      /**
    8.18 +     * Given a string, escape all special html characters and
    8.19 +     * return the result.
    8.20 +     *
    8.21 +     * @param s The string to check.
    8.22 +     * @return the original string with all of the HTML characters escaped.
    8.23 +     */
    8.24 +    private static String escapeHtmlChars(String s) {
    8.25 +        for (int i = 0; i < s.length(); i++) {
    8.26 +            char ch = s.charAt(i);
    8.27 +            switch (ch) {
    8.28 +                // only start building a new string if we need to
    8.29 +                case '<': case '>': case '&':
    8.30 +                    StringBuilder sb = new StringBuilder(s.substring(0, i));
    8.31 +                    for ( ; i < s.length(); i++) {
    8.32 +                        ch = s.charAt(i);
    8.33 +                        switch (ch) {
    8.34 +                            case '<': sb.append("&lt;");  break;
    8.35 +                            case '>': sb.append("&gt;");  break;
    8.36 +                            case '&': sb.append("&amp;"); break;
    8.37 +                            default:  sb.append(ch);      break;
    8.38 +                        }
    8.39 +                    }
    8.40 +                    return sb.toString();
    8.41 +            }
    8.42 +        }
    8.43 +        return s;
    8.44 +    }
    8.45 +
    8.46 +    /**
    8.47       * Generates an HTML anchor tag.
    8.48       *
    8.49       * @param ref reference url for the anchor tag
    8.50 @@ -139,7 +168,7 @@
    8.51       */
    8.52      public static HtmlTree A(String ref, Content body) {
    8.53          HtmlTree htmltree = new HtmlTree(HtmlTag.A, nullCheck(body));
    8.54 -        htmltree.addAttr(HtmlAttr.HREF, Util.escapeHtmlChars(nullCheck(ref)));
    8.55 +        htmltree.addAttr(HtmlAttr.HREF, ref);
    8.56          return htmltree;
    8.57      }
    8.58  
    8.59 @@ -324,7 +353,7 @@
    8.60              HtmlStyle styleClass, Content body) {
    8.61          HtmlTree htmltree = new HtmlTree(headingTag, nullCheck(body));
    8.62          if (printTitle)
    8.63 -            htmltree.addAttr(HtmlAttr.TITLE, Util.stripHtml(body.toString()));
    8.64 +            htmltree.addAttr(HtmlAttr.TITLE, stripHtml(body));
    8.65          if (styleClass != null)
    8.66              htmltree.addStyle(styleClass);
    8.67          return htmltree;
    8.68 @@ -837,4 +866,22 @@
    8.69              return false;
    8.70          }
    8.71      }
    8.72 +
    8.73 +    /**
    8.74 +     * Given a Content node, strips all html characters and
    8.75 +     * return the result.
    8.76 +     *
    8.77 +     * @param body The content node to check.
    8.78 +     * @return the plain text from the content node
    8.79 +     *
    8.80 +     */
    8.81 +    private static String stripHtml(Content body) {
    8.82 +        String rawString = body.toString();
    8.83 +        // remove HTML tags
    8.84 +        rawString = rawString.replaceAll("\\<.*?>", " ");
    8.85 +        // consolidate multiple spaces between a word to a single space
    8.86 +        rawString = rawString.replaceAll("\\b\\s{2,}\\b", " ");
    8.87 +        // remove extra whitespaces
    8.88 +        return rawString.trim();
    8.89 +    }
    8.90  }
     9.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Tue May 14 10:14:55 2013 -0700
     9.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Tue May 14 10:14:55 2013 -0700
     9.3 @@ -197,8 +197,7 @@
     9.4                  configuration.getText("doclet.Modifier"),
     9.5                  configuration.getText("doclet.Type"));
     9.6          overviewLabel = getResource("doclet.Overview");
     9.7 -        defaultPackageLabel = new RawHtml(
     9.8 -                Util.escapeHtmlChars(DocletConstants.DEFAULT_PACKAGE_NAME));
     9.9 +        defaultPackageLabel = new StringContent(DocletConstants.DEFAULT_PACKAGE_NAME);
    9.10          packageLabel = getResource("doclet.Package");
    9.11          profileLabel = getResource("doclet.Profile");
    9.12          useLabel = getResource("doclet.navClassUse");
    10.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java	Tue May 14 10:14:55 2013 -0700
    10.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java	Tue May 14 10:14:55 2013 -0700
    10.3 @@ -58,8 +58,8 @@
    10.4       * @param initialContent initial content for the object
    10.5       */
    10.6      public StringContent(String initialContent) {
    10.7 -        stringContent = new StringBuilder(
    10.8 -                Util.escapeHtmlChars(nullCheck(initialContent)));
    10.9 +        stringContent = new StringBuilder();
   10.10 +        appendChars(initialContent);
   10.11      }
   10.12  
   10.13      /**
   10.14 @@ -81,7 +81,7 @@
   10.15       * @param strContent string content to be added
   10.16       */
   10.17      public void addContent(String strContent) {
   10.18 -        stringContent.append(Util.escapeHtmlChars(nullCheck(strContent)));
   10.19 +        appendChars(strContent);
   10.20      }
   10.21  
   10.22      /**
   10.23 @@ -111,4 +111,16 @@
   10.24          out.write(s);
   10.25          return s.endsWith(DocletConstants.NL);
   10.26      }
   10.27 +
   10.28 +    private void appendChars(String s) {
   10.29 +        for (int i = 0; i < s.length(); i++) {
   10.30 +            char ch = s.charAt(i);
   10.31 +            switch (ch) {
   10.32 +                case '<': stringContent.append("&lt;");  break;
   10.33 +                case '>': stringContent.append("&gt;");  break;
   10.34 +                case '&': stringContent.append("&amp;"); break;
   10.35 +                default:  stringContent.append(ch);      break;
   10.36 +            }
   10.37 +        }
   10.38 +    }
   10.39  }
    11.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java	Tue May 14 10:14:55 2013 -0700
    11.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java	Tue May 14 10:14:55 2013 -0700
    11.3 @@ -120,8 +120,7 @@
    11.4       * @param contentTree the content tree to which the documentation will be added
    11.5       */
    11.6      public void buildPackageDoc(XMLNode node, Content contentTree) throws Exception {
    11.7 -        contentTree = packageWriter.getPackageHeader(
    11.8 -                Util.escapeHtmlChars(Util.getPackageName(packageDoc)));
    11.9 +        contentTree = packageWriter.getPackageHeader(Util.getPackageName(packageDoc));
   11.10          buildChildren(node, contentTree);
   11.11          packageWriter.addPackageFooter(contentTree);
   11.12          packageWriter.printDocument(contentTree);
    12.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java	Tue May 14 10:14:55 2013 -0700
    12.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java	Tue May 14 10:14:55 2013 -0700
    12.3 @@ -1,5 +1,5 @@
    12.4  /*
    12.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
    12.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    12.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8   *
    12.9   * This code is free software; you can redistribute it and/or modify it
   12.10 @@ -28,6 +28,7 @@
   12.11  import java.util.*;
   12.12  
   12.13  import com.sun.javadoc.*;
   12.14 +import com.sun.tools.doclets.formats.html.markup.StringContent;
   12.15  import com.sun.tools.doclets.internal.toolkit.Configuration;
   12.16  import com.sun.tools.doclets.internal.toolkit.util.*;
   12.17  
   12.18 @@ -169,7 +170,7 @@
   12.19                  "doclet.value_tag_invalid_reference", tag.text());
   12.20          } else if (field.constantValue() != null) {
   12.21              return writer.valueTagOutput(field,
   12.22 -                Util.escapeHtmlChars(field.constantValueExpression()),
   12.23 +                field.constantValueExpression(),
   12.24                  ! field.equals(tag.holder()));
   12.25          } else {
   12.26              //Referenced field is not a constant.
    13.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java	Tue May 14 10:14:55 2013 -0700
    13.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java	Tue May 14 10:14:55 2013 -0700
    13.3 @@ -420,69 +420,6 @@
    13.4      }
    13.5  
    13.6      /**
    13.7 -     * Given a string, escape all special html characters and
    13.8 -     * return the result.
    13.9 -     *
   13.10 -     * @param s The string to check.
   13.11 -     * @return the original string with all of the HTML characters escaped.
   13.12 -     */
   13.13 -    public static String escapeHtmlChars(String s) {
   13.14 -        for (int i = 0; i < s.length(); i++) {
   13.15 -            char ch = s.charAt(i);
   13.16 -            switch (ch) {
   13.17 -                // only start building a new string if we need to
   13.18 -                case '<': case '>': case '&':
   13.19 -                    StringBuilder sb = new StringBuilder(s.substring(0, i));
   13.20 -                    for ( ; i < s.length(); i++) {
   13.21 -                        ch = s.charAt(i);
   13.22 -                        switch (ch) {
   13.23 -                            case '<': sb.append("&lt;");  break;
   13.24 -                            case '>': sb.append("&gt;");  break;
   13.25 -                            case '&': sb.append("&amp;"); break;
   13.26 -                            default:  sb.append(ch);      break;
   13.27 -                        }
   13.28 -                    }
   13.29 -                    return sb.toString();
   13.30 -            }
   13.31 -        }
   13.32 -        return s;
   13.33 -    }
   13.34 -
   13.35 -    /**
   13.36 -     * Escape all special html characters in a string buffer.
   13.37 -     *
   13.38 -     * @param sb The string buffer to update
   13.39 -     */
   13.40 -    public static void escapeHtmlChars(StringBuilder sb) {
   13.41 -        // scan backwards, replacing characters as needed.
   13.42 -        for (int i = sb.length() - 1; i >= 0; i--) {
   13.43 -            switch (sb.charAt(i)) {
   13.44 -                case '<': sb.replace(i, i+1, "&lt;"); break;
   13.45 -                case '>': sb.replace(i, i+1, "&gt;"); break;
   13.46 -                case '&': sb.replace(i, i+1, "&amp;"); break;
   13.47 -            }
   13.48 -        }
   13.49 -    }
   13.50 -
   13.51 -    /**
   13.52 -     * Given a string, strips all html characters and
   13.53 -     * return the result.
   13.54 -     *
   13.55 -     * @param rawString The string to check.
   13.56 -     * @return the original string with all of the HTML characters
   13.57 -     * stripped.
   13.58 -     *
   13.59 -     */
   13.60 -    public static String stripHtml(String rawString) {
   13.61 -        // remove HTML tags
   13.62 -        rawString = rawString.replaceAll("\\<.*?>", " ");
   13.63 -        // consolidate multiple spaces between a word to a single space
   13.64 -        rawString = rawString.replaceAll("\\b\\s{2,}\\b", " ");
   13.65 -        // remove extra whitespaces
   13.66 -        return rawString.trim();
   13.67 -    }
   13.68 -
   13.69 -    /**
   13.70       * Given an annotation, return true if it should be documented and false
   13.71       * otherwise.
   13.72       *

mercurial