Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-frame.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-frame.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-frame.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text.diff</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text.diff</title> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /> </head> <body>
Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-summary.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-summary.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/diff/package-summary.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text.diff</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text.diff</title> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /> </head> <body> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-frame.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-frame.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-frame.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text</title> <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" /> </head> <body> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-summary.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-summary.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/package-summary.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text</title> <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" /> </head> <body> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-frame.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-frame.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-frame.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text.similarity</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text.similarity</title> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /> </head> <body> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-summary.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-summary.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/similarity/package-summary.html Sun Mar 12 02:08:01 2017 @@ -3,7 +3,7 @@ <html xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <title>Apache Commons Text 1.0-SNAPSHOT Reference Package org.apache.commons.text.similarity</title> + <title>Apache Commons Text 1.1-SNAPSHOT Reference Package org.apache.commons.text.similarity</title> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /> </head> <body> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/AggregateTranslator.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/AggregateTranslator.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/AggregateTranslator.html Sun Mar 12 02:08:01 2017 @@ -13,9 +13,9 @@ <a class="jxr_linenumber" name="L5" href="#L5">5</a> <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em> <a class="jxr_linenumber" name="L6" href="#L6">6</a> <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em> <a class="jxr_linenumber" name="L7" href="#L7">7</a> <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em> -<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L9" href="#L9">9</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em> -<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L11" href="#L11">11</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em> <a class="jxr_linenumber" name="L12" href="#L12">12</a> <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em> <a class="jxr_linenumber" name="L13" href="#L13">13</a> <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em> @@ -30,47 +30,50 @@ <a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.util.List; <a class="jxr_linenumber" name="L23" href="#L23">23</a> <a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Executes a sequence of translators one after the other. Execution ends whenever </em> +<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Executes a sequence of translators one after the other. Execution ends whenever</em> <a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * the first translator consumes codepoints from the input.</em> <a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * @since 1.0</em> <a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> */</em> <a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/AggregateTranslator.html">AggregateTranslator</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a> { <a class="jxr_linenumber" name="L31" href="#L31">31</a> -<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List<CharSequenceTranslator> translators = <strong class="jxr_keyword">new</strong> ArrayList<>(); -<a class="jxr_linenumber" name="L33" href="#L33">33</a> -<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * Specify the translators to be used at creation time. </em> -<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * @param translators CharSequenceTranslator array to aggregate</em> -<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L39" href="#L39">39</a> <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/commons/text/translate/AggregateTranslator.html">AggregateTranslator</a>(<strong class="jxr_keyword">final</strong> CharSequenceTranslator... translators) { -<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">if</strong> (translators != <strong class="jxr_keyword">null</strong>) { -<a class="jxr_linenumber" name="L41" href="#L41">41</a> <strong class="jxr_keyword">for</strong> (CharSequenceTranslator translator : translators) { -<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">if</strong> (translator != <strong class="jxr_keyword">null</strong>) { -<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">this</strong>.translators.add(translator); -<a class="jxr_linenumber" name="L44" href="#L44">44</a> } -<a class="jxr_linenumber" name="L45" href="#L45">45</a> } -<a class="jxr_linenumber" name="L46" href="#L46">46</a> } -<a class="jxr_linenumber" name="L47" href="#L47">47</a> } -<a class="jxr_linenumber" name="L48" href="#L48">48</a> -<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment"> * The first translator to consume codepoints from the input is the 'winner'. </em> -<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * Execution stops with the number of consumed codepoints being returned. </em> -<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> * {@inheritDoc}</em> -<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L54" href="#L54">54</a> @Override -<a class="jxr_linenumber" name="L55" href="#L55">55</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> translate(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { -<a class="jxr_linenumber" name="L56" href="#L56">56</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> CharSequenceTranslator translator : translators) { -<a class="jxr_linenumber" name="L57" href="#L57">57</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> consumed = translator.translate(input, index, out); -<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">if</strong>(consumed != 0) { -<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">return</strong> consumed; -<a class="jxr_linenumber" name="L60" href="#L60">60</a> } -<a class="jxr_linenumber" name="L61" href="#L61">61</a> } -<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">return</strong> 0; -<a class="jxr_linenumber" name="L63" href="#L63">63</a> } -<a class="jxr_linenumber" name="L64" href="#L64">64</a> -<a class="jxr_linenumber" name="L65" href="#L65">65</a> } +<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> * Translator list.</em> +<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L35" href="#L35">35</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List<CharSequenceTranslator> translators = <strong class="jxr_keyword">new</strong> ArrayList<>(); +<a class="jxr_linenumber" name="L36" href="#L36">36</a> +<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> * Specify the translators to be used at creation time.</em> +<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> *</em> +<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * @param translators CharSequenceTranslator array to aggregate</em> +<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/commons/text/translate/AggregateTranslator.html">AggregateTranslator</a>(<strong class="jxr_keyword">final</strong> CharSequenceTranslator... translators) { +<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">if</strong> (translators != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="L44" href="#L44">44</a> <strong class="jxr_keyword">for</strong> (CharSequenceTranslator translator : translators) { +<a class="jxr_linenumber" name="L45" href="#L45">45</a> <strong class="jxr_keyword">if</strong> (translator != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">this</strong>.translators.add(translator); +<a class="jxr_linenumber" name="L47" href="#L47">47</a> } +<a class="jxr_linenumber" name="L48" href="#L48">48</a> } +<a class="jxr_linenumber" name="L49" href="#L49">49</a> } +<a class="jxr_linenumber" name="L50" href="#L50">50</a> } +<a class="jxr_linenumber" name="L51" href="#L51">51</a> +<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * The first translator to consume codepoints from the input is the 'winner'.</em> +<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * Execution stops with the number of consumed codepoints being returned.</em> +<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * {@inheritDoc}</em> +<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L57" href="#L57">57</a> @Override +<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> translate(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { +<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> CharSequenceTranslator translator : translators) { +<a class="jxr_linenumber" name="L60" href="#L60">60</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> consumed = translator.translate(input, index, out); +<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">if</strong> (consumed != 0) { +<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">return</strong> consumed; +<a class="jxr_linenumber" name="L63" href="#L63">63</a> } +<a class="jxr_linenumber" name="L64" href="#L64">64</a> } +<a class="jxr_linenumber" name="L65" href="#L65">65</a> <strong class="jxr_keyword">return</strong> 0; +<a class="jxr_linenumber" name="L66" href="#L66">66</a> } +<a class="jxr_linenumber" name="L67" href="#L67">67</a> +<a class="jxr_linenumber" name="L68" href="#L68">68</a> } </pre> <hr/> <div id="footer">Copyright © 2014–2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CharSequenceTranslator.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CharSequenceTranslator.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CharSequenceTranslator.html Sun Mar 12 02:08:01 2017 @@ -13,9 +13,9 @@ <a class="jxr_linenumber" name="L5" href="#L5">5</a> <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em> <a class="jxr_linenumber" name="L6" href="#L6">6</a> <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em> <a class="jxr_linenumber" name="L7" href="#L7">7</a> <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em> -<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L9" href="#L9">9</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em> -<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L11" href="#L11">11</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em> <a class="jxr_linenumber" name="L12" href="#L12">12</a> <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em> <a class="jxr_linenumber" name="L13" href="#L13">13</a> <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em> @@ -30,117 +30,123 @@ <a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.util.Locale; <a class="jxr_linenumber" name="L23" href="#L23">23</a> <a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * An API for translating text. </em> -<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Its core use is to escape and unescape text. Because escaping and unescaping </em> +<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * An API for translating text.</em> +<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Its core use is to escape and unescape text. Because escaping and unescaping</em> <a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> * is completely contextual, the API does not present two separate signatures.</em> <a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * @since 1.0</em> <a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> */</em> <a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a> { <a class="jxr_linenumber" name="L32" href="#L32">32</a> -<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong>[] HEX_DIGITS = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[] {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; -<a class="jxr_linenumber" name="L34" href="#L34">34</a> -<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Translate a set of codepoints, represented by an int index into a CharSequence, </em> -<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * into another set of codepoints. The number of codepoints consumed must be returned, </em> -<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> * and the only IOExceptions thrown must be from interacting with the Writer so that </em> -<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> * the top level API may reliably ignore StringWriter IOExceptions. </em> -<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> * @param input CharSequence that is being translated</em> -<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * @param index int representing the current point of translation</em> -<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * @param out Writer to translate the text to</em> -<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @return int count of codepoints consumed</em> -<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @throws IOException if and only if the Writer produces an IOException</em> -<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L47" href="#L47">47</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> translate(CharSequence input, <strong class="jxr_keyword">int</strong> index, Writer out) <strong class="jxr_keyword">throws</strong> IOException; -<a class="jxr_linenumber" name="L48" href="#L48">48</a> -<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment"> * Helper for non-Writer usage. </em> -<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * @param input CharSequence to be translated</em> -<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> * @return String output of translation</em> -<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L54" href="#L54">54</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> String translate(<strong class="jxr_keyword">final</strong> CharSequence input) { -<a class="jxr_linenumber" name="L55" href="#L55">55</a> <strong class="jxr_keyword">if</strong> (input == <strong class="jxr_keyword">null</strong>) { -<a class="jxr_linenumber" name="L56" href="#L56">56</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>; -<a class="jxr_linenumber" name="L57" href="#L57">57</a> } -<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">try</strong> { -<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">final</strong> StringWriter writer = <strong class="jxr_keyword">new</strong> StringWriter(input.length() * 2); -<a class="jxr_linenumber" name="L60" href="#L60">60</a> translate(input, writer); -<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">return</strong> writer.toString(); -<a class="jxr_linenumber" name="L62" href="#L62">62</a> } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> IOException ioe) { -<a class="jxr_linenumber" name="L63" href="#L63">63</a> <em class="jxr_comment">// this should never ever happen while writing to a StringWriter</em> -<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(ioe); -<a class="jxr_linenumber" name="L65" href="#L65">65</a> } -<a class="jxr_linenumber" name="L66" href="#L66">66</a> } -<a class="jxr_linenumber" name="L67" href="#L67">67</a> -<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * Translate an input onto a Writer. This is intentionally final as its algorithm is </em> -<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * tightly coupled with the abstract method of this class. </em> -<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * @param input CharSequence that is being translated</em> -<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> * @param out Writer to translate the text to</em> -<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> * @throws IOException if and only if the Writer produces an IOException</em> -<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L76" href="#L76">76</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> translate(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { -<a class="jxr_linenumber" name="L77" href="#L77">77</a> <strong class="jxr_keyword">if</strong> (out == <strong class="jxr_keyword">null</strong>) { -<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The Writer must not be null"</span>); -<a class="jxr_linenumber" name="L79" href="#L79">79</a> } -<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">if</strong> (input == <strong class="jxr_keyword">null</strong>) { -<a class="jxr_linenumber" name="L81" href="#L81">81</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L82" href="#L82">82</a> } -<a class="jxr_linenumber" name="L83" href="#L83">83</a> <strong class="jxr_keyword">int</strong> pos = 0; -<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> len = input.length(); -<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">while</strong> (pos < len) { -<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> consumed = translate(input, pos, out); -<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">if</strong> (consumed == 0) { -<a class="jxr_linenumber" name="L88" href="#L88">88</a> <em class="jxr_comment">// inlined implementation of Character.toChars(Character.codePointAt(input, pos))</em> -<a class="jxr_linenumber" name="L89" href="#L89">89</a> <em class="jxr_comment">// avoids allocating temp char arrays and duplicate checks</em> -<a class="jxr_linenumber" name="L90" href="#L90">90</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> c1 = input.charAt(pos); -<a class="jxr_linenumber" name="L91" href="#L91">91</a> out.write(c1); -<a class="jxr_linenumber" name="L92" href="#L92">92</a> pos++; -<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">if</strong> (Character.isHighSurrogate(c1) && pos < len) { -<a class="jxr_linenumber" name="L94" href="#L94">94</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> c2 = input.charAt(pos); -<a class="jxr_linenumber" name="L95" href="#L95">95</a> <strong class="jxr_keyword">if</strong> (Character.isLowSurrogate(c2)) { -<a class="jxr_linenumber" name="L96" href="#L96">96</a> out.write(c2); -<a class="jxr_linenumber" name="L97" href="#L97">97</a> pos++; -<a class="jxr_linenumber" name="L98" href="#L98">98</a> } -<a class="jxr_linenumber" name="L99" href="#L99">99</a> } -<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">continue</strong>; -<a class="jxr_linenumber" name="L101" href="#L101">101</a> } -<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_comment">// contract with translators is that they have to understand codepoints</em> -<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_comment">// and they just took care of a surrogate pair</em> -<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> pt = 0; pt < consumed; pt++) { -<a class="jxr_linenumber" name="L105" href="#L105">105</a> pos += Character.charCount(Character.codePointAt(input, pos)); -<a class="jxr_linenumber" name="L106" href="#L106">106</a> } -<a class="jxr_linenumber" name="L107" href="#L107">107</a> } -<a class="jxr_linenumber" name="L108" href="#L108">108</a> } -<a class="jxr_linenumber" name="L109" href="#L109">109</a> -<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment"> * Helper method to create a merger of this translator with another set of </em> -<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment"> * translators. Useful in customizing the standard functionality.</em> -<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment"> * @param translators CharSequenceTranslator array of translators to merge with this one</em> -<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment"> * @return CharSequenceTranslator merging this translator with the others</em> -<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L117" href="#L117">117</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a> with(<strong class="jxr_keyword">final</strong> CharSequenceTranslator... translators) { -<a class="jxr_linenumber" name="L118" href="#L118">118</a> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a>[] newArray = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a>[translators.length + 1]; -<a class="jxr_linenumber" name="L119" href="#L119">119</a> newArray[0] = <strong class="jxr_keyword">this</strong>; -<a class="jxr_linenumber" name="L120" href="#L120">120</a> System.arraycopy(translators, 0, newArray, 1, translators.length); -<a class="jxr_linenumber" name="L121" href="#L121">121</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/commons/text/translate/AggregateTranslator.html">AggregateTranslator</a>(newArray); -<a class="jxr_linenumber" name="L122" href="#L122">122</a> } -<a class="jxr_linenumber" name="L123" href="#L123">123</a> -<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment"> * <p>Returns an upper case hexadecimal <code>String</code> for the given</em> -<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment"> * character.</p></em> -<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment"> * @param codepoint The codepoint to convert.</em> -<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment"> * @return An upper case hexadecimal <code>String</code></em> -<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L131" href="#L131">131</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String hex(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> codepoint) { -<a class="jxr_linenumber" name="L132" href="#L132">132</a> <strong class="jxr_keyword">return</strong> Integer.toHexString(codepoint).toUpperCase(Locale.ENGLISH); -<a class="jxr_linenumber" name="L133" href="#L133">133</a> } -<a class="jxr_linenumber" name="L134" href="#L134">134</a> -<a class="jxr_linenumber" name="L135" href="#L135">135</a> } +<a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment"> * Array containing the hexadecimal alphabet.</em> +<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L36" href="#L36">36</a> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong>[] HEX_DIGITS = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[] {'0', '1', '2', '3', +<a class="jxr_linenumber" name="L37" href="#L37">37</a> '4', '5', '6', '7', +<a class="jxr_linenumber" name="L38" href="#L38">38</a> '8', '9', 'A', 'B', +<a class="jxr_linenumber" name="L39" href="#L39">39</a> 'C', 'D', 'E', 'F'}; +<a class="jxr_linenumber" name="L40" href="#L40">40</a> +<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * Translate a set of codepoints, represented by an int index into a CharSequence,</em> +<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * into another set of codepoints. The number of codepoints consumed must be returned,</em> +<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * and the only IOExceptions thrown must be from interacting with the Writer so that</em> +<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * the top level API may reliably ignore StringWriter IOExceptions.</em> +<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> *</em> +<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> * @param input CharSequence that is being translated</em> +<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> * @param index int representing the current point of translation</em> +<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment"> * @param out Writer to translate the text to</em> +<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment"> * @return int count of codepoints consumed</em> +<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * @throws IOException if and only if the Writer produces an IOException</em> +<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L53" href="#L53">53</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> translate(CharSequence input, <strong class="jxr_keyword">int</strong> index, Writer out) <strong class="jxr_keyword">throws</strong> IOException; +<a class="jxr_linenumber" name="L54" href="#L54">54</a> +<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * Helper for non-Writer usage.</em> +<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @param input CharSequence to be translated</em> +<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * @return String output of translation</em> +<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L60" href="#L60">60</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> String translate(<strong class="jxr_keyword">final</strong> CharSequence input) { +<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">if</strong> (input == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="L63" href="#L63">63</a> } +<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="L65" href="#L65">65</a> <strong class="jxr_keyword">final</strong> StringWriter writer = <strong class="jxr_keyword">new</strong> StringWriter(input.length() * 2); +<a class="jxr_linenumber" name="L66" href="#L66">66</a> translate(input, writer); +<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">return</strong> writer.toString(); +<a class="jxr_linenumber" name="L68" href="#L68">68</a> } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> IOException ioe) { +<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_comment">// this should never ever happen while writing to a StringWriter</em> +<a class="jxr_linenumber" name="L70" href="#L70">70</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(ioe); +<a class="jxr_linenumber" name="L71" href="#L71">71</a> } +<a class="jxr_linenumber" name="L72" href="#L72">72</a> } +<a class="jxr_linenumber" name="L73" href="#L73">73</a> +<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> * Translate an input onto a Writer. This is intentionally final as its algorithm is</em> +<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * tightly coupled with the abstract method of this class.</em> +<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> *</em> +<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> * @param input CharSequence that is being translated</em> +<a class="jxr_linenumber" name="L79" href="#L79">79</a> <em class="jxr_javadoccomment"> * @param out Writer to translate the text to</em> +<a class="jxr_linenumber" name="L80" href="#L80">80</a> <em class="jxr_javadoccomment"> * @throws IOException if and only if the Writer produces an IOException</em> +<a class="jxr_linenumber" name="L81" href="#L81">81</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L82" href="#L82">82</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> translate(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { +<a class="jxr_linenumber" name="L83" href="#L83">83</a> <strong class="jxr_keyword">if</strong> (out == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The Writer must not be null"</span>); +<a class="jxr_linenumber" name="L85" href="#L85">85</a> } +<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">if</strong> (input == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="L88" href="#L88">88</a> } +<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">int</strong> pos = 0; +<a class="jxr_linenumber" name="L90" href="#L90">90</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> len = input.length(); +<a class="jxr_linenumber" name="L91" href="#L91">91</a> <strong class="jxr_keyword">while</strong> (pos < len) { +<a class="jxr_linenumber" name="L92" href="#L92">92</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> consumed = translate(input, pos, out); +<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">if</strong> (consumed == 0) { +<a class="jxr_linenumber" name="L94" href="#L94">94</a> <em class="jxr_comment">// inlined implementation of Character.toChars(Character.codePointAt(input, pos))</em> +<a class="jxr_linenumber" name="L95" href="#L95">95</a> <em class="jxr_comment">// avoids allocating temp char arrays and duplicate checks</em> +<a class="jxr_linenumber" name="L96" href="#L96">96</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> c1 = input.charAt(pos); +<a class="jxr_linenumber" name="L97" href="#L97">97</a> out.write(c1); +<a class="jxr_linenumber" name="L98" href="#L98">98</a> pos++; +<a class="jxr_linenumber" name="L99" href="#L99">99</a> <strong class="jxr_keyword">if</strong> (Character.isHighSurrogate(c1) && pos < len) { +<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> c2 = input.charAt(pos); +<a class="jxr_linenumber" name="L101" href="#L101">101</a> <strong class="jxr_keyword">if</strong> (Character.isLowSurrogate(c2)) { +<a class="jxr_linenumber" name="L102" href="#L102">102</a> out.write(c2); +<a class="jxr_linenumber" name="L103" href="#L103">103</a> pos++; +<a class="jxr_linenumber" name="L104" href="#L104">104</a> } +<a class="jxr_linenumber" name="L105" href="#L105">105</a> } +<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">continue</strong>; +<a class="jxr_linenumber" name="L107" href="#L107">107</a> } +<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_comment">// contract with translators is that they have to understand codepoints</em> +<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_comment">// and they just took care of a surrogate pair</em> +<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> pt = 0; pt < consumed; pt++) { +<a class="jxr_linenumber" name="L111" href="#L111">111</a> pos += Character.charCount(Character.codePointAt(input, pos)); +<a class="jxr_linenumber" name="L112" href="#L112">112</a> } +<a class="jxr_linenumber" name="L113" href="#L113">113</a> } +<a class="jxr_linenumber" name="L114" href="#L114">114</a> } +<a class="jxr_linenumber" name="L115" href="#L115">115</a> +<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment"> * Helper method to create a merger of this translator with another set of</em> +<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment"> * translators. Useful in customizing the standard functionality.</em> +<a class="jxr_linenumber" name="L119" href="#L119">119</a> <em class="jxr_javadoccomment"> *</em> +<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment"> * @param translators CharSequenceTranslator array of translators to merge with this one</em> +<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment"> * @return CharSequenceTranslator merging this translator with the others</em> +<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a> with(<strong class="jxr_keyword">final</strong> CharSequenceTranslator... translators) { +<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a>[] newArray = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a>[translators.length + 1]; +<a class="jxr_linenumber" name="L125" href="#L125">125</a> newArray[0] = <strong class="jxr_keyword">this</strong>; +<a class="jxr_linenumber" name="L126" href="#L126">126</a> System.arraycopy(translators, 0, newArray, 1, translators.length); +<a class="jxr_linenumber" name="L127" href="#L127">127</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/commons/text/translate/AggregateTranslator.html">AggregateTranslator</a>(newArray); +<a class="jxr_linenumber" name="L128" href="#L128">128</a> } +<a class="jxr_linenumber" name="L129" href="#L129">129</a> +<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment"> * <p>Returns an upper case hexadecimal <code>String</code> for the given</em> +<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment"> * character.</p></em> +<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment"> *</em> +<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment"> * @param codepoint The codepoint to convert.</em> +<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment"> * @return An upper case hexadecimal <code>String</code></em> +<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L137" href="#L137">137</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String hex(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> codepoint) { +<a class="jxr_linenumber" name="L138" href="#L138">138</a> <strong class="jxr_keyword">return</strong> Integer.toHexString(codepoint).toUpperCase(Locale.ENGLISH); +<a class="jxr_linenumber" name="L139" href="#L139">139</a> } +<a class="jxr_linenumber" name="L140" href="#L140">140</a> +<a class="jxr_linenumber" name="L141" href="#L141">141</a> } </pre> <hr/> <div id="footer">Copyright © 2014–2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CodePointTranslator.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CodePointTranslator.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CodePointTranslator.html Sun Mar 12 02:08:01 2017 @@ -13,9 +13,9 @@ <a class="jxr_linenumber" name="L5" href="#L5">5</a> <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em> <a class="jxr_linenumber" name="L6" href="#L6">6</a> <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em> <a class="jxr_linenumber" name="L7" href="#L7">7</a> <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em> -<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L9" href="#L9">9</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em> -<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> * </em> +<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> *</em> <a class="jxr_linenumber" name="L11" href="#L11">11</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em> <a class="jxr_linenumber" name="L12" href="#L12">12</a> <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em> <a class="jxr_linenumber" name="L13" href="#L13">13</a> <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em> @@ -28,7 +28,7 @@ <a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> java.io.Writer; <a class="jxr_linenumber" name="L21" href="#L21">21</a> <a class="jxr_linenumber" name="L22" href="#L22">22</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L23" href="#L23">23</a> <em class="jxr_javadoccomment"> * Helper subclass to CharSequenceTranslator to allow for translations that </em> +<a class="jxr_linenumber" name="L23" href="#L23">23</a> <em class="jxr_javadoccomment"> * Helper subclass to CharSequenceTranslator to allow for translations that</em> <a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment"> * will replace up to one character at a time.</em> <a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * @since 1.0</em> @@ -36,19 +36,19 @@ <a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CodePointTranslator.html">CodePointTranslator</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/CharSequenceTranslator.html">CharSequenceTranslator</a> { <a class="jxr_linenumber" name="L29" href="#L29">29</a> <a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * Implementation of translate that maps onto the abstract translate(int, Writer) method. </em> +<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * Implementation of translate that maps onto the abstract translate(int, Writer) method.</em> <a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> * {@inheritDoc}</em> <a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> */</em> <a class="jxr_linenumber" name="L34" href="#L34">34</a> @Override <a class="jxr_linenumber" name="L35" href="#L35">35</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> translate(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { <a class="jxr_linenumber" name="L36" href="#L36">36</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> codepoint = Character.codePointAt(input, index); <a class="jxr_linenumber" name="L37" href="#L37">37</a> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> consumed = translate(codepoint, out); -<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">return</strong> consumed ? 1 : 0; +<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">return</strong> consumed ? 1 : 0; <a class="jxr_linenumber" name="L39" href="#L39">39</a> } <a class="jxr_linenumber" name="L40" href="#L40">40</a> <a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * Translate the specified codepoint into another. </em> -<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * Translate the specified codepoint into another.</em> +<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param codepoint int character input to translate</em> <a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @param out Writer to optionally push the translated output to</em> <a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * @return boolean as to whether translation occurred or not</em> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CsvTranslators.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CsvTranslators.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/CsvTranslators.html Sun Mar 12 02:08:01 2017 @@ -33,61 +33,67 @@ <a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment">/**</em> <a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * This class holds inner classes for escaping/unescaping Comma Separated Values.</em> <a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvTranslators</a> { +<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvTranslators</a> { <a class="jxr_linenumber" name="L29" href="#L29">29</a> -<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> CSV_DELIMITER = ','; -<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> CSV_QUOTE = '"'; -<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CSV_QUOTE_STR = String.valueOf(CSV_QUOTE); -<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CSV_ESCAPED_QUOTE_STR = CSV_QUOTE_STR + CSV_QUOTE_STR; -<a class="jxr_linenumber" name="L34" href="#L34">34</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong>[] CSV_SEARCH_CHARS = -<a class="jxr_linenumber" name="L35" href="#L35">35</a> <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[] {CSV_DELIMITER, CSV_QUOTE, CharUtils.CR, CharUtils.LF}; -<a class="jxr_linenumber" name="L36" href="#L36">36</a> -<a class="jxr_linenumber" name="L37" href="#L37">37</a> <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvTranslators</a>() { } -<a class="jxr_linenumber" name="L38" href="#L38">38</a> -<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * Translator for escaping Comma Separated Values.</em> -<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvEscaper</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/SinglePassTranslator.html">SinglePassTranslator</a> { -<a class="jxr_linenumber" name="L43" href="#L43">43</a> -<a class="jxr_linenumber" name="L44" href="#L44">44</a> @Override -<a class="jxr_linenumber" name="L45" href="#L45">45</a> <strong class="jxr_keyword">void</strong> translateWhole(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { -<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">final</strong> String inputSting = input.toString(); -<a class="jxr_linenumber" name="L47" href="#L47">47</a> <strong class="jxr_keyword">if</strong> (StringUtils.containsNone(inputSting, CSV_SEARCH_CHARS)) { -<a class="jxr_linenumber" name="L48" href="#L48">48</a> out.write(inputSting); -<a class="jxr_linenumber" name="L49" href="#L49">49</a> } <strong class="jxr_keyword">else</strong> { -<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_comment">// input needs quoting</em> -<a class="jxr_linenumber" name="L51" href="#L51">51</a> out.write(CSV_QUOTE); -<a class="jxr_linenumber" name="L52" href="#L52">52</a> out.write(StringUtils.replace(inputSting, CSV_QUOTE_STR, CSV_ESCAPED_QUOTE_STR)); -<a class="jxr_linenumber" name="L53" href="#L53">53</a> out.write(CSV_QUOTE); -<a class="jxr_linenumber" name="L54" href="#L54">54</a> } -<a class="jxr_linenumber" name="L55" href="#L55">55</a> } -<a class="jxr_linenumber" name="L56" href="#L56">56</a> } -<a class="jxr_linenumber" name="L57" href="#L57">57</a> -<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * Translator for unescaping escaped Comma Separated Value entries.</em> -<a class="jxr_linenumber" name="L60" href="#L60">60</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvUnescaper</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/SinglePassTranslator.html">SinglePassTranslator</a> { -<a class="jxr_linenumber" name="L62" href="#L62">62</a> -<a class="jxr_linenumber" name="L63" href="#L63">63</a> @Override -<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">void</strong> translateWhole(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { -<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_comment">// is input not quoted?</em> -<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">if</strong> (input.charAt(0) != CSV_QUOTE || input.charAt(input.length() - 1) != CSV_QUOTE) { -<a class="jxr_linenumber" name="L67" href="#L67">67</a> out.write(input.toString()); -<a class="jxr_linenumber" name="L68" href="#L68">68</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L69" href="#L69">69</a> } -<a class="jxr_linenumber" name="L70" href="#L70">70</a> -<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_comment">// strip quotes</em> -<a class="jxr_linenumber" name="L72" href="#L72">72</a> <strong class="jxr_keyword">final</strong> String quoteless = input.subSequence(1, input.length() - 1).toString(); -<a class="jxr_linenumber" name="L73" href="#L73">73</a> -<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">if</strong> (StringUtils.containsAny(quoteless, CSV_SEARCH_CHARS)) { -<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_comment">// deal with escaped quotes; ie) ""</em> -<a class="jxr_linenumber" name="L76" href="#L76">76</a> out.write(StringUtils.replace(quoteless, CSV_ESCAPED_QUOTE_STR, CSV_QUOTE_STR)); -<a class="jxr_linenumber" name="L77" href="#L77">77</a> } <strong class="jxr_keyword">else</strong> { -<a class="jxr_linenumber" name="L78" href="#L78">78</a> out.write(input.toString()); -<a class="jxr_linenumber" name="L79" href="#L79">79</a> } -<a class="jxr_linenumber" name="L80" href="#L80">80</a> } -<a class="jxr_linenumber" name="L81" href="#L81">81</a> } -<a class="jxr_linenumber" name="L82" href="#L82">82</a> } +<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment">/** Comma character. */</em> +<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> CSV_DELIMITER = ','; +<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment">/** Quote character. */</em> +<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> CSV_QUOTE = '"'; +<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/** Quote character converted to string. */</em> +<a class="jxr_linenumber" name="L35" href="#L35">35</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CSV_QUOTE_STR = String.valueOf(CSV_QUOTE); +<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment">/** Escaped quote string. */</em> +<a class="jxr_linenumber" name="L37" href="#L37">37</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CSV_ESCAPED_QUOTE_STR = CSV_QUOTE_STR + CSV_QUOTE_STR; +<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment">/** CSV key characters in an array. */</em> +<a class="jxr_linenumber" name="L39" href="#L39">39</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong>[] CSV_SEARCH_CHARS = +<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[] {CSV_DELIMITER, CSV_QUOTE, CharUtils.CR, CharUtils.LF}; +<a class="jxr_linenumber" name="L41" href="#L41">41</a> +<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment">/** Hidden constructor. */</em> +<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvTranslators</a>() { } +<a class="jxr_linenumber" name="L44" href="#L44">44</a> +<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * Translator for escaping Comma Separated Values.</em> +<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L48" href="#L48">48</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvEscaper</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/SinglePassTranslator.html">SinglePassTranslator</a> { +<a class="jxr_linenumber" name="L49" href="#L49">49</a> +<a class="jxr_linenumber" name="L50" href="#L50">50</a> @Override +<a class="jxr_linenumber" name="L51" href="#L51">51</a> <strong class="jxr_keyword">void</strong> translateWhole(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { +<a class="jxr_linenumber" name="L52" href="#L52">52</a> <strong class="jxr_keyword">final</strong> String inputSting = input.toString(); +<a class="jxr_linenumber" name="L53" href="#L53">53</a> <strong class="jxr_keyword">if</strong> (StringUtils.containsNone(inputSting, CSV_SEARCH_CHARS)) { +<a class="jxr_linenumber" name="L54" href="#L54">54</a> out.write(inputSting); +<a class="jxr_linenumber" name="L55" href="#L55">55</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_comment">// input needs quoting</em> +<a class="jxr_linenumber" name="L57" href="#L57">57</a> out.write(CSV_QUOTE); +<a class="jxr_linenumber" name="L58" href="#L58">58</a> out.write(StringUtils.replace(inputSting, CSV_QUOTE_STR, CSV_ESCAPED_QUOTE_STR)); +<a class="jxr_linenumber" name="L59" href="#L59">59</a> out.write(CSV_QUOTE); +<a class="jxr_linenumber" name="L60" href="#L60">60</a> } +<a class="jxr_linenumber" name="L61" href="#L61">61</a> } +<a class="jxr_linenumber" name="L62" href="#L62">62</a> } +<a class="jxr_linenumber" name="L63" href="#L63">63</a> +<a class="jxr_linenumber" name="L64" href="#L64">64</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment"> * Translator for unescaping escaped Comma Separated Value entries.</em> +<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/commons/text/translate/CsvTranslators.html">CsvUnescaper</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/commons/text/translate/SinglePassTranslator.html">SinglePassTranslator</a> { +<a class="jxr_linenumber" name="L68" href="#L68">68</a> +<a class="jxr_linenumber" name="L69" href="#L69">69</a> @Override +<a class="jxr_linenumber" name="L70" href="#L70">70</a> <strong class="jxr_keyword">void</strong> translateWhole(<strong class="jxr_keyword">final</strong> CharSequence input, <strong class="jxr_keyword">final</strong> Writer out) <strong class="jxr_keyword">throws</strong> IOException { +<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_comment">// is input not quoted?</em> +<a class="jxr_linenumber" name="L72" href="#L72">72</a> <strong class="jxr_keyword">if</strong> (input.charAt(0) != CSV_QUOTE || input.charAt(input.length() - 1) != CSV_QUOTE) { +<a class="jxr_linenumber" name="L73" href="#L73">73</a> out.write(input.toString()); +<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="L75" href="#L75">75</a> } +<a class="jxr_linenumber" name="L76" href="#L76">76</a> +<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_comment">// strip quotes</em> +<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">final</strong> String quoteless = input.subSequence(1, input.length() - 1).toString(); +<a class="jxr_linenumber" name="L79" href="#L79">79</a> +<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">if</strong> (StringUtils.containsAny(quoteless, CSV_SEARCH_CHARS)) { +<a class="jxr_linenumber" name="L81" href="#L81">81</a> <em class="jxr_comment">// deal with escaped quotes; ie) ""</em> +<a class="jxr_linenumber" name="L82" href="#L82">82</a> out.write(StringUtils.replace(quoteless, CSV_ESCAPED_QUOTE_STR, CSV_QUOTE_STR)); +<a class="jxr_linenumber" name="L83" href="#L83">83</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="L84" href="#L84">84</a> out.write(input.toString()); +<a class="jxr_linenumber" name="L85" href="#L85">85</a> } +<a class="jxr_linenumber" name="L86" href="#L86">86</a> } +<a class="jxr_linenumber" name="L87" href="#L87">87</a> } +<a class="jxr_linenumber" name="L88" href="#L88">88</a> } </pre> <hr/> <div id="footer">Copyright © 2014–2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/EntityArrays.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/EntityArrays.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/EntityArrays.html Sun Mar 12 02:08:01 2017 @@ -398,7 +398,7 @@ <a class="jxr_linenumber" name="L390" href="#L390">390</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Map<CharSequence, CharSequence> APOS_ESCAPE; <a class="jxr_linenumber" name="L391" href="#L391">391</a> <strong class="jxr_keyword">static</strong> { <a class="jxr_linenumber" name="L392" href="#L392">392</a> Map<CharSequence, CharSequence> initialMap = <strong class="jxr_keyword">new</strong> HashMap<>(); -<a class="jxr_linenumber" name="L393" href="#L393">393</a> initialMap.put(<span class="jxr_string">"'"</span>,<span class="jxr_string">"&apos;"</span>); <em class="jxr_comment">// XML apostrophe</em> +<a class="jxr_linenumber" name="L393" href="#L393">393</a> initialMap.put(<span class="jxr_string">"'"</span>, <span class="jxr_string">"&apos;"</span>); <em class="jxr_comment">// XML apostrophe</em> <a class="jxr_linenumber" name="L394" href="#L394">394</a> APOS_ESCAPE = Collections.unmodifiableMap(initialMap); <a class="jxr_linenumber" name="L395" href="#L395">395</a> } <a class="jxr_linenumber" name="L396" href="#L396">396</a> @@ -436,7 +436,7 @@ <a class="jxr_linenumber" name="L428" href="#L428">428</a> } <a class="jxr_linenumber" name="L429" href="#L429">429</a> <a class="jxr_linenumber" name="L430" href="#L430">430</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L431" href="#L431">431</a> <em class="jxr_javadoccomment"> * Used to invert an escape Map into an unescape Map</em> +<a class="jxr_linenumber" name="L431" href="#L431">431</a> <em class="jxr_javadoccomment"> * Used to invert an escape Map into an unescape Map.</em> <a class="jxr_linenumber" name="L432" href="#L432">432</a> <em class="jxr_javadoccomment"> * @param map Map&lt;String, String&gt; to be inverted</em> <a class="jxr_linenumber" name="L433" href="#L433">433</a> <em class="jxr_javadoccomment"> * @return Map&lt;String, String&gt; inverted array</em> <a class="jxr_linenumber" name="L434" href="#L434">434</a> <em class="jxr_javadoccomment"> */</em> Modified: websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/JavaUnicodeEscaper.html ============================================================================== --- websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/JavaUnicodeEscaper.html (original) +++ websites/production/commons/content/proper/commons-text/xref/org/apache/commons/text/translate/JavaUnicodeEscaper.html Sun Mar 12 02:08:01 2017 @@ -35,7 +35,7 @@ <a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> * <p></em> <a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * Constructs a <code>JavaUnicodeEscaper</code> above the specified value (exclusive).</em> <a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * @param codepoint</em> <a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> * above which to escape</em> <a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> * @return the newly created {@code UnicodeEscaper} instance</em> @@ -48,7 +48,7 @@ <a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * <p></em> <a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> * Constructs a <code>JavaUnicodeEscaper</code> below the specified value (exclusive).</em> <a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param codepoint</em> <a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * below which to escape</em> <a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * @return the newly created {@code UnicodeEscaper} instance</em> @@ -61,7 +61,7 @@ <a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * <p></em> <a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * Constructs a <code>JavaUnicodeEscaper</code> between the specified values (inclusive).</em> <a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @param codepointLow</em> <a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * above which to escape</em> <a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * @param codepointHigh</em> @@ -76,7 +76,7 @@ <a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> * <p></em> <a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * Constructs a <code>JavaUnicodeEscaper</code> outside of the specified values (exclusive).</em> <a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * @param codepointLow</em> <a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> * below which to escape</em> <a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> * @param codepointHigh</em> @@ -93,7 +93,7 @@ <a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> * other constructors/builders. The <code>below</code> and <code>above</code> boundaries are inclusive when</em> <a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> * <code>between</code> is <code>true</code> and exclusive when it is <code>false</code>.</em> <a class="jxr_linenumber" name="L87" href="#L87">87</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L88" href="#L88">88</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L88" href="#L88">88</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L89" href="#L89">89</a> <em class="jxr_javadoccomment"> * @param below</em> <a class="jxr_linenumber" name="L90" href="#L90">90</a> <em class="jxr_javadoccomment"> * int value representing the lowest codepoint boundary</em> <a class="jxr_linenumber" name="L91" href="#L91">91</a> <em class="jxr_javadoccomment"> * @param above</em> @@ -106,8 +106,8 @@ <a class="jxr_linenumber" name="L98" href="#L98">98</a> } <a class="jxr_linenumber" name="L99" href="#L99">99</a> <a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> * Converts the given codepoint to a hex string of the form {@code "\\uXXXX\\uXXXX"}</em> -<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> * </em> +<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> * Converts the given codepoint to a hex string of the form {@code "\\uXXXX\\uXXXX"}.</em> +<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> *</em> <a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment"> * @param codepoint</em> <a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment"> * a Unicode code point</em> <a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment"> * @return the hex string for the given codepoint</em>