commons-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ggreg...@apache.org
Subject svn commit: r989467 [11/43] - in /websites/production/commons/content/proper/commons-csv/archives/1.4: ./ apidocs/ apidocs/org/ apidocs/org/apache/ apidocs/org/apache/commons/ apidocs/org/apache/commons/csv/ apidocs/org/apache/commons/csv/class-use/ ap...
Date Sun, 29 May 2016 02:48:45 GMT
Added: websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/CSVRecord.html
==============================================================================
--- websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/CSVRecord.html (added)
+++ websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/CSVRecord.html Sun May 29 02:48:43 2016
@@ -0,0 +1,350 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *      http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.commons.csv;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.Serializable;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Arrays;<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.Iterator;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.Map.Entry;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * A CSV record parsed from a CSV file.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * @version $Id: CSVRecord.html 989464 2016-05-29 02:24:04Z ggregory $<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class CSVRecord implements Serializable, Iterable&lt;String&gt; {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>    private static final String[] EMPTY_STRING_ARRAY = new String[0];<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>    private static final long serialVersionUID = 1L;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>    private final long characterPosition;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>    /** The accumulated comments (if any) */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    private final String comment;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>    /** The column name to index mapping. */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    private final Map&lt;String, Integer&gt; mapping;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>    /** The record number. */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    private final long recordNumber;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>    /** The values of the record */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    private final String[] values;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>    CSVRecord(final String[] values, final Map&lt;String, Integer&gt; mapping, final String comment, final long recordNumber,<a name="line.53"></a>
+<span class="sourceLineNo">054</span>            final long characterPosition) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        this.recordNumber = recordNumber;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        this.values = values != null ? values : EMPTY_STRING_ARRAY;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        this.mapping = mapping;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        this.comment = comment;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        this.characterPosition = characterPosition;<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>     * Returns a value by {@link Enum}.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     *<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * @param e<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     *            an enum<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * @return the String at the given enum String<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    public String get(final Enum&lt;?&gt; e) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        return get(e.toString());<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>     * Returns a value by index.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>     *<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * @param i<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     *            a column index (0-based)<a name="line.77"></a>
+<span class="sourceLineNo">078</span>     * @return the String at the given index<a name="line.78"></a>
+<span class="sourceLineNo">079</span>     */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public String get(final int i) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        return values[i];<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>     * Returns a value by name.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>     *<a name="line.86"></a>
+<span class="sourceLineNo">087</span>     * @param name<a name="line.87"></a>
+<span class="sourceLineNo">088</span>     *            the name of the column to be retrieved.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     * @return the column value, maybe null depending on {@link CSVFormat#getNullString()}.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>     * @throws IllegalStateException<a name="line.90"></a>
+<span class="sourceLineNo">091</span>     *             if no header mapping was provided<a name="line.91"></a>
+<span class="sourceLineNo">092</span>     * @throws IllegalArgumentException<a name="line.92"></a>
+<span class="sourceLineNo">093</span>     *             if {@code name} is not mapped or if the record is inconsistent<a name="line.93"></a>
+<span class="sourceLineNo">094</span>     * @see #isConsistent()<a name="line.94"></a>
+<span class="sourceLineNo">095</span>     * @see CSVFormat#withNullString(String)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>     */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    public String get(final String name) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        if (mapping == null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>            throw new IllegalStateException(<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                "No header mapping was specified, the record values can't be accessed by name");<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        final Integer index = mapping.get(name);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        if (index == null) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>            throw new IllegalArgumentException(String.format("Mapping for %s not found, expected one of %s", name,<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                mapping.keySet()));<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        try {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>            return values[index.intValue()];<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        } catch (final ArrayIndexOutOfBoundsException e) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>            throw new IllegalArgumentException(String.format(<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                "Index for header '%s' is %d but CSVRecord only has %d values!", name, index,<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                Integer.valueOf(values.length)));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>    /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>     * Returns the start position of this record as a character position in the source stream. This may or may not<a name="line.117"></a>
+<span class="sourceLineNo">118</span>     * correspond to the byte position depending on the character set.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>     *<a name="line.119"></a>
+<span class="sourceLineNo">120</span>     * @return the position of this record in the source stream.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>     */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    public long getCharacterPosition() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return characterPosition;<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>    /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>     * Returns the comment for this record, if any.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>     * Note that comments are attached to the following record.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>     * If there is no following record (i.e. the comment is at EOF)<a name="line.129"></a>
+<span class="sourceLineNo">130</span>     * the comment will be ignored.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>     *<a name="line.131"></a>
+<span class="sourceLineNo">132</span>     * @return the comment for this record, or null if no comment for this record is available.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>     */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public String getComment() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        return comment;<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>     * Returns the number of this record in the parsed CSV file.<a name="line.139"></a>
+<span class="sourceLineNo">140</span>     *<a name="line.140"></a>
+<span class="sourceLineNo">141</span>     * &lt;p&gt;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>     * &lt;strong&gt;ATTENTION:&lt;/strong&gt; If your CSV input has multi-line values, the returned number does not correspond to<a name="line.142"></a>
+<span class="sourceLineNo">143</span>     * the current line number of the parser that created this record.<a name="line.143"></a>
+<span class="sourceLineNo">144</span>     * &lt;/p&gt;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>     *<a name="line.145"></a>
+<span class="sourceLineNo">146</span>     * @return the number of this record.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>     * @see CSVParser#getCurrentLineNumber()<a name="line.147"></a>
+<span class="sourceLineNo">148</span>     */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    public long getRecordNumber() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        return recordNumber;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>     * Tells whether the record size matches the header size.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>     *<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     * &lt;p&gt;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>     * Returns true if the sizes for this record match and false if not. Some programs can export files that fail this<a name="line.157"></a>
+<span class="sourceLineNo">158</span>     * test but still produce parsable files.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     * &lt;/p&gt;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>     *<a name="line.160"></a>
+<span class="sourceLineNo">161</span>     * @return true of this record is valid, false if not<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     */<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    public boolean isConsistent() {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        return mapping == null || mapping.size() == values.length;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     * Checks whether this record has a comment, false otherwise.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * Note that comments are attached to the following record.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * If there is no following record (i.e. the comment is at EOF)<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     * the comment will be ignored.<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     *<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @return true if this record has a comment, false otherwise<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * @since 1.3<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean hasComment() {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        return comment != null;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     * Checks whether a given column is mapped, i.e. its name has been defined to the parser.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     *<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * @param name<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *            the name of the column to be retrieved.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     * @return whether a given column is mapped.<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    public boolean isMapped(final String name) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        return mapping != null &amp;&amp; mapping.containsKey(name);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     * Checks whether a given columns is mapped and has a value.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     * @param name<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     *            the name of the column to be retrieved.<a name="line.195"></a>
+<span class="sourceLineNo">196</span>     * @return whether a given columns is mapped and has a value<a name="line.196"></a>
+<span class="sourceLineNo">197</span>     */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    public boolean isSet(final String name) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        return isMapped(name) &amp;&amp; mapping.get(name).intValue() &lt; values.length;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * Returns an iterator over the values of this record.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     * @return an iterator over the values of this record.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>     */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    public Iterator&lt;String&gt; iterator() {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return toList().iterator();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>     * Puts all values of this record into the given Map.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>     *<a name="line.214"></a>
+<span class="sourceLineNo">215</span>     * @param map<a name="line.215"></a>
+<span class="sourceLineNo">216</span>     *            The Map to populate.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>     * @return the given map.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>     */<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    &lt;M extends Map&lt;String, String&gt;&gt; M putIn(final M map) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        if (mapping == null) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>            return map;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        for (final Entry&lt;String, Integer&gt; entry : mapping.entrySet()) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            final int col = entry.getValue().intValue();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            if (col &lt; values.length) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                map.put(entry.getKey(), values[col]);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        return map;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>    /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>     * Returns the number of values in this record.<a name="line.233"></a>
+<span class="sourceLineNo">234</span>     *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>     * @return the number of values.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>     */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    public int size() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        return values.length;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>     * Converts the values to a List.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>     *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>     * TODO: Maybe make this public?<a name="line.244"></a>
+<span class="sourceLineNo">245</span>     *<a name="line.245"></a>
+<span class="sourceLineNo">246</span>     * @return a new List<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    private List&lt;String&gt; toList() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        return Arrays.asList(values);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>     * Copies this record into a new Map. The new map is not connect<a name="line.253"></a>
+<span class="sourceLineNo">254</span>     *<a name="line.254"></a>
+<span class="sourceLineNo">255</span>     * @return A new Map. The map is empty if the record has no headers.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>     */<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    public Map&lt;String, String&gt; toMap() {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        return putIn(new HashMap&lt;String, String&gt;(values.length));<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>    /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span>     * Returns a string representation of the contents of this record. The result is constructed by comment, mapping,<a name="line.262"></a>
+<span class="sourceLineNo">263</span>     * recordNumber and by passing the internal values array to {@link Arrays#toString(Object[])}.<a name="line.263"></a>
+<span class="sourceLineNo">264</span>     *<a name="line.264"></a>
+<span class="sourceLineNo">265</span>     * @return a String representation of this record.<a name="line.265"></a>
+<span class="sourceLineNo">266</span>     */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public String toString() {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        return "CSVRecord [comment=" + comment + ", mapping=" + mapping +<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                ", recordNumber=" + recordNumber + ", values=" +<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                Arrays.toString(values) + "]";<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>    String[] values() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        return values;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>}<a name="line.278"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/QuoteMode.html
==============================================================================
--- websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/QuoteMode.html (added)
+++ websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/src-html/org/apache/commons/csv/QuoteMode.html Sun May 29 02:48:43 2016
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *      http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.commons.csv;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Defines quote behavior when printing.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> *<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * @version $Id: QuoteMode.java 1694977 2015-08-10 07:05:58Z ggregory $<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public enum QuoteMode {<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>     * Quotes all fields.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>     */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    ALL,<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>    /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>     * Quotes fields which contain special characters such as a delimiter, quotes character or any of the characters in<a name="line.32"></a>
+<span class="sourceLineNo">033</span>     * line separator.<a name="line.33"></a>
+<span class="sourceLineNo">034</span>     */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    MINIMAL,<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>    /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>     * Quotes all non-numeric fields.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>     */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    NON_NUMERIC,<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>    /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>     * Never quotes fields. When the delimiter occurs in data, the printer prefixes it with the current escape<a name="line.43"></a>
+<span class="sourceLineNo">044</span>     * character. If the escape character is not set, format validation throws an exception.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>     */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    NONE<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/stylesheet.css
==============================================================================
--- websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/stylesheet.css (added)
+++ websites/production/commons/content/proper/commons-csv/archives/1.4/apidocs/stylesheet.css Sun May 29 02:48:43 2016
@@ -0,0 +1,474 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:Arial, Helvetica, sans-serif;
+    font-size:76%;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-size:1.3em;
+}
+h1 {
+    font-size:1.8em;
+}
+h2 {
+    font-size:1.5em;
+}
+h3 {
+    font-size:1.4em;
+}
+h4 {
+    font-size:1.3em;
+}
+h5 {
+    font-size:1.2em;
+}
+h6 {
+    font-size:1.1em;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-size:1.2em;
+}
+dt code {
+    font-size:1.2em;
+}
+table tr td dt code {
+    font-size:1.2em;
+    vertical-align:top;
+}
+sup {
+    font-size:.6em;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:.8em;
+    z-index:200;
+    margin-top:-7px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    background-image:url(resources/titlebar.gif);
+    background-position:left top;
+    background-repeat:no-repeat;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:1em;
+    margin:0;
+}
+.topNav {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.bottomNav {
+    margin-top:10px;
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.subNav {
+    background-color:#dee3e9;
+    border-bottom:1px solid #9eadc0;
+    float:left;
+    width:100%;
+    overflow:hidden;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding:3px 6px;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+    font-size:90%;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+.navBarCell1Rev {
+    background-image:url(resources/tab.gif);
+    background-color:#a88834;
+    color:#FFFFFF;
+    margin: auto 5px;
+    border:1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader h1 {
+    font-size:1.3em;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 25px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:1.0em;
+}
+.indexContainer h2 {
+    font-size:1.1em;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:1.1em;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:10px 0 10px 20px;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:25px;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #9eadc0;
+    background-color:#f9f9f9;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:1px solid #9eadc0;
+    border-top:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+    border-bottom:1px solid #9eadc0;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+    border-bottom:1px solid #9eadc0;
+    width:100%;
+}
+.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+    width:100%;
+}
+.contentContainer .description table, .contentContainer .details table {
+    border-bottom:none;
+}
+.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
+    vertical-align:top;
+    padding-right:20px;
+}
+.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
+    padding-right:3px;
+}
+.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#FFFFFF;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    margin:0px;
+}
+caption a:link, caption a:hover, caption a:active, caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+    white-space:nowrap;
+    padding-top:8px;
+    padding-left:8px;
+    display:block;
+    float:left;
+    background-image:url(resources/titlebar.gif);
+    height:18px;
+}
+.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+    width:10px;
+    background-image:url(resources/titlebar_end.gif);
+    background-repeat:no-repeat;
+    background-position:top right;
+    position:relative;
+    float:left;
+}
+ul.blockList ul.blockList li.blockList table {
+    margin:0 0 12px 0px;
+    width:100%;
+}
+.tableSubHeadingColor {
+    background-color: #EEEEFF;
+}
+.altColor {
+    background-color:#eeeeef;
+}
+.rowColor {
+    background-color:#ffffff;
+}
+.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+    background:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+td.colFirst, th.colFirst {
+    border-left:1px solid #9eadc0;
+    white-space:nowrap;
+}
+td.colLast, th.colLast {
+    border-right:1px solid #9eadc0;
+}
+td.colOne, th.colOne {
+    border-right:1px solid #9eadc0;
+    border-left:1px solid #9eadc0;
+}
+table.overviewSummary  {
+    padding:0px;
+    margin-left:0px;
+}
+table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+    width:25%;
+    vertical-align:middle;
+}
+table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
+    width:25%;
+    vertical-align:middle;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:.9em;
+}
+.block {
+    display:block;
+    margin:3px 0 0 0;
+}
+.strong {
+    font-weight:bold;
+}
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-csv/archives/1.4/changes-report.html
==============================================================================
--- websites/production/commons/content/proper/commons-csv/archives/1.4/changes-report.html (added)
+++ websites/production/commons/content/proper/commons-csv/archives/1.4/changes-report.html Sun May 29 02:48:43 2016
@@ -0,0 +1,689 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 28 May 2016
+ | 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="20160528" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Commons CSV &#x2013; Release Notes</title>
+
+  <link rel="stylesheet" href="./css/bootstrap.min.css" type="text/css" />
+  <link rel="stylesheet" href="./css/site.css" type="text/css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+  <script type="text/javascript" src="./js/jquery.min.js"></script>
+  <script type="text/javascript" src="./js/bootstrap.min.js"></script>
+  <script type="text/javascript" src="./js/prettify.min.js"></script>
+  <script type="text/javascript" src="./js/site.js"></script>
+
+                            
+<link rel="stylesheet" type="text/css" media="all" href="./css/prettify.css"/>                                
+<script src="./js/prettify.js" type="text/javascript"></script>                                
+<script type="text/javascript">window.onload=function() {
+              prettyPrint();
+          }</script>                  
+      </head>
+
+  <body class="composite">
+                          <a href="http://commons.apache.org/" id="bannerLeft" title="Apache Commons logo">
+                                                                                        <img class="logo-left" src="./images/commons-logo.png"  alt="Apache Commons logo"/>
+                </a>
+                                              <a href="index.html" id="bannerRight" title="Commons CSV&trade; logo">
+                                                                                                <img class="logo-right" src="images/logo.png"  alt="Commons CSV&trade; logo"/>
+                </a>
+          <div class="clear"></div>
+
+    <div class="navbar">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <a class="brand" href="http://commons.apache.org/proper/commons-csv/">Apache Commons CSV &trade;</a>
+          <ul class="nav">      
+                    
+            <li id="publishDate">Last Published: 28 May 2016</li>
+      <li class="divider">|</li> <li id="projectVersion">Version: 1.4</li>
+  </ul>
+                    <div class="pull-right">  <ul class="nav">
+            <li>
+                  <a href="http://www.apachecon.com/" class="externalLink" title="ApacheCon">
+    ApacheCon</a>
+      </li>
+          <li>
+                  <a href="http://www.apache.org" class="externalLink" title="Apache">
+    Apache</a>
+      </li>
+          <li>
+                  <a href="../../" title="Commons">
+    Commons</a>
+      </li>
+    </ul>
+</div>
+        </div>
+      </div>
+    </div>
+
+    <div class="container-fluid">
+      <table class="layout-table">
+        <tr>
+          <td class="sidebar">
+            <div class="well sidebar-nav">
+                    <ul class="nav nav-list">
+                                  <li class="nav-header">Commons CSV</li>
+                                        <li class="none">
+                  <a href="index.html" title="Overview">
+    Overview</a>
+          </li>
+                             <li class="none">
+                  <a href="download_csv.cgi" title="Download">
+    Download</a>
+          </li>
+                             <li class="none">
+                  <a href="user-guide.html" title="User Guide">
+    User Guide</a>
+          </li>
+                             <li class="none">
+                  <a href="http://wiki.apache.org/commons/CSV" class="externalLink" title="Wiki">
+    Wiki</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                        <li class="nav-header"><i class="icon-cog"></i>Development</li>
+                                          <li class="none active">
+                  <a href="changes-report.html" title="History">
+    History</a>
+          </li>
+                             <li class="none">
+                  <a href="mail-lists.html" title="Mailing Lists">
+    Mailing Lists</a>
+          </li>
+                             <li class="none">
+                  <a href="issue-tracking.html" title="Issue Tracking">
+    Issue Tracking</a>
+          </li>
+                             <li class="none">
+                  <a href="team-list.html" title="Team">
+    Team</a>
+          </li>
+                             <li class="none">
+                  <a href="source-repository.html" title="Source Repository">
+    Source Repository</a>
+          </li>
+                             <li class="none">
+                  <a href="apidocs/index.html" title="Javadoc trunk">
+    Javadoc trunk</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.4/apidocs/index.html" title="Javadoc 1.4">
+    Javadoc 1.4</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.3/apidocs/index.html" title="Javadoc 1.3">
+    Javadoc 1.3</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.2/apidocs/index.html" title="Javadoc 1.2">
+    Javadoc 1.2</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.1/apidocs/index.html" title="Javadoc 1.1">
+    Javadoc 1.1</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.0/apidocs/index.html" title="Javadoc 1.0">
+    Javadoc 1.0</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">Site Archives</li>
+                                        <li class="none">
+                  <a href="archives/1.4/index.html" title="CSV 1.4">
+    CSV 1.4</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.3/index.html" title="CSV 1.3">
+    CSV 1.3</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.2/index.html" title="CSV 1.2">
+    CSV 1.2</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.1/index.html" title="CSV 1.1">
+    CSV 1.1</a>
+          </li>
+                             <li class="none">
+                  <a href="archives/1.0/index.html" title="CSV 1.0">
+    CSV 1.0</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                        <li class="nav-header"><i class="icon-info-sign"></i>Project Documentation</li>
+                                                                                                                                                                                                                                                                              <li class="collapsed">
+                  <a href="project-info.html" title="Project Information">
+    Project Information</a>
+                    </li>
+                                                                                                                                                                                                                                                                                                                                                     <li class="expanded">
+                  <a href="project-reports.html" title="Project Reports">
+    Project Reports</a>
+                    <ul>
+                                    <li class="none active">
+                  <a href="changes-report.html" title="Changes">
+    Changes</a>
+          </li>
+                                     <li class="none">
+                  <a href="jira-report.html" title="JIRA Report">
+    JIRA Report</a>
+          </li>
+                                     <li class="none">
+                  <a href="apidocs/index.html" title="JavaDocs">
+    JavaDocs</a>
+          </li>
+                                     <li class="none">
+                  <a href="xref/index.html" title="Source Xref">
+    Source Xref</a>
+          </li>
+                                     <li class="none">
+                  <a href="xref-test/index.html" title="Test Source Xref">
+    Test Source Xref</a>
+          </li>
+                                     <li class="none">
+                  <a href="surefire-report.html" title="Surefire Report">
+    Surefire Report</a>
+          </li>
+                                     <li class="none">
+                  <a href="rat-report.html" title="Rat Report">
+    Rat Report</a>
+          </li>
+                                     <li class="none">
+                  <a href="clirr-report.html" title="Clirr">
+    Clirr</a>
+          </li>
+                                     <li class="none">
+                  <a href="jdepend-report.html" title="JDepend">
+    JDepend</a>
+          </li>
+                                     <li class="none">
+                  <a href="jacoco/index.html" title="JaCoCo Test">
+    JaCoCo Test</a>
+          </li>
+                                     <li class="none">
+                  <a href="checkstyle.html" title="Checkstyle">
+    Checkstyle</a>
+          </li>
+                                     <li class="none">
+                  <a href="pmd.html" title="PMD">
+    PMD</a>
+          </li>
+                                     <li class="none">
+                  <a href="findbugs.html" title="FindBugs">
+    FindBugs</a>
+          </li>
+                                     <li class="none">
+                  <a href="taglist.html" title="Tag List">
+    Tag List</a>
+          </li>
+                                     <li class="none">
+                  <a href="javancss.html" title="JavaNCSS Report">
+    JavaNCSS Report</a>
+          </li>
+                     </ul>
+              </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">Commons</li>
+                                        <li class="none">
+                  <a href="../../" title="Home">
+    Home</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/licenses/" class="externalLink" title="License">
+    License</a>
+          </li>
+                                                                               <li class="collapsed">
+                  <a href="../../components.html" title="Components">
+    Components</a>
+                    </li>
+                                                                               <li class="collapsed">
+                  <a href="../../sandbox/index.html" title="Sandbox">
+    Sandbox</a>
+                    </li>
+                                                                               <li class="collapsed">
+                  <a href="../../dormant/index.html" title="Dormant">
+    Dormant</a>
+                    </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">General Information</li>
+                                        <li class="none">
+                  <a href="../../security.html" title="Security">
+    Security</a>
+          </li>
+                             <li class="none">
+                  <a href="../../volunteering.html" title="Volunteering">
+    Volunteering</a>
+          </li>
+                             <li class="none">
+                  <a href="../../patches.html" title="Contributing Patches">
+    Contributing Patches</a>
+          </li>
+                             <li class="none">
+                  <a href="../../building.html" title="Building Components">
+    Building Components</a>
+          </li>
+                             <li class="none">
+                  <a href="../../commons-parent-pom.html" title="Commons Parent Pom">
+    Commons Parent Pom</a>
+          </li>
+                             <li class="none">
+                  <a href="../../build-plugin/index.html" title="Commons Build Plugin">
+    Commons Build Plugin</a>
+          </li>
+                             <li class="none">
+                  <a href="../../releases/index.html" title="Releasing Components">
+    Releasing Components</a>
+          </li>
+                             <li class="none">
+                  <a href="http://wiki.apache.org/commons/FrontPage" class="externalLink" title="Wiki">
+    Wiki</a>
+          </li>
+                 </ul>
+      <ul class="nav nav-list">
+                                  <li class="nav-header">ASF</li>
+                                        <li class="none">
+                  <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works">
+    How the ASF works</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">
+    Get Involved</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/dev/" class="externalLink" title="Developer Resources">
+    Developer Resources</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
+    Sponsorship</a>
+          </li>
+                             <li class="none">
+                  <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+    Thanks</a>
+          </li>
+                 </ul>
+              </div>
+            <div id="poweredBy">
+                                                                                                                    <a href="http://www.apache.org/events/current-event.html" title="ApacheCon" class="builtBy">
+        <img class="builtBy"  alt="ApacheCon" src="http://www.apache.org/events/current-event-125x125.png"    />
+      </a>
+                                                                                                    <a href="http://maven.apache.org/" title="Maven" class="builtBy">
+        <img class="builtBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                      </div>
+          </td>
+          <td class="content">
+            <div class="section">
+<h2><a name="Release_Notes"></a>Release Notes</h2>
+<div class="section">
+<h3><a name="Release_History"></a>Release History</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Version</th>
+<th>Date</th>
+<th>Description</th></tr>
+<tr class="b">
+<td><a href="#a1.4">1.4</a></td>
+<td>2016-MM-DD</td>
+<td>Feature and bug fix release</td></tr>
+<tr class="a">
+<td><a href="#a1.3">1.3</a></td>
+<td>2016-05-09</td>
+<td>Feature and bug fix release</td></tr>
+<tr class="b">
+<td><a href="#a1.2">1.2</a></td>
+<td>2015-08-24</td>
+<td>Feature and bug fix release</td></tr>
+<tr class="a">
+<td><a href="#a1.1">1.1</a></td>
+<td>2014-11-16</td>
+<td>Feature and bug fix release</td></tr>
+<tr class="b">
+<td><a href="#a1.0">1.0</a></td>
+<td>2014-08-14</td>
+<td>First release</td></tr></table></div>
+<div class="section">
+<h3 id="a1.4">Release 1.4 &#x2013; 2016-MM-DD</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Type</th>
+<th>Changes</th>
+<th>By</th></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Make CSVPrinter.print(Object) GC-free. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-181">CSV-181</a>. Thanks to Gary Gregory.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Allow some printing operations directly from CSVFormat. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-182">CSV-182</a>. Thanks to Gary Gregory.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Drop ferc.gov tests. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-183">CSV-183</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr></table></div>
+<div class="section">
+<h3 id="a1.3">Release 1.3 &#x2013; 2016-05-09</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Type</th>
+<th>Changes</th>
+<th>By</th></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add shortcut method for using first record as header to CSVFormat Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-179">CSV-179</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add withHeader(Class&lt;? extends Enum&gt;) to CSVFormat Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-180">CSV-180</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Comment line hides next record; update Javadoc to make behaviour clear Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-167">CSV-167</a>. Thanks to Rene.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>CSVPrinter doesn't skip creation of header record if skipHeaderRecord is set to true Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-153">CSV-153</a>. Thanks to Wren.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add IgnoreCase option for accessing header names Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-159">CSV-159</a>. Thanks to Yamil Medina.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>The null string should be case-sensitive when reading records Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-169">CSV-169</a>. Thanks to Gary Gregory.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat.nullString should not be escaped Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-168">CSV-168</a>. Thanks to Gary Gregory, cornel creanga.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat.MYSQL nullString should be &quot;\N&quot; Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-170">CSV-170</a>. Thanks to Gary Gregory, cornel creanga.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Fix Javadoc to say CSVFormat with() methods return a new CSVFormat Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-161">CSV-161</a>. Thanks to Gary Gregory, Kristof Meixner, Emmanuel Bourg.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Support for ignoring trailing delimiter. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-175">CSV-175</a>. Thanks to Gary Gregory, Chris Jones.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Support trimming leading and trailing blanks. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-177">CSV-177</a>. Thanks to Gary Gregory.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Create default formats for Informix UNLOAD and UNLOAD CSV. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-178">CSV-178</a>. Thanks to Gary Gregory.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr></table></div>
+<div class="section">
+<h3 id="a1.2">Release 1.2 &#x2013; 2015-08-24</h3>
+<table border="0" class="bodyTable">
+<tr class="b">
+<th>Type</th>
+<th>Changes</th>
+<th>By</th></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat.with* methods clear the header comments Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-145">CSV-145</a>. Thanks to Frank Ulbricht.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Incorrect Javadoc on QuoteMode.NONE Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-156">CSV-156</a>. Thanks to Jason Steenstra-Pickens.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add enum CSVFormat.Predefined that contains the default CSVFormat values. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-157">CSV-157</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr></table></div>
+<div class="section">
+<h3 id="a1.1">Release 1.1 &#x2013; 2014-11-16</h3>
+<table border="0" class="bodyTable">
+<tr class="b">
+<th>Type</th>
+<th>Changes</th>
+<th>By</th></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet) Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-140">CSV-140</a>. Thanks to Damjan Jovanovic.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...) Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-130">CSV-130</a>. Thanks to Sergei Lebedev.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat.EXCEL should ignore empty header names Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-128">CSV-128</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote() Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-132">CSV-132</a>. Thanks to Sascha Szott.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Improve toString() implementation of CSVRecord Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-124">CSV-124</a>. Thanks to Kalyan.</td>
+<td><a href="team-list.html#brentworden">brentworden</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Unified parameter validation Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-134">CSV-134</a>. Thanks to wu wen.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add CSVFormat#with 0-arg methods matching boolean arg methods Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-129">CSV-129</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Save positions of records to enable random access Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-131">CSV-131</a>. Thanks to Holger Stratmann.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>CSVPrinter.printRecord(ResultSet) with metadata Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-139">CSV-139</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr></table></div>
+<div class="section">
+<h3 id="a1.0">Release 1.0 &#x2013; 2014-08-14</h3>
+<table border="0" class="bodyTable">
+<tr class="b">
+<th>Type</th>
+<th>Changes</th>
+<th>By</th></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>No longer works with Java 6 Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-125">CSV-125</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>NullPointerException when empty header string and and null string of &quot;&quot; Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-122">CSV-122</a>. Thanks to Mike Lewis.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Validate format parameters in constructor Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-117">CSV-117</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>IllegalArgumentException thrown when the header contains duplicate names when the column names are empty. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-121">CSV-121</a>. Thanks to Sebastian Hardt.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>CSVFormat#withHeader doesn't work with CSVPrinter Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-120">CSV-120</a>. Thanks to Sergei Lebedev.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>CSVFormat is missing a print(...) method Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-119">CSV-119</a>. Thanks to Sergei Lebedev.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVRecord.toMap() throws NPE on formats with no
+        headers. Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-118">CSV-118</a>. Thanks to Enrique Lara.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Check whether ISE/IAE are being used appropriately Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-113">CSV-113</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat constructor should reject a header array with duplicate
+        entries Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-114">CSV-114</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>HeaderMap is inconsistent when it is parsed from an input with
+        duplicate columns names Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-112">CSV-112</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVRecord.toMap() fails if row length shorter than header length Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-111">CSV-111</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat.format allways append null Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-106">CSV-106</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Add Map conversion API to CSVRecord Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-105">CSV-105</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVParser: getHeaderMap throws NPE Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-100">CSV-100</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Lots of possible changes Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-42">CSV-42</a>. Thanks to Bob Smith.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Use Character instead of char for char fields except delimiter Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-78">CSV-78</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Revert Builder implementation in CSVFormat Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-99">CSV-99</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVRecord does not verify that the length of the header mapping
+        matches the number of values Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-53">CSV-53</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Allow the handling of NULL values Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-93">CSV-93</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Use the Builder pattern for CSVFormat Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-68">CSV-68</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Clarify comment handling Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-84">CSV-84</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>CSVParser.nextValue() seems pointless Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-25">CSV-25</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Allow the String value for null to be customized for the CSV
+        printer Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-97">CSV-97</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Not possible to create a CSVFormat from scratch Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-88">CSV-88</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Keep track of record number Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-52">CSV-52</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Lexer should only use char fields Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-94">CSV-94</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Need a way to extract parsed headers, e.g. for use in formatting
+        output Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-92">CSV-92</a>.</td>
+<td><a href="team-list.html#ggregory">ggregory</a></td></tr>
+<tr class="b">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Header support Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-65">CSV-65</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Confusing semantic of the ignore leading/trailing spaces parameters Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-54">CSV-54</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Add convenience methods to CSVLexer Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-71">CSV-71</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Is CharBuffer really needed, now that StringBuilder is available? Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-59">CSV-59</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Replace while(true)-loop in CSVParser.getRecord with do-while-loop Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-55">CSV-55</a>.</td>
+<td><a href="team-list.html#britter">britter</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>CSVFormat describes itself as immutable, but it is not - in
+        particular it is not thread-safe Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-34">CSV-34</a>.</td>
+<td><a href="team-list.html#sebb">sebb</a></td></tr>
+<tr class="b">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Endless loops in CSV parser Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-36">CSV-36</a>.</td>
+<td><a href="team-list.html#yonik">yonik</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>NullPointerException in CSVPrinter.print()/println() Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-13">CSV-13</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>CSVPrinter overhaul Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-45">CSV-45</a>.</td>
+<td><a href="team-list.html#yonik">yonik</a></td></tr>
+<tr class="a">
+<td><img src="images/fix.gif" alt="Fix" title="Fix" /></td>
+<td>Excel strategy uses wrong separator Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-23">CSV-23</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>CSVStrategy has modifiable public static variables Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-49">CSV-49</a>. Thanks to Bob Smith.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="a">
+<td><img src="images/add.gif" alt="Add" title="Add" /></td>
+<td>Predefined format for MYSQL Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-48">CSV-48</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Reduce visibility of methods in internal classes Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-46">CSV-46</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr>
+<tr class="a">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>ExtendedBufferedReader does too much Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-26">CSV-26</a>.</td>
+<td><a href="team-list.html#jacopoc">jacopoc</a></td></tr>
+<tr class="b">
+<td><img src="images/update.gif" alt="Update" title="Update" /></td>
+<td>Decide whether to keep the csv.writer subpackage Fixes <a class="externalLink" href="http://issues.apache.org/jira/browse/CSV-27">CSV-27</a>.</td>
+<td><a href="team-list.html#ebourg">ebourg</a></td></tr></table></div></div>
+          </td>
+        </tr>
+      </table>
+    </div>
+
+    <div class="footer">
+      <p>Copyright &copy;                    2016
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All Rights Reserved.</p>
+                                                                  
+<div class="center">Apache Commons, Apache Commons CSV, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation.
+      All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
+                              </div>
+  </body>
+
+</html>
\ No newline at end of file



Mime
View raw message