commons-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chtom...@apache.org
Subject svn commit: r1005408 [19/29] - in /websites/production/commons/content/proper/commons-text: ./ apidocs/ apidocs/org/apache/commons/text/ apidocs/org/apache/commons/text/translate/ apidocs/org/apache/commons/text/translate/class-use/ apidocs/src-html/or...
Date Mon, 23 Jan 2017 12:35:15 GMT
Modified: websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils.java.html (original)
+++ websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils.java.html Mon Jan 23 12:35:12 2017
@@ -16,10 +16,10 @@
  */
 package org.apache.commons.text;
 
-import org.apache.commons.lang3.CharUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.translate.AggregateTranslator;
 import org.apache.commons.text.translate.CharSequenceTranslator;
+import org.apache.commons.text.translate.CsvTranslators;
 import org.apache.commons.text.translate.EntityArrays;
 import org.apache.commons.text.translate.JavaUnicodeEscaper;
 import org.apache.commons.text.translate.LookupTranslator;
@@ -32,6 +32,9 @@ import org.apache.commons.text.translate
 
 import java.io.IOException;
 import java.io.Writer;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * <p>Escapes and unescapes {@code String}s for
@@ -57,16 +60,17 @@ public class StringEscapeUtils {
      * object allows the Java escaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L60">    public static final CharSequenceTranslator ESCAPE_JAVA =</span>
-            new LookupTranslator(
-                    new String[][] {
-                            {&quot;\&quot;&quot;, &quot;\\\&quot;&quot;},
-                            {&quot;\\&quot;, &quot;\\\\&quot;},
-<span class="fc" id="L65">                    }).with(</span>
-<span class="fc" id="L66">                    new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE())</span>
-<span class="fc" id="L67">            ).with(</span>
-<span class="fc" id="L68">                    JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
-            );
+    public static final CharSequenceTranslator ESCAPE_JAVA;
+    static {
+<span class="fc" id="L65">        Map&lt;CharSequence, CharSequence&gt; escapeJavaMap = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L66">        escapeJavaMap.put(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;);</span>
+<span class="fc" id="L67">        escapeJavaMap.put(&quot;\\&quot;, &quot;\\\\&quot;);</span>
+<span class="fc" id="L68">        ESCAPE_JAVA = new AggregateTranslator(</span>
+<span class="fc" id="L69">                new LookupTranslator(Collections.unmodifiableMap(escapeJavaMap)),</span>
+                new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE),
+<span class="fc" id="L71">                JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
+        );
+    }
 
     /**
      * Translator object for escaping EcmaScript/JavaScript. 
@@ -75,18 +79,19 @@ public class StringEscapeUtils {
      * object allows the EcmaScript escaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L78">    public static final CharSequenceTranslator ESCAPE_ECMASCRIPT =</span>
-            new AggregateTranslator(
-                    new LookupTranslator(
-                            new String[][] {
-                                    {&quot;'&quot;, &quot;\\'&quot;},
-                                    {&quot;\&quot;&quot;, &quot;\\\&quot;&quot;},
-                                    {&quot;\\&quot;, &quot;\\\\&quot;},
-                                    {&quot;/&quot;, &quot;\\/&quot;}
-                            }),
-<span class="fc" id="L87">                    new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE()),</span>
-<span class="fc" id="L88">                    JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
-            );
+    public static final CharSequenceTranslator ESCAPE_ECMASCRIPT;
+    static {
+<span class="fc" id="L84">        Map&lt;CharSequence, CharSequence&gt; escapeEcmaScriptMap = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L85">        escapeEcmaScriptMap.put(&quot;'&quot;, &quot;\\'&quot;);</span>
+<span class="fc" id="L86">        escapeEcmaScriptMap.put(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;);</span>
+<span class="fc" id="L87">        escapeEcmaScriptMap.put(&quot;\\&quot;, &quot;\\\\&quot;);</span>
+<span class="fc" id="L88">        escapeEcmaScriptMap.put(&quot;/&quot;, &quot;\\/&quot;);</span>
+<span class="fc" id="L89">        ESCAPE_ECMASCRIPT = new AggregateTranslator(</span>
+<span class="fc" id="L90">                new LookupTranslator(Collections.unmodifiableMap(escapeEcmaScriptMap)),</span>
+                new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE),
+<span class="fc" id="L92">                JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
+        );
+    }
 
     /**
      * Translator object for escaping Json.
@@ -95,17 +100,18 @@ public class StringEscapeUtils {
      * object allows the Json escaping functionality to be used
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L98">    public static final CharSequenceTranslator ESCAPE_JSON =</span>
-            new AggregateTranslator(
-                    new LookupTranslator(
-                            new String[][] {
-                                    {&quot;\&quot;&quot;, &quot;\\\&quot;&quot;},
-                                    {&quot;\\&quot;, &quot;\\\\&quot;},
-                                    {&quot;/&quot;, &quot;\\/&quot;}
-                            }),
-<span class="fc" id="L106">                    new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE()),</span>
-<span class="fc" id="L107">                    JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
-            );
+    public static final CharSequenceTranslator ESCAPE_JSON;
+    static {
+<span class="fc" id="L105">        Map&lt;CharSequence, CharSequence&gt; escapeJsonMap = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L106">        escapeJsonMap.put(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;);</span>
+<span class="fc" id="L107">        escapeJsonMap.put(&quot;\\&quot;, &quot;\\\\&quot;);</span>
+<span class="fc" id="L108">        escapeJsonMap.put(&quot;/&quot;, &quot;\\/&quot;);</span>
+<span class="fc" id="L109">        ESCAPE_JSON = new AggregateTranslator(</span>
+<span class="fc" id="L110">                new LookupTranslator(Collections.unmodifiableMap(escapeJsonMap)),</span>
+                new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_ESCAPE),
+<span class="fc" id="L112">                JavaUnicodeEscaper.outsideOf(32, 0x7f)</span>
+        );
+    }
 
     /**
      * Translator object for escaping XML 1.0.
@@ -114,48 +120,49 @@ public class StringEscapeUtils {
      * object allows the XML escaping functionality to be used
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L117">    public static final CharSequenceTranslator ESCAPE_XML10 =</span>
-            new AggregateTranslator(
-<span class="fc" id="L119">                    new LookupTranslator(EntityArrays.BASIC_ESCAPE()),</span>
-<span class="fc" id="L120">                    new LookupTranslator(EntityArrays.APOS_ESCAPE()),</span>
-                    new LookupTranslator(
-                            new String[][] {
-                                    { &quot;\u0000&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0001&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0002&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0003&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0004&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0005&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0006&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0007&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0008&quot;, StringUtils.EMPTY },
-                                    { &quot;\u000b&quot;, StringUtils.EMPTY },
-                                    { &quot;\u000c&quot;, StringUtils.EMPTY },
-                                    { &quot;\u000e&quot;, StringUtils.EMPTY },
-                                    { &quot;\u000f&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0010&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0011&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0012&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0013&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0014&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0015&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0016&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0017&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0018&quot;, StringUtils.EMPTY },
-                                    { &quot;\u0019&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001a&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001b&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001c&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001d&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001e&quot;, StringUtils.EMPTY },
-                                    { &quot;\u001f&quot;, StringUtils.EMPTY },
-                                    { &quot;\ufffe&quot;, StringUtils.EMPTY },
-                                    { &quot;\uffff&quot;, StringUtils.EMPTY }
-                            }),
-<span class="fc" id="L155">                    NumericEntityEscaper.between(0x7f, 0x84),</span>
-<span class="fc" id="L156">                    NumericEntityEscaper.between(0x86, 0x9f),</span>
-                    new UnicodeUnpairedSurrogateRemover()
-            );
+    public static final CharSequenceTranslator ESCAPE_XML10;
+    static {
+<span class="fc" id="L125">        Map&lt;CharSequence, CharSequence&gt; escapeXml10Map = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L126">        escapeXml10Map.put(&quot;\u0000&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L127">        escapeXml10Map.put(&quot;\u0001&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L128">        escapeXml10Map.put(&quot;\u0002&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L129">        escapeXml10Map.put(&quot;\u0003&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L130">        escapeXml10Map.put(&quot;\u0004&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L131">        escapeXml10Map.put(&quot;\u0005&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L132">        escapeXml10Map.put(&quot;\u0006&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L133">        escapeXml10Map.put(&quot;\u0007&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L134">        escapeXml10Map.put(&quot;\u0008&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L135">        escapeXml10Map.put(&quot;\u000b&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L136">        escapeXml10Map.put(&quot;\u000c&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L137">        escapeXml10Map.put(&quot;\u000e&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L138">        escapeXml10Map.put(&quot;\u000f&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L139">        escapeXml10Map.put(&quot;\u0010&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L140">        escapeXml10Map.put(&quot;\u0011&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L141">        escapeXml10Map.put(&quot;\u0012&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L142">        escapeXml10Map.put(&quot;\u0013&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L143">        escapeXml10Map.put(&quot;\u0014&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L144">        escapeXml10Map.put(&quot;\u0015&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L145">        escapeXml10Map.put(&quot;\u0016&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L146">        escapeXml10Map.put(&quot;\u0017&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L147">        escapeXml10Map.put(&quot;\u0018&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L148">        escapeXml10Map.put(&quot;\u0019&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L149">        escapeXml10Map.put(&quot;\u001a&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L150">        escapeXml10Map.put(&quot;\u001b&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L151">        escapeXml10Map.put(&quot;\u001c&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L152">        escapeXml10Map.put(&quot;\u001d&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L153">        escapeXml10Map.put(&quot;\u001e&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L154">        escapeXml10Map.put(&quot;\u001f&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L155">        escapeXml10Map.put(&quot;\ufffe&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L156">        escapeXml10Map.put(&quot;\uffff&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L157">        ESCAPE_XML10 = new AggregateTranslator(</span>
+                new LookupTranslator(EntityArrays.BASIC_ESCAPE),
+                new LookupTranslator(EntityArrays.APOS_ESCAPE),
+<span class="fc" id="L160">                new LookupTranslator(Collections.unmodifiableMap(escapeXml10Map)),</span>
+<span class="fc" id="L161">                NumericEntityEscaper.between(0x7f, 0x84),</span>
+<span class="fc" id="L162">                NumericEntityEscaper.between(0x86, 0x9f),</span>
+                new UnicodeUnpairedSurrogateRemover()
+        );
+    }
 
     /**
      * Translator object for escaping XML 1.1.
@@ -164,24 +171,25 @@ public class StringEscapeUtils {
      * object allows the XML escaping functionality to be used
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L167">    public static final CharSequenceTranslator ESCAPE_XML11 =</span>
-            new AggregateTranslator(
-<span class="fc" id="L169">                    new LookupTranslator(EntityArrays.BASIC_ESCAPE()),</span>
-<span class="fc" id="L170">                    new LookupTranslator(EntityArrays.APOS_ESCAPE()),</span>
-                    new LookupTranslator(
-                            new String[][] {
-                                    { &quot;\u0000&quot;, StringUtils.EMPTY },
-                                    { &quot;\u000b&quot;, &quot;&amp;#11;&quot; },
-                                    { &quot;\u000c&quot;, &quot;&amp;#12;&quot; },
-                                    { &quot;\ufffe&quot;, StringUtils.EMPTY },
-                                    { &quot;\uffff&quot;, StringUtils.EMPTY }
-                            }),
-<span class="fc" id="L179">                    NumericEntityEscaper.between(0x1, 0x8),</span>
-<span class="fc" id="L180">                    NumericEntityEscaper.between(0xe, 0x1f),</span>
-<span class="fc" id="L181">                    NumericEntityEscaper.between(0x7f, 0x84),</span>
-<span class="fc" id="L182">                    NumericEntityEscaper.between(0x86, 0x9f),</span>
-                    new UnicodeUnpairedSurrogateRemover()
-            );
+    public static final CharSequenceTranslator ESCAPE_XML11;
+    static {
+<span class="fc" id="L176">        Map&lt;CharSequence, CharSequence&gt; escapeXml11Map = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L177">        escapeXml11Map.put(&quot;\u0000&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L178">        escapeXml11Map.put(&quot;\u000b&quot;, &quot;&amp;#11;&quot;);</span>
+<span class="fc" id="L179">        escapeXml11Map.put(&quot;\u000c&quot;, &quot;&amp;#12;&quot;);</span>
+<span class="fc" id="L180">        escapeXml11Map.put(&quot;\ufffe&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L181">        escapeXml11Map.put(&quot;\uffff&quot;, StringUtils.EMPTY);</span>
+<span class="fc" id="L182">        ESCAPE_XML11 = new AggregateTranslator(</span>
+                new LookupTranslator(EntityArrays.BASIC_ESCAPE),
+                new LookupTranslator(EntityArrays.APOS_ESCAPE),
+<span class="fc" id="L185">                new LookupTranslator(Collections.unmodifiableMap(escapeXml11Map)),</span>
+<span class="fc" id="L186">                NumericEntityEscaper.between(0x1, 0x8),</span>
+<span class="fc" id="L187">                NumericEntityEscaper.between(0xe, 0x1f),</span>
+<span class="fc" id="L188">                NumericEntityEscaper.between(0x7f, 0x84),</span>
+<span class="fc" id="L189">                NumericEntityEscaper.between(0x86, 0x9f),</span>
+                new UnicodeUnpairedSurrogateRemover()
+        );
+    }
 
     /**
      * Translator object for escaping HTML version 3.0.
@@ -190,10 +198,10 @@ public class StringEscapeUtils {
      * object allows the HTML escaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L193">    public static final CharSequenceTranslator ESCAPE_HTML3 =</span>
+<span class="fc" id="L201">    public static final CharSequenceTranslator ESCAPE_HTML3 =</span>
             new AggregateTranslator(
-<span class="fc" id="L195">                    new LookupTranslator(EntityArrays.BASIC_ESCAPE()),</span>
-<span class="fc" id="L196">                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE())</span>
+                    new LookupTranslator(EntityArrays.BASIC_ESCAPE),
+                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE)
             );
 
     /**
@@ -211,8 +219,8 @@ public class StringEscapeUtils {
      * lookup table passed to that instance while deciding whether a value is
      * already translated or not.
      */
-<span class="fc" id="L214">    public static final CharSequenceTranslator ESCAPE_HTML3_ONCE =</span>
-<span class="fc" id="L215">            new SingleLookupTranslator(EntityArrays.BASIC_ESCAPE(), EntityArrays.ISO8859_1_ESCAPE());</span>
+<span class="fc" id="L222">    public static final CharSequenceTranslator ESCAPE_HTML3_ONCE =</span>
+            new SingleLookupTranslator(EntityArrays.BASIC_ESCAPE, EntityArrays.ISO8859_1_ESCAPE);
 
 
     /**
@@ -222,11 +230,11 @@ public class StringEscapeUtils {
      * object allows the HTML escaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L225">    public static final CharSequenceTranslator ESCAPE_HTML4 =</span>
+<span class="fc" id="L233">    public static final CharSequenceTranslator ESCAPE_HTML4 =</span>
             new AggregateTranslator(
-<span class="fc" id="L227">                    new LookupTranslator(EntityArrays.BASIC_ESCAPE()),</span>
-<span class="fc" id="L228">                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE()),</span>
-<span class="fc" id="L229">                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE())</span>
+                    new LookupTranslator(EntityArrays.BASIC_ESCAPE),
+                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE),
+                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE)
             );
 
     /**
@@ -244,8 +252,12 @@ public class StringEscapeUtils {
      * lookup table passed to that instance while deciding whether a value is
      * already translated or not.
      */
-<span class="fc" id="L247">    public static final CharSequenceTranslator ESCAPE_HTML4_ONCE =</span>
-<span class="fc" id="L248">            new SingleLookupTranslator(EntityArrays.BASIC_ESCAPE(), EntityArrays.ISO8859_1_ESCAPE(), EntityArrays.HTML40_EXTENDED_ESCAPE());</span>
+<span class="fc" id="L255">    public static final CharSequenceTranslator ESCAPE_HTML4_ONCE =</span>
+            new SingleLookupTranslator(
+                    EntityArrays.BASIC_ESCAPE,
+                    EntityArrays.ISO8859_1_ESCAPE,
+                    EntityArrays.HTML40_EXTENDED_ESCAPE
+            );
 
     /**
      * Translator object for escaping individual Comma Separated Values. 
@@ -254,69 +266,43 @@ public class StringEscapeUtils {
      * object allows the CSV escaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L257">    public static final CharSequenceTranslator ESCAPE_CSV = new CsvEscaper();</span>
-
-    // TODO: Create a parent class - 'SinglePassTranslator' ?
-    //       It would handle the index checking + length returning, 
-    //       and could also have an optimization check method.
-<span class="fc" id="L262">    static class CsvEscaper extends CharSequenceTranslator {</span>
-
-        private static final char CSV_DELIMITER = ',';
-        private static final char CSV_QUOTE = '&quot;';
-<span class="fc" id="L266">        private static final String CSV_QUOTE_STR = String.valueOf(CSV_QUOTE);</span>
-<span class="fc" id="L267">        private static final char[] CSV_SEARCH_CHARS =</span>
-                new char[] {CSV_DELIMITER, CSV_QUOTE, CharUtils.CR, CharUtils.LF};
-
-        @Override
-        public int translate(final CharSequence input, final int index, final Writer out) throws IOException {
-
-<span class="pc bpc" id="L273" title="1 of 2 branches missed.">            if(index != 0) {</span>
-<span class="nc" id="L274">                throw new IllegalStateException(&quot;CsvEscaper should never reach the [1] index&quot;);</span>
-            }
-
-<span class="fc bfc" id="L277" title="All 2 branches covered.">            if (StringUtils.containsNone(input.toString(), CSV_SEARCH_CHARS)) {</span>
-<span class="fc" id="L278">                out.write(input.toString());</span>
-            } else {
-<span class="fc" id="L280">                out.write(CSV_QUOTE);</span>
-<span class="fc" id="L281">                out.write(StringUtils.replace(input.toString(), CSV_QUOTE_STR, CSV_QUOTE_STR + CSV_QUOTE_STR));</span>
-<span class="fc" id="L282">                out.write(CSV_QUOTE);</span>
-            }
-<span class="fc" id="L284">            return Character.codePointCount(input, 0, input.length());</span>
-        }
-    }
+<span class="fc" id="L269">    public static final CharSequenceTranslator ESCAPE_CSV = new CsvTranslators.CsvEscaper();</span>
 
     /**
      * Translator object for escaping Shell command language.
      *
      * @see &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xcu/chap2.html&quot;&gt;Shell Command Language&lt;/a&gt;
      */
-<span class="fc" id="L293">    public static final CharSequenceTranslator ESCAPE_XSI =</span>
-        new LookupTranslator(
-            new String[][] {
-                    {&quot;|&quot;, &quot;\\|&quot;},
-                    {&quot;&amp;&quot;, &quot;\\&amp;&quot;},
-                    {&quot;;&quot;, &quot;\\;&quot;},
-                    {&quot;&lt;&quot;, &quot;\\&lt;&quot;},
-                    {&quot;&gt;&quot;, &quot;\\&gt;&quot;},
-                    {&quot;(&quot;, &quot;\\(&quot;},
-                    {&quot;)&quot;, &quot;\\)&quot;},
-                    {&quot;$&quot;, &quot;\\$&quot;},
-                    {&quot;`&quot;, &quot;\\`&quot;},
-                    {&quot;\\&quot;, &quot;\\\\&quot;},
-                    {&quot;\&quot;&quot;, &quot;\\\&quot;&quot;},
-                    {&quot;'&quot;, &quot;\\'&quot;},
-                    {&quot; &quot;, &quot;\\ &quot;},
-                    {&quot;\t&quot;, &quot;\\\t&quot;},
-                    {&quot;\r\n&quot;, &quot;&quot;},
-                    {&quot;\n&quot;, &quot;&quot;},
-                    {&quot;*&quot;, &quot;\\*&quot;},
-                    {&quot;?&quot;, &quot;\\?&quot;},
-                    {&quot;[&quot;, &quot;\\[&quot;},
-                    {&quot;#&quot;, &quot;\\#&quot;},
-                    {&quot;~&quot;, &quot;\\~&quot;},
-                    {&quot;=&quot;, &quot;\\=&quot;},
-                    {&quot;%&quot;, &quot;\\%&quot;},
-            });
+    public static final CharSequenceTranslator ESCAPE_XSI;
+    static {
+<span class="fc" id="L278">        Map&lt;CharSequence, CharSequence&gt; escapeXsiMap = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L279">        escapeXsiMap.put(&quot;|&quot;, &quot;\\|&quot;);</span>
+<span class="fc" id="L280">        escapeXsiMap.put(&quot;&amp;&quot;, &quot;\\&amp;&quot;);</span>
+<span class="fc" id="L281">        escapeXsiMap.put(&quot;;&quot;, &quot;\\;&quot;);</span>
+<span class="fc" id="L282">        escapeXsiMap.put(&quot;&lt;&quot;, &quot;\\&lt;&quot;);</span>
+<span class="fc" id="L283">        escapeXsiMap.put(&quot;&gt;&quot;, &quot;\\&gt;&quot;);</span>
+<span class="fc" id="L284">        escapeXsiMap.put(&quot;(&quot;, &quot;\\(&quot;);</span>
+<span class="fc" id="L285">        escapeXsiMap.put(&quot;)&quot;, &quot;\\)&quot;);</span>
+<span class="fc" id="L286">        escapeXsiMap.put(&quot;$&quot;, &quot;\\$&quot;);</span>
+<span class="fc" id="L287">        escapeXsiMap.put(&quot;`&quot;, &quot;\\`&quot;);</span>
+<span class="fc" id="L288">        escapeXsiMap.put(&quot;\\&quot;, &quot;\\\\&quot;);</span>
+<span class="fc" id="L289">        escapeXsiMap.put(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;);</span>
+<span class="fc" id="L290">        escapeXsiMap.put(&quot;'&quot;, &quot;\\'&quot;);</span>
+<span class="fc" id="L291">        escapeXsiMap.put(&quot; &quot;, &quot;\\ &quot;);</span>
+<span class="fc" id="L292">        escapeXsiMap.put(&quot;\t&quot;, &quot;\\\t&quot;);</span>
+<span class="fc" id="L293">        escapeXsiMap.put(&quot;\r\n&quot;, &quot;&quot;);</span>
+<span class="fc" id="L294">        escapeXsiMap.put(&quot;\n&quot;, &quot;&quot;);</span>
+<span class="fc" id="L295">        escapeXsiMap.put(&quot;*&quot;, &quot;\\*&quot;);</span>
+<span class="fc" id="L296">        escapeXsiMap.put(&quot;?&quot;, &quot;\\?&quot;);</span>
+<span class="fc" id="L297">        escapeXsiMap.put(&quot;[&quot;, &quot;\\[&quot;);</span>
+<span class="fc" id="L298">        escapeXsiMap.put(&quot;#&quot;, &quot;\\#&quot;);</span>
+<span class="fc" id="L299">        escapeXsiMap.put(&quot;~&quot;, &quot;\\~&quot;);</span>
+<span class="fc" id="L300">        escapeXsiMap.put(&quot;=&quot;, &quot;\\=&quot;);</span>
+<span class="fc" id="L301">        escapeXsiMap.put(&quot;%&quot;, &quot;\\%&quot;);</span>
+<span class="fc" id="L302">        ESCAPE_XSI = new LookupTranslator(</span>
+<span class="fc" id="L303">                Collections.unmodifiableMap(escapeXsiMap)</span>
+        );
+    }
 
     /* UNESCAPE TRANSLATORS */
 
@@ -328,19 +314,20 @@ public class StringEscapeUtils {
      * as the foundation for a custom translator.
      */
     // TODO: throw &quot;illegal character: \92&quot; as an Exception if a \ on the end of the Java (as per the compiler)?
-<span class="fc" id="L331">    public static final CharSequenceTranslator UNESCAPE_JAVA =</span>
-            new AggregateTranslator(
-                    new OctalUnescaper(),     // .between('\1', '\377'),
-                    new UnicodeUnescaper(),
-<span class="fc" id="L335">                    new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_UNESCAPE()),</span>
-                    new LookupTranslator(
-                            new String[][] {
-                                    {&quot;\\\\&quot;, &quot;\\&quot;},
-                                    {&quot;\\\&quot;&quot;, &quot;\&quot;&quot;},
-                                    {&quot;\\'&quot;, &quot;'&quot;},
-                                    {&quot;\\&quot;, &quot;&quot;}
-                            })
-            );
+    public static final CharSequenceTranslator UNESCAPE_JAVA;
+    static {
+<span class="fc" id="L319">        Map&lt;CharSequence, CharSequence&gt; unescapeJavaMap = new HashMap&lt;&gt;();</span>
+<span class="fc" id="L320">        unescapeJavaMap.put(&quot;\\\\&quot;, &quot;\\&quot;);</span>
+<span class="fc" id="L321">        unescapeJavaMap.put(&quot;\\\&quot;&quot;, &quot;\&quot;&quot;);</span>
+<span class="fc" id="L322">        unescapeJavaMap.put(&quot;\\'&quot;, &quot;'&quot;);</span>
+<span class="fc" id="L323">        unescapeJavaMap.put(&quot;\\&quot;, &quot;&quot;);</span>
+<span class="fc" id="L324">        UNESCAPE_JAVA = new AggregateTranslator(</span>
+                new OctalUnescaper(),     // .between('\1', '\377'),
+                new UnicodeUnescaper(),
+                new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_UNESCAPE),
+<span class="fc" id="L328">                new LookupTranslator(Collections.unmodifiableMap(unescapeJavaMap))</span>
+        );
+    }
 
     /**
      * Translator object for unescaping escaped EcmaScript. 
@@ -349,7 +336,7 @@ public class StringEscapeUtils {
      * object allows the EcmaScript unescaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L352">    public static final CharSequenceTranslator UNESCAPE_ECMASCRIPT = UNESCAPE_JAVA;</span>
+<span class="fc" id="L339">    public static final CharSequenceTranslator UNESCAPE_ECMASCRIPT = UNESCAPE_JAVA;</span>
 
     /**
      * Translator object for unescaping escaped Json.
@@ -358,7 +345,7 @@ public class StringEscapeUtils {
      * object allows the Json unescaping functionality to be used
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L361">    public static final CharSequenceTranslator UNESCAPE_JSON = UNESCAPE_JAVA;</span>
+<span class="fc" id="L348">    public static final CharSequenceTranslator UNESCAPE_JSON = UNESCAPE_JAVA;</span>
 
     /**
      * Translator object for unescaping escaped HTML 3.0. 
@@ -367,10 +354,10 @@ public class StringEscapeUtils {
      * object allows the HTML unescaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L370">    public static final CharSequenceTranslator UNESCAPE_HTML3 =</span>
+<span class="fc" id="L357">    public static final CharSequenceTranslator UNESCAPE_HTML3 =</span>
             new AggregateTranslator(
-<span class="fc" id="L372">                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE()),</span>
-<span class="fc" id="L373">                    new LookupTranslator(EntityArrays.ISO8859_1_UNESCAPE()),</span>
+                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE),
+                    new LookupTranslator(EntityArrays.ISO8859_1_UNESCAPE),
                     new NumericEntityUnescaper()
             );
 
@@ -381,11 +368,11 @@ public class StringEscapeUtils {
      * object allows the HTML unescaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L384">    public static final CharSequenceTranslator UNESCAPE_HTML4 =</span>
+<span class="fc" id="L371">    public static final CharSequenceTranslator UNESCAPE_HTML4 =</span>
             new AggregateTranslator(
-<span class="fc" id="L386">                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE()),</span>
-<span class="fc" id="L387">                    new LookupTranslator(EntityArrays.ISO8859_1_UNESCAPE()),</span>
-<span class="fc" id="L388">                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_UNESCAPE()),</span>
+                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE),
+                    new LookupTranslator(EntityArrays.ISO8859_1_UNESCAPE),
+                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_UNESCAPE),
                     new NumericEntityUnescaper()
             );
 
@@ -396,10 +383,10 @@ public class StringEscapeUtils {
      * object allows the XML unescaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L399">    public static final CharSequenceTranslator UNESCAPE_XML =</span>
+<span class="fc" id="L386">    public static final CharSequenceTranslator UNESCAPE_XML =</span>
             new AggregateTranslator(
-<span class="fc" id="L401">                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE()),</span>
-<span class="fc" id="L402">                    new LookupTranslator(EntityArrays.APOS_UNESCAPE()),</span>
+                    new LookupTranslator(EntityArrays.BASIC_UNESCAPE),
+                    new LookupTranslator(EntityArrays.APOS_UNESCAPE),
                     new NumericEntityUnescaper()
             );
 
@@ -410,77 +397,44 @@ public class StringEscapeUtils {
      * object allows the CSV unescaping functionality to be used 
      * as the foundation for a custom translator.
      */
-<span class="fc" id="L413">    public static final CharSequenceTranslator UNESCAPE_CSV = new CsvUnescaper();</span>
-
-<span class="fc" id="L415">    static class CsvUnescaper extends CharSequenceTranslator {</span>
-
-        private static final char CSV_DELIMITER = ',';
-        private static final char CSV_QUOTE = '&quot;';
-<span class="fc" id="L419">        private static final String CSV_QUOTE_STR = String.valueOf(CSV_QUOTE);</span>
-<span class="fc" id="L420">        private static final char[] CSV_SEARCH_CHARS =</span>
-                new char[] {CSV_DELIMITER, CSV_QUOTE, CharUtils.CR, CharUtils.LF};
-
-        @Override
-        public int translate(final CharSequence input, final int index, final Writer out) throws IOException {
-
-<span class="pc bpc" id="L426" title="1 of 2 branches missed.">            if(index != 0) {</span>
-<span class="nc" id="L427">                throw new IllegalStateException(&quot;CsvUnescaper should never reach the [1] index&quot;);</span>
-            }
-
-<span class="pc bpc" id="L430" title="1 of 4 branches missed.">            if ( input.charAt(0) != CSV_QUOTE || input.charAt(input.length() - 1) != CSV_QUOTE ) {</span>
-<span class="fc" id="L431">                out.write(input.toString());</span>
-<span class="fc" id="L432">                return Character.codePointCount(input, 0, input.length());</span>
-            }
-
-            // strip quotes
-<span class="fc" id="L436">            final String quoteless = input.subSequence(1, input.length() - 1).toString();</span>
-
-<span class="fc bfc" id="L438" title="All 2 branches covered.">            if ( StringUtils.containsAny(quoteless, CSV_SEARCH_CHARS) ) {</span>
-                // deal with escaped quotes; ie) &quot;&quot;
-<span class="fc" id="L440">                out.write(StringUtils.replace(quoteless, CSV_QUOTE_STR + CSV_QUOTE_STR, CSV_QUOTE_STR));</span>
-            } else {
-<span class="fc" id="L442">                out.write(input.toString());</span>
-            }
-<span class="fc" id="L444">            return Character.codePointCount(input, 0, input.length());</span>
-        }
-    }
+<span class="fc" id="L400">    public static final CharSequenceTranslator UNESCAPE_CSV = new CsvTranslators.CsvUnescaper();</span>
 
-<span class="fc" id="L448">    public static final CharSequenceTranslator UNESCAPE_XSI = new XsiUnescaper();</span>
+<span class="fc" id="L402">    public static final CharSequenceTranslator UNESCAPE_XSI = new XsiUnescaper();</span>
 
     /**
      * Translator object for unescaping backslash escaped entries.
      */
-<span class="fc" id="L453">    static class XsiUnescaper extends CharSequenceTranslator {</span>
+<span class="fc" id="L407">    static class XsiUnescaper extends CharSequenceTranslator {</span>
 
         private static final char BACKSLASH = '\\';
 
         @Override
         public int translate(final CharSequence input, final int index, final Writer out) throws IOException {
 
-<span class="pc bpc" id="L460" title="1 of 2 branches missed.">            if(index != 0) {</span>
-<span class="nc" id="L461">                throw new IllegalStateException(&quot;XsiUnescaper should never reach the [1] index&quot;);</span>
+<span class="pc bpc" id="L414" title="1 of 2 branches missed.">            if(index != 0) {</span>
+<span class="nc" id="L415">                throw new IllegalStateException(&quot;XsiUnescaper should never reach the [1] index&quot;);</span>
             }
 
-<span class="fc" id="L464">            String s = input.toString();</span>
+<span class="fc" id="L418">            String s = input.toString();</span>
 
-<span class="fc" id="L466">            int segmentStart = 0;</span>
-<span class="fc" id="L467">            int searchOffset = 0;</span>
+<span class="fc" id="L420">            int segmentStart = 0;</span>
+<span class="fc" id="L421">            int searchOffset = 0;</span>
             while (true) {
-<span class="fc" id="L469">                int pos = s.indexOf(BACKSLASH, searchOffset);</span>
-<span class="fc bfc" id="L470" title="All 2 branches covered.">                if (pos == -1) {</span>
-<span class="fc bfc" id="L471" title="All 2 branches covered.">                    if (segmentStart &lt; s.length()) {</span>
-<span class="fc" id="L472">                        out.write(s.substring(segmentStart));</span>
+<span class="fc" id="L423">                int pos = s.indexOf(BACKSLASH, searchOffset);</span>
+<span class="fc bfc" id="L424" title="All 2 branches covered.">                if (pos == -1) {</span>
+<span class="fc bfc" id="L425" title="All 2 branches covered.">                    if (segmentStart &lt; s.length()) {</span>
+<span class="fc" id="L426">                        out.write(s.substring(segmentStart));</span>
                     }
                     break;
                 }
-<span class="fc bfc" id="L476" title="All 2 branches covered.">                if (pos &gt; segmentStart) {</span>
-<span class="fc" id="L477">                    out.write(s.substring(segmentStart, pos));</span>
+<span class="fc bfc" id="L430" title="All 2 branches covered.">                if (pos &gt; segmentStart) {</span>
+<span class="fc" id="L431">                    out.write(s.substring(segmentStart, pos));</span>
                 }
-<span class="fc" id="L479">                segmentStart = pos + 1;</span>
-<span class="fc" id="L480">                searchOffset = pos + 2;</span>
-<span class="fc" id="L481">            }</span>
+<span class="fc" id="L433">                segmentStart = pos + 1;</span>
+<span class="fc" id="L434">                searchOffset = pos + 2;</span>
+<span class="fc" id="L435">            }</span>
 
-<span class="fc" id="L483">            return Character.codePointCount(input, 0, input.length());</span>
+<span class="fc" id="L437">            return Character.codePointCount(input, 0, input.length());</span>
         }
     }
 
@@ -497,8 +451,8 @@ public class StringEscapeUtils {
      * instance to operate.&lt;/p&gt;
      */
     public StringEscapeUtils() {
-<span class="fc" id="L500">        super();</span>
-<span class="fc" id="L501">    }</span>
+<span class="fc" id="L454">        super();</span>
+<span class="fc" id="L455">    }</span>
 
     /**
      * &lt;p&gt;Convenience wrapper for {@link java.lang.StringBuilder} providing escape methods.&lt;/p&gt;
@@ -520,10 +474,10 @@ public class StringEscapeUtils {
         private final StringBuilder sb;
         private final CharSequenceTranslator translator;
 
-<span class="fc" id="L523">        private Builder(final CharSequenceTranslator translator) {</span>
-<span class="fc" id="L524">            this.sb = new StringBuilder();</span>
-<span class="fc" id="L525">            this.translator = translator;</span>
-<span class="fc" id="L526">        }</span>
+<span class="fc" id="L477">        private Builder(final CharSequenceTranslator translator) {</span>
+<span class="fc" id="L478">            this.sb = new StringBuilder();</span>
+<span class="fc" id="L479">            this.translator = translator;</span>
+<span class="fc" id="L480">        }</span>
 
         /**
          * &lt;p&gt;Escape {@code input} according to the given {@link CharSequenceTranslator}.&lt;/p&gt;
@@ -532,8 +486,8 @@ public class StringEscapeUtils {
          * @return {@code this}, to enable chaining
          */
         public Builder escape(final String input) {
-<span class="fc" id="L535">            sb.append(translator.translate(input));</span>
-<span class="fc" id="L536">            return this;</span>
+<span class="fc" id="L489">            sb.append(translator.translate(input));</span>
+<span class="fc" id="L490">            return this;</span>
         }
 
         /**
@@ -543,8 +497,8 @@ public class StringEscapeUtils {
          * @return {@code this}, to enable chaining
          */
         public Builder append(final String input) {
-<span class="fc" id="L546">            sb.append(input);</span>
-<span class="fc" id="L547">            return this;</span>
+<span class="fc" id="L500">            sb.append(input);</span>
+<span class="fc" id="L501">            return this;</span>
         }
 
         /**
@@ -554,7 +508,7 @@ public class StringEscapeUtils {
          */
         @Override
         public String toString() {
-<span class="fc" id="L557">            return sb.toString();</span>
+<span class="fc" id="L511">            return sb.toString();</span>
         }
     }
 
@@ -564,7 +518,7 @@ public class StringEscapeUtils {
      * @return {@link Builder}
      */
     public static StringEscapeUtils.Builder builder(final CharSequenceTranslator translator) {
-<span class="fc" id="L567">        return new Builder(translator);</span>
+<span class="fc" id="L521">        return new Builder(translator);</span>
     }
 
     // Java and JavaScript
@@ -590,7 +544,7 @@ public class StringEscapeUtils {
      * @return String with escaped values, {@code null} if null string input
      */
     public static final String escapeJava(final String input) {
-<span class="fc" id="L593">        return ESCAPE_JAVA.translate(input);</span>
+<span class="fc" id="L547">        return ESCAPE_JAVA.translate(input);</span>
     }
 
     /**
@@ -624,7 +578,7 @@ public class StringEscapeUtils {
      * @return String with escaped values, {@code null} if null string input
      */
     public static final String escapeEcmaScript(final String input) {
-<span class="fc" id="L627">        return ESCAPE_ECMASCRIPT.translate(input);</span>
+<span class="fc" id="L581">        return ESCAPE_ECMASCRIPT.translate(input);</span>
     }
 
     /**
@@ -650,7 +604,7 @@ public class StringEscapeUtils {
      * @return String with escaped values, {@code null} if null string input
      */
     public static final String escapeJson(final String input) {
-<span class="fc" id="L653">        return ESCAPE_JSON.translate(input);</span>
+<span class="fc" id="L607">        return ESCAPE_JSON.translate(input);</span>
     }
 
     /**
@@ -663,7 +617,7 @@ public class StringEscapeUtils {
      * @return a new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeJava(final String input) {
-<span class="fc" id="L666">        return UNESCAPE_JAVA.translate(input);</span>
+<span class="fc" id="L620">        return UNESCAPE_JAVA.translate(input);</span>
     }
 
     /**
@@ -678,7 +632,7 @@ public class StringEscapeUtils {
      * @return A new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeEcmaScript(final String input) {
-<span class="nc" id="L681">        return UNESCAPE_ECMASCRIPT.translate(input);</span>
+<span class="nc" id="L635">        return UNESCAPE_ECMASCRIPT.translate(input);</span>
     }
 
     /**
@@ -693,7 +647,7 @@ public class StringEscapeUtils {
      * @return A new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeJson(final String input) {
-<span class="nc" id="L696">        return UNESCAPE_JSON.translate(input);</span>
+<span class="nc" id="L650">        return UNESCAPE_JSON.translate(input);</span>
     }
 
     // HTML and XML
@@ -724,7 +678,7 @@ public class StringEscapeUtils {
      * @see &lt;a href=&quot;http://www.w3.org/TR/html401/charset.html#code-position&quot;&gt;HTML 4.01 Code positions&lt;/a&gt;
      */
     public static final String escapeHtml4(final String input) {
-<span class="fc" id="L727">        return ESCAPE_HTML4.translate(input);</span>
+<span class="fc" id="L681">        return ESCAPE_HTML4.translate(input);</span>
     }
 
     /**
@@ -760,7 +714,7 @@ public class StringEscapeUtils {
      * @see &lt;a href=&quot;http://www.w3.org/TR/html401/charset.html#code-position&quot;&gt;HTML 4.01 Code positions&lt;/a&gt;
      */
     public static final String escapeHtml4Once(final String input) {
-<span class="fc" id="L763">        return ESCAPE_HTML4_ONCE.translate(input);</span>
+<span class="fc" id="L717">        return ESCAPE_HTML4_ONCE.translate(input);</span>
     }
 
 
@@ -772,7 +726,7 @@ public class StringEscapeUtils {
      * @return a new escaped {@code String}, {@code null} if null string input
      */
     public static final String escapeHtml3(final String input) {
-<span class="nc" id="L775">        return ESCAPE_HTML3.translate(input);</span>
+<span class="nc" id="L729">        return ESCAPE_HTML3.translate(input);</span>
     }
 
     /**
@@ -784,7 +738,7 @@ public class StringEscapeUtils {
      * @return a new escaped {@code String}, {@code null} if null string input
      */
     public static final String escapeHtml3Once(final String input) {
-<span class="fc" id="L787">        return ESCAPE_HTML3_ONCE.translate(input);</span>
+<span class="fc" id="L741">        return ESCAPE_HTML3_ONCE.translate(input);</span>
     }
 
     //-----------------------------------------------------------------------
@@ -804,7 +758,7 @@ public class StringEscapeUtils {
      * @return a new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeHtml4(final String input) {
-<span class="fc" id="L807">        return UNESCAPE_HTML4.translate(input);</span>
+<span class="fc" id="L761">        return UNESCAPE_HTML4.translate(input);</span>
     }
 
     /**
@@ -816,7 +770,7 @@ public class StringEscapeUtils {
      * @return a new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeHtml3(final String input) {
-<span class="nc" id="L819">        return UNESCAPE_HTML3.translate(input);</span>
+<span class="nc" id="L773">        return UNESCAPE_HTML3.translate(input);</span>
     }
 
     /**
@@ -847,7 +801,7 @@ public class StringEscapeUtils {
      * @see #unescapeXml(java.lang.String)
      */
     public static String escapeXml10(final String input) {
-<span class="fc" id="L850">        return ESCAPE_XML10.translate(input);</span>
+<span class="fc" id="L804">        return ESCAPE_XML10.translate(input);</span>
     }
 
     /**
@@ -876,7 +830,7 @@ public class StringEscapeUtils {
      * @see #unescapeXml(java.lang.String)
      */
     public static String escapeXml11(final String input) {
-<span class="fc" id="L879">        return ESCAPE_XML11.translate(input);</span>
+<span class="fc" id="L833">        return ESCAPE_XML11.translate(input);</span>
     }
 
     //-----------------------------------------------------------------------
@@ -897,7 +851,7 @@ public class StringEscapeUtils {
      * @see #escapeXml11(String)
      */
     public static final String unescapeXml(final String input) {
-<span class="fc" id="L900">        return UNESCAPE_XML.translate(input);</span>
+<span class="fc" id="L854">        return UNESCAPE_XML.translate(input);</span>
     }
 
     //-----------------------------------------------------------------------
@@ -922,7 +876,7 @@ public class StringEscapeUtils {
      * newline or double quote, {@code null} if null string input
      */
     public static final String escapeCsv(final String input) {
-<span class="fc" id="L925">        return ESCAPE_CSV.translate(input);</span>
+<span class="fc" id="L879">        return ESCAPE_CSV.translate(input);</span>
     }
 
     /**
@@ -946,7 +900,7 @@ public class StringEscapeUtils {
      * quotes unescaped, {@code null} if null string input
      */
     public static final String unescapeCsv(final String input) {
-<span class="fc" id="L949">        return UNESCAPE_CSV.translate(input);</span>
+<span class="fc" id="L903">        return UNESCAPE_CSV.translate(input);</span>
     }
 
     /**
@@ -967,7 +921,7 @@ public class StringEscapeUtils {
      * @return String with escaped values, {@code null} if null string input
      */
     public static final String escapeXSI(final String input) {
-<span class="fc" id="L970">        return ESCAPE_XSI.translate(input);</span>
+<span class="fc" id="L924">        return ESCAPE_XSI.translate(input);</span>
     }
 
     /**
@@ -978,7 +932,7 @@ public class StringEscapeUtils {
      * @return a new unescaped {@code String}, {@code null} if null string input
      */
     public static final String unescapeXSI(final String input) {
-<span class="fc" id="L981">        return UNESCAPE_XSI.translate(input);</span>
+<span class="fc" id="L935">        return UNESCAPE_XSI.translate(input);</span>
     }
 
 }

Modified: websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/index.html
==============================================================================
--- websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/index.html (original)
+++ websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/index.html Mon Jan 23 12:35:12 2017
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.text</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> &gt; <span class="el_package">org.apache.commons.text</span></div><h1>org.apache.commons.text</h1><table class="coverage" cell
 spacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tf
 oot><tr><td>Total</td><td class="bar">448 of 9,505</td><td class="ctr2">95%</td><td class="bar">82 of 1,023</td><td class="ctr2">92%</td><td class="ctr1">106</td><td class="ctr2">931</td><td class="ctr1">98</td><td class="ctr2">1,904</td><td class="ctr1">28</td><td class="ctr2">417</td><td class="ctr1">3</td><td class="ctr2">27</td></tr></tfoot><tbody><tr><td id="a5"><a href="ExtendedMessageFormat.html" class="el_class">ExtendedMessageFormat</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="151" alt="151"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="614" alt="614"/></td><td class="ctr2" id="c21">80%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="31" alt="31"/><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="78" alt="78"/></td><td class="ctr2" id="e16">72%</td><td class="ctr1" id="f0">32</td><td class="ctr2" id="g3">79</td><td
  class="ctr1" id="h0">27</td><td class="ctr2" id="i3">185</td><td class="ctr1" id="j1">5</td><td class="ctr2" id="k3">22</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a7"><a href="StrBuilder.html" class="el_class">StrBuilder</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="77" alt="77"/><img src="../jacoco-resources/greenbar.gif" width="117" height="10" title="3,495" alt="3,495"/></td><td class="ctr2" id="c13">98%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="22" alt="22"/><img src="../jacoco-resources/greenbar.gif" width="115" height="10" title="510" alt="510"/></td><td class="ctr2" id="e8">96%</td><td class="ctr1" id="f1">24</td><td class="ctr2" id="g0">415</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i0">761</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k0">149</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="
 m1">1</td></tr><tr><td id="a26"><a href="StrTokenizer.html" class="el_class">StrTokenizer</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="51" alt="51"/><img src="../jacoco-resources/greenbar.gif" width="31" height="10" title="935" alt="935"/></td><td class="ctr2" id="c15">95%</td><td class="bar" id="d4"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="95" alt="95"/></td><td class="ctr2" id="e7">97%</td><td class="ctr1" id="f3">9</td><td class="ctr2" id="g1">114</td><td class="ctr1" id="h1">19</td><td class="ctr2" id="i2">253</td><td class="ctr1" id="j0">6</td><td class="ctr2" id="k1">65</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="CharacterPredicates.html" class="el_class">CharacterPredicates</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="38" alt="38"/></td><td class="ctr2" id="c24">0%</td><td class
 ="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f5">4</td><td class="ctr2" id="g17">4</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i22">3</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k12">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a0"><a href="AlphabetConverter.html" class="el_class">AlphabetConverter</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="695" alt="695"/></td><td class="ctr2" id="c14">96%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="11" alt="11"/><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="65" alt="65"/></td><td class="ctr2" id="e13">86%</td><td class="ctr1" id="f2">11</td><td class="ctr2" id="g4">53</td><td class="ctr1" id="h3">8</td><td class="ctr2" id="i4">142<
 /td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k6">15</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="StringEscapeUtils.html" class="el_class">StringEscapeUtils</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="47" height="10" title="1,414" alt="1,414"/></td><td class="ctr2" id="c11">99%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f6">4</td><td class="ctr2" id="g6">22</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">74</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k4">22</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a25"><a href="StrSubstitutor.html" class="el_class">StrSubstitutor</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="33" height="10" title="1,007" alt="1,007"/></td><td class="ctr2" id="c12">99%</td><td class="bar" id="d3"><img src="../jacoco-resources
 /redbar.gif" width="1" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="101" alt="101"/></td><td class="ctr2" id="e11">94%</td><td class="ctr1" id="f4">7</td><td class="ctr2" id="g2">110</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i1">269</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k2">56</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a23"><a href="StrMatcher$StringMatcher.html" class="el_class">StrMatcher.StringMatcher</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="40" alt="40"/></td><td class="ctr2" id="c23">74%</td><td class="bar" id="d12"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g11">6</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i12">11</td><td class="ctr1" id=
 "j8">1</td><td class="ctr2" id="k14">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a6"><a href="FormattableUtils.html" class="el_class">FormattableUtils</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="116" alt="116"/></td><td class="ctr2" id="c20">91%</td><td class="bar" id="d8"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="17" alt="17"/></td><td class="ctr2" id="e10">94%</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g8">15</td><td class="ctr1" id="h7">3</td><td class="ctr2" id="i8">19</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k9">6</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a2"><a href="CharacterPredicates$1.html" class="el_class">CharacterPredicates.new CharacterPredicates() {...}</a></td><td class="bar" id="b9"/><td class="ctr2" id="c25">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20"
 >n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g24">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i25">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k18">2</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a3"><a href="CharacterPredicates$2.html" class="el_class">CharacterPredicates.new CharacterPredicates() {...}</a></td><td class="bar" id="b10"/><td class="ctr2" id="c26">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g25">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i26">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k19">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="StrBuilder$StrBuilderTokenizer.html" class="el_class">StrBuilder.StrBuilderTokenizer</a></td><td class="bar" id="b11"/><td class="ctr2" id="c22">77%</td><td class="bar" id="d6"/><td class="ctr2" id="e1
 7">50%</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g14">5</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i13">11</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k15">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a14"><a href="StringEscapeUtils$CsvUnescaper.html" class="el_class">StringEscapeUtils.CsvUnescaper</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="88" alt="88"/></td><td class="ctr2" id="c16">95%</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="6" alt="6"/></td><td class="ctr2" id="e14">75%</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g10">7</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i11">13</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k16">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a13"><a href="StringEscapeUtils$
 CsvEscaper.html" class="el_class">StringEscapeUtils.CsvEscaper</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="64" alt="64"/></td><td class="ctr2" id="c17">93%</td><td class="bar" id="d10"/><td class="ctr2" id="e15">75%</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g15">5</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i14">11</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k17">3</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a15"><a href="StringEscapeUtils$XsiUnescaper.html" class="el_class">StringEscapeUtils.XsiUnescaper</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="54" alt="54"/></td><td class="ctr2" id="c19">92%</td><td class="bar" id="d9"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="e12">88%</td><td class="ctr1" id="f14">1</td><td
  class="ctr2" id="g12">6</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i9">16</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k20">2</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a18"><a href="StrLookup$SystemPropertiesStrLookup.html" class="el_class">StrLookup.SystemPropertiesStrLookup</a></td><td class="bar" id="b15"/><td class="ctr2" id="c18">92%</td><td class="bar" id="d14"/><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g20">3</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i19">5</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k21">2</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr><tr><td id="a8"><a href="StrBuilder$StrBuilderReader.html" class="el_class">StrBuilder.StrBuilderReader</a></td><td class="bar" id="b16"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="148" alt="148"/></td><td class="ctr2" id="c0">100%<
 /td><td class="bar" id="d7"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="23" alt="23"/></td><td class="ctr2" id="e9">96%</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g7">21</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i7">30</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k7">9</td><td class="ctr1" id="l16">0</td><td class="ctr2" id="m16">1</td></tr><tr><td id="a19"><a href="StrMatcher.html" class="el_class">StrMatcher</a></td><td class="bar" id="b17"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="139" alt="139"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d11"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="16" alt="16"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g5">24</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i6">35</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k5">16</td><td class
 ="ctr1" id="l17">0</td><td class="ctr2" id="m17">1</td></tr><tr><td id="a10"><a href="StrBuilder$StrBuilderWriter.html" class="el_class">StrBuilder.StrBuilderWriter</a></td><td class="bar" id="b18"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="43" alt="43"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f18">0</td><td class="ctr2" id="g9">8</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i10">15</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k8">8</td><td class="ctr1" id="l18">0</td><td class="ctr2" id="m18">1</td></tr><tr><td id="a4"><a href="CompositeFormat.html" class="el_class">CompositeFormat</a></td><td class="bar" id="b19"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="34" alt="34"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g
 13">6</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i15">9</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k10">6</td><td class="ctr1" id="l19">0</td><td class="ctr2" id="m19">1</td></tr><tr><td id="a12"><a href="StringEscapeUtils$Builder.html" class="el_class">StringEscapeUtils.Builder</a></td><td class="bar" id="b20"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="32" alt="32"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f20">0</td><td class="ctr2" id="g18">4</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i16">9</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k13">4</td><td class="ctr1" id="l20">0</td><td class="ctr2" id="m20">1</td></tr><tr><td id="a16"><a href="StrLookup.html" class="el_class">StrLookup</a></td><td class="bar" id="b21"/><td class="ctr2" id="c5">100%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="c
 tr1" id="f21">0</td><td class="ctr2" id="g16">5</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i18">7</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k11">5</td><td class="ctr1" id="l21">0</td><td class="ctr2" id="m21">1</td></tr><tr><td id="a17"><a href="StrLookup$MapStrLookup.html" class="el_class">StrLookup.MapStrLookup</a></td><td class="bar" id="b22"/><td class="ctr2" id="c6">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e3">100%</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g19">4</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i17">9</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">2</td><td class="ctr1" id="l22">0</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a21"><a href="StrMatcher$CharSetMatcher.html" class="el_class">StrMatcher.CharSetMatcher</a></td><td class="bar" id="b23"/><td class="ctr2" id="c7">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e4">100%</td><td class="ctr1" id="f23">0</td><td
  class="ctr2" id="g21">3</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i20">5</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">2</td><td class="ctr1" id="l23">0</td><td class="ctr2" id="m23">1</td></tr><tr><td id="a20"><a href="StrMatcher$CharMatcher.html" class="el_class">StrMatcher.CharMatcher</a></td><td class="bar" id="b24"/><td class="ctr2" id="c8">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e5">100%</td><td class="ctr1" id="f24">0</td><td class="ctr2" id="g22">3</td><td class="ctr1" id="h24">0</td><td class="ctr2" id="i21">4</td><td class="ctr1" id="j24">0</td><td class="ctr2" id="k24">2</td><td class="ctr1" id="l24">0</td><td class="ctr2" id="m24">1</td></tr><tr><td id="a24"><a href="StrMatcher$TrimMatcher.html" class="el_class">StrMatcher.TrimMatcher</a></td><td class="bar" id="b25"/><td class="ctr2" id="c9">100%</td><td class="bar" id="d17"/><td class="ctr2" id="e6">100%</td><td class="ctr1" id="f25">0</td><td class="ctr2" id="g23">3</td>
 <td class="ctr1" id="h25">0</td><td class="ctr2" id="i23">3</td><td class="ctr1" id="j25">0</td><td class="ctr2" id="k25">2</td><td class="ctr1" id="l25">0</td><td class="ctr2" id="m25">1</td></tr><tr><td id="a22"><a href="StrMatcher$NoMatcher.html" class="el_class">StrMatcher.NoMatcher</a></td><td class="bar" id="b26"/><td class="ctr2" id="c10">100%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">0</td><td class="ctr2" id="g26">2</td><td class="ctr1" id="h26">0</td><td class="ctr2" id="i24">3</td><td class="ctr1" id="j26">0</td><td class="ctr2" id="k26">2</td><td class="ctr1" id="l26">0</td><td class="ctr2" id="m26">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.text</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> &gt; <span class="el_package">org.apache.commons.text</span></div><h1>org.apache.commons.text</h1><table class="coverage" cell
 spacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tf
 oot><tr><td>Total</td><td class="bar">336 of 8,797</td><td class="ctr2">96%</td><td class="bar">78 of 1,011</td><td class="ctr2">92%</td><td class="ctr1">87</td><td class="ctr2">919</td><td class="ctr1">74</td><td class="ctr2">1,942</td><td class="ctr1">13</td><td class="ctr2">411</td><td class="ctr1">0</td><td class="ctr2">25</td></tr></tfoot><tbody><tr><td id="a5"><a href="ExtendedMessageFormat.html" class="el_class">ExtendedMessageFormat</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="133" alt="133"/><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="632" alt="632"/></td><td class="ctr2" id="c21">83%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="30" alt="30"/><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="79" alt="79"/></td><td class="ctr2" id="e14">72%</td><td class="ctr1" id="f0">27</td><td class="ctr2" id="g3">79</td><td 
 class="ctr1" id="h0">22</td><td class="ctr2" id="i3">185</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k3">22</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a7"><a href="StrBuilder.html" class="el_class">StrBuilder</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="77" alt="77"/><img src="../jacoco-resources/greenbar.gif" width="117" height="10" title="3,495" alt="3,495"/></td><td class="ctr2" id="c16">98%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="22" alt="22"/><img src="../jacoco-resources/greenbar.gif" width="115" height="10" title="510" alt="510"/></td><td class="ctr2" id="e8">96%</td><td class="ctr1" id="f1">24</td><td class="ctr2" id="g0">415</td><td class="ctr1" id="h1">18</td><td class="ctr2" id="i0">761</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k0">149</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m
 1">1</td></tr><tr><td id="a0"><a href="AlphabetConverter.html" class="el_class">AlphabetConverter</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="695" alt="695"/></td><td class="ctr2" id="c18">96%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="11" alt="11"/><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="65" alt="65"/></td><td class="ctr2" id="e13">86%</td><td class="ctr1" id="f2">11</td><td class="ctr2" id="g4">53</td><td class="ctr1" id="h3">8</td><td class="ctr2" id="i4">142</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">15</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a24"><a href="StrTokenizer.html" class="el_class">StrTokenizer</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="3
 2" height="10" title="960" alt="960"/></td><td class="ctr2" id="c17">97%</td><td class="bar" id="d4"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="95" alt="95"/></td><td class="ctr2" id="e7">97%</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g1">114</td><td class="ctr1" id="h2">10</td><td class="ctr2" id="i2">253</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k1">65</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a11"><a href="StringEscapeUtils.html" class="el_class">StringEscapeUtils</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="29" height="10" title="868" alt="868"/></td><td class="ctr2" id="c15">98%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f5">4</td><td class="ctr2" id="g6">22</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">136</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k4">22</td><td class="ctr1
 " id="l4">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a23"><a href="StrSubstitutor.html" class="el_class">StrSubstitutor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="33" height="10" title="1,007" alt="1,007"/></td><td class="ctr2" id="c14">99%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="101" alt="101"/></td><td class="ctr2" id="e11">94%</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g2">110</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i1">269</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k2">56</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a21"><a href="StrMatcher$StringMatcher.html" class="el_class">StrMatcher.StringMatcher</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="40"
  alt="40"/></td><td class="ctr2" id="c24">74%</td><td class="bar" id="d10"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">6</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i11">11</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k14">3</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a1"><a href="CharacterPredicates.html" class="el_class">CharacterPredicates</a></td><td class="bar" id="b7"/><td class="ctr2" id="c23">76%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g15">4</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i20">3</td><td class="ctr1" id="j3">2</td><td class="ctr2" id="k12">4</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="StrBuilder$StrBuilderTokenizer.html" class="
 el_class">StrBuilder.StrBuilderTokenizer</a></td><td class="bar" id="b8"/><td class="ctr2" id="c22">77%</td><td class="bar" id="d5"/><td class="ctr2" id="e15">50%</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g13">5</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i12">11</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k15">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="StringEscapeUtils$XsiUnescaper.html" class="el_class">StringEscapeUtils.XsiUnescaper</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="54" alt="54"/></td><td class="ctr2" id="c20">92%</td><td class="bar" id="d8"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="e12">88%</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">6</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i9">16</td><td class="ctr1" id="j9">0</td
 ><td class="ctr2" id="k16">2</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a16"><a href="StrLookup$SystemPropertiesStrLookup.html" class="el_class">StrLookup.SystemPropertiesStrLookup</a></td><td class="bar" id="b10"/><td class="ctr2" id="c19">92%</td><td class="bar" id="d12"/><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g18">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i17">5</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k17">2</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="StrBuilder$StrBuilderReader.html" class="el_class">StrBuilder.StrBuilderReader</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="148" alt="148"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d6"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="23" alt="23"/></td><td cla
 ss="ctr2" id="e9">96%</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g7">21</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i7">30</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k7">9</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a17"><a href="StrMatcher.html" class="el_class">StrMatcher</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="139" alt="139"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d9"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="16" alt="16"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">24</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i6">35</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k5">16</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a6"><a href="FormattableUtils.html" class="el_class">For
 mattableUtils</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="128" alt="128"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d7"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="17" alt="17"/></td><td class="ctr2" id="e10">94%</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g8">15</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i8">19</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k9">6</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a10"><a href="StrBuilder$StrBuilderWriter.html" class="el_class">StrBuilder.StrBuilderWriter</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="43" alt="43"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g9">8</td><td class="ctr1" id="h14"
 >0</td><td class="ctr2" id="i10">15</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">8</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a4"><a href="CompositeFormat.html" class="el_class">CompositeFormat</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="34" alt="34"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g12">6</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i13">9</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k10">6</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr><tr><td id="a12"><a href="StringEscapeUtils$Builder.html" class="el_class">StringEscapeUtils.Builder</a></td><td class="bar" id="b16"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="32" alt="32"/></td><td class="ctr2" id="c5">100%</td><td c
 lass="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g16">4</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i14">9</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k13">4</td><td class="ctr1" id="l16">0</td><td class="ctr2" id="m16">1</td></tr><tr><td id="a14"><a href="StrLookup.html" class="el_class">StrLookup</a></td><td class="bar" id="b17"/><td class="ctr2" id="c6">100%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g14">5</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i16">7</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k11">5</td><td class="ctr1" id="l17">0</td><td class="ctr2" id="m17">1</td></tr><tr><td id="a15"><a href="StrLookup$MapStrLookup.html" class="el_class">StrLookup.MapStrLookup</a></td><td class="bar" id="b18"/><td class="ctr2" id="c7">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e3">100%</td>
 <td class="ctr1" id="f18">0</td><td class="ctr2" id="g17">4</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i15">9</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k18">2</td><td class="ctr1" id="l18">0</td><td class="ctr2" id="m18">1</td></tr><tr><td id="a19"><a href="StrMatcher$CharSetMatcher.html" class="el_class">StrMatcher.CharSetMatcher</a></td><td class="bar" id="b19"/><td class="ctr2" id="c8">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e4">100%</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g19">3</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i18">5</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k19">2</td><td class="ctr1" id="l19">0</td><td class="ctr2" id="m19">1</td></tr><tr><td id="a18"><a href="StrMatcher$CharMatcher.html" class="el_class">StrMatcher.CharMatcher</a></td><td class="bar" id="b20"/><td class="ctr2" id="c9">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e5">100%</td><td class="ctr1" id="f2
 0">0</td><td class="ctr2" id="g20">3</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i19">4</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k20">2</td><td class="ctr1" id="l20">0</td><td class="ctr2" id="m20">1</td></tr><tr><td id="a22"><a href="StrMatcher$TrimMatcher.html" class="el_class">StrMatcher.TrimMatcher</a></td><td class="bar" id="b21"/><td class="ctr2" id="c10">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e6">100%</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g21">3</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i21">3</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k21">2</td><td class="ctr1" id="l21">0</td><td class="ctr2" id="m21">1</td></tr><tr><td id="a2"><a href="CharacterPredicates$1.html" class="el_class">CharacterPredicates.new CharacterPredicates() {...}</a></td><td class="bar" id="b22"/><td class="ctr2" id="c11">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f2
 2">0</td><td class="ctr2" id="g22">2</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">2</td><td class="ctr1" id="l22">0</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a3"><a href="CharacterPredicates$2.html" class="el_class">CharacterPredicates.new CharacterPredicates() {...}</a></td><td class="bar" id="b23"/><td class="ctr2" id="c12">100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">0</td><td class="ctr2" id="g23">2</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i24">2</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">2</td><td class="ctr1" id="l23">0</td><td class="ctr2" id="m23">1</td></tr><tr><td id="a20"><a href="StrMatcher$NoMatcher.html" class="el_class">StrMatcher.NoMatcher</a></td><td class="bar" id="b24"/><td class="ctr2" id="c13">100%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">0
 </td><td class="ctr2" id="g24">2</td><td class="ctr1" id="h24">0</td><td class="ctr2" id="i22">3</td><td class="ctr1" id="j24">0</td><td class="ctr2" id="k24">2</td><td class="ctr1" id="l24">0</td><td class="ctr2" id="m24">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html>
\ No newline at end of file



Mime
View raw message