You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@commons.apache.org by ch...@apache.org on 2017/01/23 12:35:15 UTC
svn commit: r1005408 [8/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/org...
Modified: websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/LookupTranslator.html
==============================================================================
--- websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/LookupTranslator.html (original)
+++ websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/LookupTranslator.html Mon Jan 23 12:35:12 2017
@@ -26,77 +26,83 @@
<span class="sourceLineNo">018</span><a name="line.18"></a>
<span class="sourceLineNo">019</span>import java.io.IOException;<a name="line.19"></a>
<span class="sourceLineNo">020</span>import java.io.Writer;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import java.util.HashMap;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.HashSet;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Translates a value using a lookup table.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> *<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * @since 1.0<a name="line.27"></a>
-<span class="sourceLineNo">028</span> */<a name="line.28"></a>
-<span class="sourceLineNo">029</span>public class LookupTranslator extends CharSequenceTranslator {<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span> private final HashMap<String, String> lookupMap;<a name="line.31"></a>
-<span class="sourceLineNo">032</span> private final HashSet<Character> prefixSet;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> private final int shortest;<a name="line.33"></a>
-<span class="sourceLineNo">034</span> private final int longest;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span> /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * Define the lookup table to be used in translation<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * Note that, as of Lang 3.1, the key to the lookup table is converted to a<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * java.lang.String. This is because we need the key to support hashCode and<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * equals(Object), allowing it to be the key for a HashMap. See LANG-882.<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * @param lookup CharSequence[][] table of size [*][2]<a name="line.43"></a>
-<span class="sourceLineNo">044</span> */<a name="line.44"></a>
-<span class="sourceLineNo">045</span> public LookupTranslator(final CharSequence[]... lookup) {<a name="line.45"></a>
-<span class="sourceLineNo">046</span> lookupMap = new HashMap<>();<a name="line.46"></a>
-<span class="sourceLineNo">047</span> prefixSet = new HashSet<>();<a name="line.47"></a>
-<span class="sourceLineNo">048</span> int _shortest = Integer.MAX_VALUE;<a name="line.48"></a>
-<span class="sourceLineNo">049</span> int _longest = 0;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> if (lookup != null) {<a name="line.50"></a>
-<span class="sourceLineNo">051</span> for (final CharSequence[] seq : lookup) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span> this.lookupMap.put(seq[0].toString(), seq[1].toString());<a name="line.52"></a>
-<span class="sourceLineNo">053</span> this.prefixSet.add(seq[0].charAt(0));<a name="line.53"></a>
-<span class="sourceLineNo">054</span> final int sz = seq[0].length();<a name="line.54"></a>
-<span class="sourceLineNo">055</span> if (sz < _shortest) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span> _shortest = sz;<a name="line.56"></a>
-<span class="sourceLineNo">057</span> }<a name="line.57"></a>
-<span class="sourceLineNo">058</span> if (sz > _longest) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span> _longest = sz;<a name="line.59"></a>
-<span class="sourceLineNo">060</span> }<a name="line.60"></a>
-<span class="sourceLineNo">061</span> }<a name="line.61"></a>
-<span class="sourceLineNo">062</span> }<a name="line.62"></a>
-<span class="sourceLineNo">063</span> shortest = _shortest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span> longest = _longest;<a name="line.64"></a>
-<span class="sourceLineNo">065</span> }<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span> /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * {@inheritDoc}<a name="line.68"></a>
-<span class="sourceLineNo">069</span> */<a name="line.69"></a>
-<span class="sourceLineNo">070</span> @Override<a name="line.70"></a>
-<span class="sourceLineNo">071</span> public int translate(final CharSequence input, final int index, final Writer out) throws IOException {<a name="line.71"></a>
-<span class="sourceLineNo">072</span> // check if translation exists for the input at position index<a name="line.72"></a>
-<span class="sourceLineNo">073</span> if (prefixSet.contains(input.charAt(index))) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span> int max = longest;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> if (index + longest > input.length()) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span> max = input.length() - index;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> }<a name="line.77"></a>
-<span class="sourceLineNo">078</span> // implement greedy algorithm by trying maximum match first<a name="line.78"></a>
-<span class="sourceLineNo">079</span> for (int i = max; i >= shortest; i--) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.80"></a>
-<span class="sourceLineNo">081</span> final String result = lookupMap.get(subSeq.toString());<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span> if (result != null) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> out.write(result);<a name="line.84"></a>
-<span class="sourceLineNo">085</span> return i;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> }<a name="line.86"></a>
-<span class="sourceLineNo">087</span> }<a name="line.87"></a>
-<span class="sourceLineNo">088</span> }<a name="line.88"></a>
-<span class="sourceLineNo">089</span> return 0;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+<span class="sourceLineNo">021</span>import java.security.InvalidParameterException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.HashMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.HashSet;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Map;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Translates a value using a lookup table.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * @since 1.0<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class LookupTranslator extends CharSequenceTranslator {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span> private final Map<String, String> lookupMap;<a name="line.33"></a>
+<span class="sourceLineNo">034</span> private final HashSet<Character> prefixSet;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> private final int shortest;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> private final int longest;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span> /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Define the lookup table to be used in translation<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Note that, as of Lang 3.1 (the orgin of this code), the key to the lookup<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * table is converted to a java.lang.String. This is because we need the key<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * to support hashCode and equals(Object), allowing it to be the key for a<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * HashMap. See LANG-882.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * @param lookupMap Map&lt;CharSequence, CharSequence&gt; table of translator<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * mappings<a name="line.47"></a>
+<span class="sourceLineNo">048</span> */<a name="line.48"></a>
+<span class="sourceLineNo">049</span> public LookupTranslator(final Map<CharSequence, CharSequence> lookupMap) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span> if (lookupMap == null) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> throw new InvalidParameterException("lookupMap cannot be null");<a name="line.51"></a>
+<span class="sourceLineNo">052</span> }<a name="line.52"></a>
+<span class="sourceLineNo">053</span> this.lookupMap = new HashMap<>();<a name="line.53"></a>
+<span class="sourceLineNo">054</span> prefixSet = new HashSet<>();<a name="line.54"></a>
+<span class="sourceLineNo">055</span> int _shortest = Integer.MAX_VALUE;<a name="line.55"></a>
+<span class="sourceLineNo">056</span> int _longest = 0;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> for (final CharSequence key : lookupMap.keySet()) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span> this.lookupMap.put(key.toString(),<a name="line.58"></a>
+<span class="sourceLineNo">059</span> lookupMap.get(key).toString());<a name="line.59"></a>
+<span class="sourceLineNo">060</span> this.prefixSet.add(key.charAt(0));<a name="line.60"></a>
+<span class="sourceLineNo">061</span> final int sz = key.length();<a name="line.61"></a>
+<span class="sourceLineNo">062</span> if (sz < _shortest) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span> _shortest = sz;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> }<a name="line.64"></a>
+<span class="sourceLineNo">065</span> if (sz > _longest) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span> _longest = sz;<a name="line.66"></a>
+<span class="sourceLineNo">067</span> }<a name="line.67"></a>
+<span class="sourceLineNo">068</span> }<a name="line.68"></a>
+<span class="sourceLineNo">069</span> shortest = _shortest;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> longest = _longest;<a name="line.70"></a>
+<span class="sourceLineNo">071</span> }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span> /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * {@inheritDoc}<a name="line.74"></a>
+<span class="sourceLineNo">075</span> */<a name="line.75"></a>
+<span class="sourceLineNo">076</span> @Override<a name="line.76"></a>
+<span class="sourceLineNo">077</span> public int translate(final CharSequence input, final int index, final Writer out) throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span> // check if translation exists for the input at position index<a name="line.78"></a>
+<span class="sourceLineNo">079</span> if (prefixSet.contains(input.charAt(index))) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span> int max = longest;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> if (index + longest > input.length()) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> max = input.length() - index;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> }<a name="line.83"></a>
+<span class="sourceLineNo">084</span> // implement greedy algorithm by trying maximum match first<a name="line.84"></a>
+<span class="sourceLineNo">085</span> for (int i = max; i >= shortest; i--) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.86"></a>
+<span class="sourceLineNo">087</span> final String result = lookupMap.get(subSeq.toString());<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span> if (result != null) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span> out.write(result);<a name="line.90"></a>
+<span class="sourceLineNo">091</span> return i;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span> }<a name="line.94"></a>
+<span class="sourceLineNo">095</span> return 0;<a name="line.95"></a>
+<span class="sourceLineNo">096</span> }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>}<a name="line.97"></a>
Modified: websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/SingleLookupTranslator.html
==============================================================================
--- websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/SingleLookupTranslator.html (original)
+++ websites/production/commons/content/proper/commons-text/apidocs/src-html/org/apache/commons/text/translate/SingleLookupTranslator.html Mon Jan 23 12:35:12 2017
@@ -28,129 +28,125 @@
<span class="sourceLineNo">020</span>import java.io.Writer;<a name="line.20"></a>
<span class="sourceLineNo">021</span>import java.util.HashMap;<a name="line.21"></a>
<span class="sourceLineNo">022</span>import java.util.HashSet;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Translates a value using a lookup table.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * But doesn't translate if that value is already translated.<a name="line.26"></a>
-<span class="sourceLineNo">027</span> *<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * @since 1.0<a name="line.28"></a>
-<span class="sourceLineNo">029</span> */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>public class SingleLookupTranslator extends CharSequenceTranslator {<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span> private final HashMap<String, String> lookupMap;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> private final HashSet<Character> prefixSet;<a name="line.33"></a>
-<span class="sourceLineNo">034</span> private final int shortest;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> private final int longest;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> private final int shortestValue;<a name="line.36"></a>
-<span class="sourceLineNo">037</span> private final int longestValue;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span> /**<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Define the look tables to be used in translation.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * Note that, as of Lang 3.1, the key to the lookup table is converted to a<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * java.lang.String. This is because we need the key to support hashCode and<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * equals(Object), allowing it to be the key for a HashMap. See LANG-882.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * Also note that, multiple lookup tables should be passed to this translator<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * instead of passing multiple instances of this translator to the<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * AggregateTranslator. Because, this translator only checks the values of the<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * lookup table passed to this instance while deciding whether a value is<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * already translated or not.<a name="line.50"></a>
-<span class="sourceLineNo">051</span> *<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * @param inputArrays, an array of string arrays.<a name="line.52"></a>
-<span class="sourceLineNo">053</span> */<a name="line.53"></a>
-<span class="sourceLineNo">054</span> public SingleLookupTranslator(final String[][]... inputArrays) {<a name="line.54"></a>
-<span class="sourceLineNo">055</span> String[][] lookup = new String[0][];<a name="line.55"></a>
-<span class="sourceLineNo">056</span> for (String[][] input : inputArrays) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span> lookup = append(lookup, input);<a name="line.57"></a>
-<span class="sourceLineNo">058</span> }<a name="line.58"></a>
-<span class="sourceLineNo">059</span> lookupMap = new HashMap<String, String>();<a name="line.59"></a>
-<span class="sourceLineNo">060</span> prefixSet = new HashSet<Character>();<a name="line.60"></a>
-<span class="sourceLineNo">061</span> int _shortest = Integer.MAX_VALUE;<a name="line.61"></a>
-<span class="sourceLineNo">062</span> int _longest = 0;<a name="line.62"></a>
-<span class="sourceLineNo">063</span> int _shortestValue = Integer.MAX_VALUE;<a name="line.63"></a>
-<span class="sourceLineNo">064</span> int _longestValue = 0;<a name="line.64"></a>
-<span class="sourceLineNo">065</span> if (lookup != null) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span> for (final CharSequence[] seq : lookup) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span> this.lookupMap.put(seq[0].toString(), seq[1].toString());<a name="line.67"></a>
-<span class="sourceLineNo">068</span> this.prefixSet.add(seq[0].charAt(0));<a name="line.68"></a>
-<span class="sourceLineNo">069</span> final int sz = seq[0].length();<a name="line.69"></a>
-<span class="sourceLineNo">070</span> if (sz < _shortest) {<a name="line.70"></a>
-<span class="sourceLineNo">071</span> _shortest = sz;<a name="line.71"></a>
-<span class="sourceLineNo">072</span> }<a name="line.72"></a>
-<span class="sourceLineNo">073</span> if (sz > _longest) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span> _longest = sz;<a name="line.74"></a>
+<span class="sourceLineNo">023</span>import java.util.Map;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Translates a value using a lookup table.<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * But doesn't translate if that value is already translated.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * @since 1.0<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class SingleLookupTranslator extends CharSequenceTranslator {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span> private final Map<String, String> lookupMap;<a name="line.33"></a>
+<span class="sourceLineNo">034</span> private final HashSet<Character> prefixSet;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> private final int shortest;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> private final int longest;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> private final int shortestValue;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> private final int longestValue;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Define the look tables to be used in translation.<a name="line.41"></a>
+<span class="sourceLineNo">042</span> *<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * Note that, as of Lang 3.1, the key to the lookup table is converted to a<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * java.lang.String. This is because we need the key to support hashCode and<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * equals(Object), allowing it to be the key for a HashMap. See LANG-882.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * Also note that, multiple lookup tables should be passed to this translator<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * instead of passing multiple instances of this translator to the<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * AggregateTranslator. Because, this translator only checks the values of the<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * lookup table passed to this instance while deciding whether a value is<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * already translated or not.<a name="line.51"></a>
+<span class="sourceLineNo">052</span> *<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * @param inputMaps, an array of Map&lt;CharSequence, CharSequence&gt;.<a name="line.53"></a>
+<span class="sourceLineNo">054</span> */<a name="line.54"></a>
+<span class="sourceLineNo">055</span> public SingleLookupTranslator(Map<CharSequence, CharSequence>... inputMaps) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span> Map<CharSequence, CharSequence> lookup = new HashMap<>();<a name="line.56"></a>
+<span class="sourceLineNo">057</span> for (Map<CharSequence, CharSequence> input : inputMaps) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span> for(CharSequence key : input.keySet()) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span> lookup.put(key, input.get(key));<a name="line.59"></a>
+<span class="sourceLineNo">060</span> }<a name="line.60"></a>
+<span class="sourceLineNo">061</span> }<a name="line.61"></a>
+<span class="sourceLineNo">062</span> lookupMap = new HashMap<String, String>();<a name="line.62"></a>
+<span class="sourceLineNo">063</span> prefixSet = new HashSet<Character>();<a name="line.63"></a>
+<span class="sourceLineNo">064</span> int _shortest = Integer.MAX_VALUE;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> int _longest = 0;<a name="line.65"></a>
+<span class="sourceLineNo">066</span> int _shortestValue = Integer.MAX_VALUE;<a name="line.66"></a>
+<span class="sourceLineNo">067</span> int _longestValue = 0;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> if (lookup != null) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span> for (final CharSequence key: lookup.keySet()) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> this.lookupMap.put(key.toString(), lookup.get(key).toString());<a name="line.70"></a>
+<span class="sourceLineNo">071</span> this.prefixSet.add(key.charAt(0));<a name="line.71"></a>
+<span class="sourceLineNo">072</span> final int sz = key.length();<a name="line.72"></a>
+<span class="sourceLineNo">073</span> if (sz < _shortest) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span> _shortest = sz;<a name="line.74"></a>
<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span> final int sizeOfValue = seq[1].length();<a name="line.76"></a>
-<span class="sourceLineNo">077</span> if (sizeOfValue < _shortestValue) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span> _shortestValue = sizeOfValue;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> }<a name="line.79"></a>
-<span class="sourceLineNo">080</span> if (sizeOfValue > _longestValue) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span> _longestValue = sizeOfValue;<a name="line.81"></a>
+<span class="sourceLineNo">076</span> if (sz > _longest) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span> _longest = sz;<a name="line.77"></a>
+<span class="sourceLineNo">078</span> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span> final int sizeOfValue = lookup.get(key).length();<a name="line.79"></a>
+<span class="sourceLineNo">080</span> if (sizeOfValue < _shortestValue) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span> _shortestValue = sizeOfValue;<a name="line.81"></a>
<span class="sourceLineNo">082</span> }<a name="line.82"></a>
-<span class="sourceLineNo">083</span> }<a name="line.83"></a>
-<span class="sourceLineNo">084</span> }<a name="line.84"></a>
-<span class="sourceLineNo">085</span> shortest = _shortest;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> longest = _longest;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> shortestValue = _shortestValue;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> longestValue = _longestValue;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span> private static String[][] append(String[][] a, String[][] b) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span> String[][] result = new String[a.length + b.length][];<a name="line.92"></a>
-<span class="sourceLineNo">093</span> System.arraycopy(a, 0, result, 0, a.length);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> System.arraycopy(b, 0, result, a.length, b.length);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> return result;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span> /**<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * Translate a set of codepoints, represented by an int index into a CharSequence,<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * into another set of codepoints. The number of codepoints consumed must be returned,<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * and the only IOExceptions thrown must be from interacting with the Writer so that<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * the top level API may reliably ignore StringWriter IOExceptions.<a name="line.102"></a>
-<span class="sourceLineNo">103</span> *<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * @param input CharSequence that is being translated<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * @param index int representing the current point of translation<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * @param out Writer to translate the text to<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * @return int count of codepoints consumed<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * @throws IOException if and only if the Writer produces an IOException<a name="line.108"></a>
-<span class="sourceLineNo">109</span> */<a name="line.109"></a>
-<span class="sourceLineNo">110</span> @Override<a name="line.110"></a>
-<span class="sourceLineNo">111</span> public int translate(CharSequence input, int index, Writer out) throws IOException {<a name="line.111"></a>
-<span class="sourceLineNo">112</span> // check if already translated<a name="line.112"></a>
-<span class="sourceLineNo">113</span> int maxValue = longestValue;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> if (index + maxValue > input.length()) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> maxValue = input.length() - index;<a name="line.115"></a>
-<span class="sourceLineNo">116</span> }<a name="line.116"></a>
-<span class="sourceLineNo">117</span> // implement greedy algorithm to check all the possible 'value' matches for which we need to skip translation.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> for (int i = maxValue; i >= shortestValue; i--) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.119"></a>
-<span class="sourceLineNo">120</span> // If the sub-string is already translated, return without translating.<a name="line.120"></a>
-<span class="sourceLineNo">121</span> if (lookupMap.containsValue(subSeq.toString())) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span> return 0;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span> // check if translation exists for the input at position index<a name="line.126"></a>
-<span class="sourceLineNo">127</span> if (prefixSet.contains(input.charAt(index))) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> int max = longest;<a name="line.128"></a>
-<span class="sourceLineNo">129</span> if (index + longest > input.length()) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span> max = input.length() - index;<a name="line.130"></a>
-<span class="sourceLineNo">131</span> }<a name="line.131"></a>
-<span class="sourceLineNo">132</span> // implement greedy algorithm by trying maximum match first<a name="line.132"></a>
-<span class="sourceLineNo">133</span> for (int i = max; i >= shortest; i--) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> final String result = lookupMap.get(subSeq.toString());<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> if (result != null) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> out.write(result);<a name="line.138"></a>
-<span class="sourceLineNo">139</span> return i;<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> }<a name="line.142"></a>
-<span class="sourceLineNo">143</span> return 0;<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>}<a name="line.145"></a>
+<span class="sourceLineNo">083</span> if (sizeOfValue > _longestValue) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span> _longestValue = sizeOfValue;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> }<a name="line.85"></a>
+<span class="sourceLineNo">086</span> }<a name="line.86"></a>
+<span class="sourceLineNo">087</span> }<a name="line.87"></a>
+<span class="sourceLineNo">088</span> shortest = _shortest;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> longest = _longest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> shortestValue = _shortestValue;<a name="line.90"></a>
+<span class="sourceLineNo">091</span> longestValue = _longestValue;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span> /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Translate a set of codepoints, represented by an int index into a CharSequence,<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * into another set of codepoints. The number of codepoints consumed must be returned,<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * and the only IOExceptions thrown must be from interacting with the Writer so that<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * the top level API may reliably ignore StringWriter IOExceptions.<a name="line.98"></a>
+<span class="sourceLineNo">099</span> *<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * @param input CharSequence that is being translated<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * @param index int representing the current point of translation<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * @param out Writer to translate the text to<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * @return int count of codepoints consumed<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * @throws IOException if and only if the Writer produces an IOException<a name="line.104"></a>
+<span class="sourceLineNo">105</span> */<a name="line.105"></a>
+<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span> public int translate(CharSequence input, int index, Writer out) throws IOException {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> // check if already translated<a name="line.108"></a>
+<span class="sourceLineNo">109</span> int maxValue = longestValue;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> if (index + maxValue > input.length()) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span> maxValue = input.length() - index;<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
+<span class="sourceLineNo">113</span> // implement greedy algorithm to check all the possible 'value' matches for which we need to skip translation.<a name="line.113"></a>
+<span class="sourceLineNo">114</span> for (int i = maxValue; i >= shortestValue; i--) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.115"></a>
+<span class="sourceLineNo">116</span> // If the sub-string is already translated, return without translating.<a name="line.116"></a>
+<span class="sourceLineNo">117</span> if (lookupMap.containsValue(subSeq.toString())) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> return 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> }<a name="line.119"></a>
+<span class="sourceLineNo">120</span> }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span> // check if translation exists for the input at position index<a name="line.122"></a>
+<span class="sourceLineNo">123</span> if (prefixSet.contains(input.charAt(index))) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span> int max = longest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span> if (index + longest > input.length()) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> max = input.length() - index;<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
+<span class="sourceLineNo">128</span> // implement greedy algorithm by trying maximum match first<a name="line.128"></a>
+<span class="sourceLineNo">129</span> for (int i = max; i >= shortest; i--) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> final CharSequence subSeq = input.subSequence(index, index + i);<a name="line.130"></a>
+<span class="sourceLineNo">131</span> final String result = lookupMap.get(subSeq.toString());<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span> if (result != null) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span> out.write(result);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> return i;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> }<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span> }<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return 0;<a name="line.139"></a>
+<span class="sourceLineNo">140</span> }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>}<a name="line.141"></a>
Modified: websites/production/commons/content/proper/commons-text/changes-report.html
==============================================================================
--- websites/production/commons/content/proper/commons-text/changes-report.html (original)
+++ websites/production/commons/content/proper/commons-text/changes-report.html Mon Jan 23 12:35:12 2017
@@ -1,13 +1,13 @@
<!DOCTYPE html>
<!--
- | Generated by Apache Maven Doxia at 11 January 2017
+ | Generated by Apache Maven Doxia at 23 January 2017
| Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="Date-Revision-yyyymmdd" content="20170111" />
+ <meta name="Date-Revision-yyyymmdd" content="20170123" />
<meta http-equiv="Content-Language" content="en" />
<title>Commons Text – Apache Commons Text Changes</title>
@@ -38,7 +38,7 @@
<a class="brand" href="http://commons.apache.org/proper/commons-text/">Apache Commons Text ™</a>
<ul class="nav">
- <li id="publishDate">Last Published: 11 January 2017</li>
+ <li id="publishDate">Last Published: 23 January 2017</li>
<li class="divider">|</li> <li id="projectVersion">Version: 0.1-SNAPSHOT</li>
</ul>
<div class="pull-right"> <ul class="nav">
@@ -296,7 +296,7 @@
<tr class="b">
<td><a href="#a1.0">1.0</a></td>
<td>tba</td>
-<td>tba</td></tr></table></div>
+<td>First release of Commons Text</td></tr></table></div>
<div class="section">
<h3 id="a1.0">Release 1.0 – tba</h3>
<table border="0" class="bodyTable">
@@ -305,142 +305,154 @@
<th>Changes</th>
<th>By</th></tr>
<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Refactor EntityArrays to have unmodifiableMaps in leu of String[][]. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-58">TEXT-58</a>.</td>
+<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Prepare site for 1.0 release. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-53">TEXT-53</a>.</td>
+<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Move CvsTranslators out of StringEscapeUtils and make them DRY. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-56">TEXT-56</a>. Thanks to Jarek Strzeleck.</td>
+<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
+<tr class="a">
<td><img src="images/remove.gif" alt="Remove" title="Remove" /></td>
<td>Remove WordUtils to be added back in an upcoming 1.X release. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-55">TEXT-55</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Possible attacks through StringEscapeUtils.escapeEcmaScrip better javadoc. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-52">TEXT-52</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/remove.gif" alt="Remove" title="Remove" /></td>
<td>Remove RandomStringGenerator to be added back in the 1.1 release. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-51">TEXT-51</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Upgrade from commons-parent version 41 to version 42. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-50">TEXT-50</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Escape HTML characters only once. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-40">TEXT-40</a>. Thanks to Sampanna Kahu.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Global vs local source of randomness. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-37">TEXT-37</a>.</td>
<td><a href="team-list.html#djones">djones</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Fluent API in "RandomStringBuilder". Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-38">TEXT-38</a>.</td>
<td><a href="team-list.html#djones">djones</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Fix JaroWinklerDistance in the manner of LUCENE-1297. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-26">TEXT-26</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add LCS similarity and distance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-32">TEXT-32</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add class to generate random strings. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-34">TEXT-34</a>.</td>
<td><a href="team-list.html#djones">djones</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Unfinished class Javadoc for CosineDistance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-35">TEXT-35</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Consolidating since tags at 1.0, removing deprecated methods. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-33">TEXT-33</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add a builder to StringEscapeUtils. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-29">TEXT-29</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add shell/XSI escape/unescape support. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-28">TEXT-28</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>LevenshteinDistance reduce memory consumption. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-22">TEXT-22</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/remove.gif" alt="Remove" title="Remove" /></td>
<td>Remove org.apache.commons.text.names, for later release than 1.0. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-31">TEXT-31</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add Jaccard Index and Jaccard Distance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-2">TEXT-2</a>. Thanks to Don Jeba.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Move org.apache.commons.lang3.StringEscapeUtils.java into text. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-27">TEXT-27</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Moving from commons-lang, the package org.apache.commons.lang3.text. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-23">TEXT-23</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>A more complex Levenshtein distance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-10">TEXT-10</a>. Thanks to Don Jeba.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add coveralls and Travis.ci integration. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-24">TEXT-24</a>.</td>
<td><a href="team-list.html#chtompki">chtompki</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add alphabet converter. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-19">TEXT-19</a>. Thanks to Eyal Allweil.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Create Commons Text logo. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-13">TEXT-13</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/update.gif" alt="Update" title="Update" /></td>
<td>Improve HumanNameParser. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-16">TEXT-16</a>.</td>
<td><a href="team-list.html#britter">britter</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>IP clearance for the names package. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-5">TEXT-5</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Write user guide. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-7">TEXT-7</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Work on the string metric, distance, and similarity definitions for the project. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-11">TEXT-11</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Human name parser. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-15">TEXT-15</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Create StringDistanceFrom class that contains a StringMetric and the "left" side string. This would have a method that accepts the "right" side string to test. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-12">TEXT-12</a>. Thanks to Jonathan baker.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add Cosine Similarity and Cosine Distance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-3">TEXT-3</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Change (R) StringMetric.compare(CS left, CS right) to "apply" so that it is consistent with BiFunction. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-8">TEXT-8</a>. Thanks to Jonathan Baker.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
<td>Allow extra information (e.g. Levenshtein threshold) to be stored as (final) fields in the StringMetric instance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-6">TEXT-6</a>. Thanks to Jonathan Baker.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Port Myers algorithm from [collections]. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-4">TEXT-4</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="a">
+<tr class="b">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Add Hamming distance. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-1">TEXT-1</a>.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr>
-<tr class="b">
+<tr class="a">
<td><img src="images/add.gif" alt="Add" title="Add" /></td>
<td>Incorporate String algorithms from Commons Lang. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/TEXT-9">TEXT-9</a>. Thanks to britter.</td>
<td><a href="team-list.html#kinow">kinow</a></td></tr></table></div></div>