Modified:
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVParser.java.html
==============================================================================
---
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVParser.java.html
(original)
+++
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVParser.java.html
Wed Sep 25 02:11:29 2024
@@ -72,7 +72,7 @@ import org.apache.commons.io.function.Un
* For those who like fluent APIs, parsers can be created using {@link
CSVFormat#parse(java.io.Reader)} as a shortcut:
* </p>
* <pre>
- * for(CSVRecord record : CSVFormat.EXCEL.parse(in)) {
+ * for (CSVRecord record : CSVFormat.EXCEL.parse(in)) {
* ...
* }
* </pre>
@@ -82,12 +82,12 @@ import org.apache.commons.io.function.Un
* To parse a CSV input from a file, you write:
* </p>
*
- * <pre>
- * File csvData = new File(&quot;/path/to/csv&quot;);
+ * <pre>{@code
+ * File csvData = new File("/path/to/csv");
* CSVParser parser = CSVParser.parse(csvData, CSVFormat.RFC4180);
* for (CSVRecord csvRecord : parser) {
* ...
- * }
+ * }}
* </pre>
*
* <p>
@@ -116,11 +116,11 @@ import org.apache.commons.io.function.Un
* If parsing record-wise is not desired, the contents of the input can be
read completely into memory.
* </p>
*
- * <pre>
- * Reader in = new StringReader(&quot;a;b\nc;d&quot;);
+ * <pre>{@code
+ * Reader in = new StringReader("a;b\nc;d");
* CSVParser parser = new CSVParser(in, CSVFormat.EXCEL);
- * List&lt;CSVRecord&gt; list = parser.getRecords();
- * </pre>
+ * List<CSVRecord> list = parser.getRecords();
+ * }</pre>
*
* <p>
* There are two constraints that have to be kept in mind:
@@ -145,44 +145,49 @@ public final class CSVParser implements
<span class="fc" id="L145"> final class CSVRecordIterator implements
Iterator<CSVRecord> {</span>
private CSVRecord current;
+ /**
+ * Gets the next record.
+ *
+ * @return the next record.
+ */
private CSVRecord getNextRecord() {
-<span class="fc" id="L149"> return
Uncheck.get(CSVParser.this::nextRecord);</span>
+<span class="fc" id="L154"> return
Uncheck.get(CSVParser.this::nextRecord);</span>
}
@Override
public boolean hasNext() {
-<span class="fc bfc" id="L154" title="All 2 branches covered."> if
(CSVParser.this.isClosed()) {</span>
-<span class="fc" id="L155"> return false;</span>
+<span class="fc bfc" id="L159" title="All 2 branches covered."> if
(isClosed()) {</span>
+<span class="fc" id="L160"> return false;</span>
}
-<span class="fc bfc" id="L157" title="All 2 branches covered."> if
(current == null) {</span>
-<span class="fc" id="L158"> current = getNextRecord();</span>
+<span class="fc bfc" id="L162" title="All 2 branches covered."> if
(current == null) {</span>
+<span class="fc" id="L163"> current = getNextRecord();</span>
}
-<span class="fc bfc" id="L161" title="All 2 branches covered.">
return current != null;</span>
+<span class="fc bfc" id="L166" title="All 2 branches covered.">
return current != null;</span>
}
@Override
public CSVRecord next() {
-<span class="fc bfc" id="L166" title="All 2 branches covered."> if
(CSVParser.this.isClosed()) {</span>
-<span class="fc" id="L167"> throw new
NoSuchElementException("CSVParser has been closed");</span>
+<span class="fc bfc" id="L171" title="All 2 branches covered."> if
(isClosed()) {</span>
+<span class="fc" id="L172"> throw new
NoSuchElementException("CSVParser has been closed");</span>
}
-<span class="fc" id="L169"> CSVRecord next = current;</span>
-<span class="fc" id="L170"> current = null;</span>
+<span class="fc" id="L174"> CSVRecord next = current;</span>
+<span class="fc" id="L175"> current = null;</span>
-<span class="fc bfc" id="L172" title="All 2 branches covered."> if
(next == null) {</span>
+<span class="fc bfc" id="L177" title="All 2 branches covered."> if
(next == null) {</span>
// hasNext() wasn't called before
-<span class="fc" id="L174"> next = getNextRecord();</span>
-<span class="fc bfc" id="L175" title="All 2 branches covered.">
if (next == null) {</span>
-<span class="fc" id="L176"> throw new
NoSuchElementException("No more CSV records available");</span>
+<span class="fc" id="L179"> next = getNextRecord();</span>
+<span class="fc bfc" id="L180" title="All 2 branches covered.">
if (next == null) {</span>
+<span class="fc" id="L181"> throw new
NoSuchElementException("No more CSV records available");</span>
}
}
-<span class="fc" id="L180"> return next;</span>
+<span class="fc" id="L185"> return next;</span>
}
@Override
public void remove() {
-<span class="fc" id="L185"> throw new
UnsupportedOperationException();</span>
+<span class="fc" id="L190"> throw new
UnsupportedOperationException();</span>
}
}
@@ -201,10 +206,10 @@ public final class CSVParser implements
*/
final List<String> headerNames;
-<span class="fc" id="L204"> Headers(final Map<String, Integer>
headerMap, final List<String> headerNames) {</span>
-<span class="fc" id="L205"> this.headerMap = headerMap;</span>
-<span class="fc" id="L206"> this.headerNames = headerNames;</span>
-<span class="fc" id="L207"> }</span>
+<span class="fc" id="L209"> Headers(final Map<String, Integer>
headerMap, final List<String> headerNames) {</span>
+<span class="fc" id="L210"> this.headerMap = headerMap;</span>
+<span class="fc" id="L211"> this.headerNames = headerNames;</span>
+<span class="fc" id="L212"> }</span>
}
/**
@@ -221,10 +226,11 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either file or format are null.
* @throws IOException
* If an I/O error occurs
+ * @throws CSVException Thrown on invalid input.
*/
public static CSVParser parse(final File file, final Charset charset,
final CSVFormat format) throws IOException {
-<span class="fc" id="L226"> Objects.requireNonNull(file,
"file");</span>
-<span class="fc" id="L227"> return parse(file.toPath(), charset,
format);</span>
+<span class="fc" id="L232"> Objects.requireNonNull(file,
"file");</span>
+<span class="fc" id="L233"> return parse(file.toPath(), charset,
format);</span>
}
/**
@@ -246,14 +252,15 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either reader or format are null.
* @throws IOException
* If there is a problem reading the header or skipping the
first record
+ * @throws CSVException Thrown on invalid input.
* @since 1.5
*/
@SuppressWarnings("resource")
public static CSVParser parse(final InputStream inputStream, final Charset
charset, final CSVFormat format)
throws IOException {
-<span class="fc" id="L254"> Objects.requireNonNull(inputStream,
"inputStream");</span>
-<span class="fc" id="L255"> Objects.requireNonNull(format,
"format");</span>
-<span class="fc" id="L256"> return parse(new
InputStreamReader(inputStream, charset), format);</span>
+<span class="fc" id="L261"> Objects.requireNonNull(inputStream,
"inputStream");</span>
+<span class="fc" id="L262"> Objects.requireNonNull(format,
"format");</span>
+<span class="fc" id="L263"> return parse(new
InputStreamReader(inputStream, charset), format);</span>
}
/**
@@ -270,13 +277,14 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either file or format are null.
* @throws IOException
* If an I/O error occurs
+ * @throws CSVException Thrown on invalid input.
* @since 1.5
*/
@SuppressWarnings("resource")
public static CSVParser parse(final Path path, final Charset charset,
final CSVFormat format) throws IOException {
-<span class="fc" id="L277"> Objects.requireNonNull(path,
"path");</span>
-<span class="fc" id="L278"> Objects.requireNonNull(format,
"format");</span>
-<span class="fc" id="L279"> return parse(Files.newInputStream(path),
charset, format);</span>
+<span class="fc" id="L285"> Objects.requireNonNull(path,
"path");</span>
+<span class="fc" id="L286"> Objects.requireNonNull(format,
"format");</span>
+<span class="fc" id="L287"> return parse(Files.newInputStream(path),
charset, format);</span>
}
/**
@@ -296,10 +304,11 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either reader or format are null.
* @throws IOException
* If there is a problem reading the header or skipping the
first record
+ * @throws CSVException Thrown on invalid input.
* @since 1.5
*/
public static CSVParser parse(final Reader reader, final CSVFormat format)
throws IOException {
-<span class="fc" id="L302"> return new CSVParser(reader, format);</span>
+<span class="fc" id="L311"> return new CSVParser(reader, format);</span>
}
/**
@@ -314,12 +323,13 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either string or format are null.
* @throws IOException
* If an I/O error occurs
+ * @throws CSVException Thrown on invalid input.
*/
public static CSVParser parse(final String string, final CSVFormat format)
throws IOException {
-<span class="fc" id="L319"> Objects.requireNonNull(string,
"string");</span>
-<span class="fc" id="L320"> Objects.requireNonNull(format,
"format");</span>
+<span class="fc" id="L329"> Objects.requireNonNull(string,
"string");</span>
+<span class="fc" id="L330"> Objects.requireNonNull(format,
"format");</span>
-<span class="fc" id="L322"> return new CSVParser(new
StringReader(string), format);</span>
+<span class="fc" id="L332"> return new CSVParser(new
StringReader(string), format);</span>
}
/**
@@ -341,14 +351,15 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either url, charset or format are null.
* @throws IOException
* If an I/O error occurs
+ * @throws CSVException Thrown on invalid input.
*/
@SuppressWarnings("resource")
public static CSVParser parse(final URL url, final Charset charset, final
CSVFormat format) throws IOException {
-<span class="fc" id="L347"> Objects.requireNonNull(url,
"url");</span>
-<span class="fc" id="L348"> Objects.requireNonNull(charset,
"charset");</span>
-<span class="fc" id="L349"> Objects.requireNonNull(format,
"format");</span>
+<span class="fc" id="L358"> Objects.requireNonNull(url,
"url");</span>
+<span class="fc" id="L359"> Objects.requireNonNull(charset,
"charset");</span>
+<span class="fc" id="L360"> Objects.requireNonNull(format,
"format");</span>
-<span class="fc" id="L351"> return new CSVParser(new
InputStreamReader(url.openStream(), charset), format);</span>
+<span class="fc" id="L362"> return new CSVParser(new
InputStreamReader(url.openStream(), charset), format);</span>
}
private String headerComment;
@@ -364,7 +375,7 @@ public final class CSVParser implements
private final CSVRecordIterator csvRecordIterator;
/** A record buffer for getRecord(). Grows as necessary and is reused. */
-<span class="fc" id="L367"> private final List<String> recordList =
new ArrayList<>();</span>
+<span class="fc" id="L378"> private final List<String> recordList =
new ArrayList<>();</span>
/**
* The next record number to assign.
@@ -377,7 +388,7 @@ public final class CSVParser implements
*/
private final long characterOffset;
-<span class="fc" id="L380"> private final Token reusableToken = new
Token();</span>
+<span class="fc" id="L391"> private final Token reusableToken = new
Token();</span>
/**
* Constructs a new instance using the given {@link CSVFormat}
@@ -395,10 +406,11 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either reader or format are null.
* @throws IOException
* If there is a problem reading the header or skipping the
first record
+ * @throws CSVException Thrown on invalid input.
*/
public CSVParser(final Reader reader, final CSVFormat format) throws
IOException {
-<span class="fc" id="L400"> this(reader, format, 0, 1);</span>
-<span class="fc" id="L401"> }</span>
+<span class="fc" id="L412"> this(reader, format, 0, 1);</span>
+<span class="fc" id="L413"> }</span>
/**
* Constructs a new instance using the given {@link CSVFormat}
@@ -420,28 +432,29 @@ public final class CSVParser implements
* If the parameters of the format are inconsistent or if
either the reader or format is null.
* @throws IOException
* If there is a problem reading the header or skipping the
first record
+ * @throws CSVException Thrown on invalid input.
* @since 1.1
*/
@SuppressWarnings("resource")
public CSVParser(final Reader reader, final CSVFormat format, final long
characterOffset, final long recordNumber)
-<span class="fc" id="L427"> throws IOException {</span>
-<span class="fc" id="L428"> Objects.requireNonNull(reader,
"reader");</span>
-<span class="fc" id="L429"> Objects.requireNonNull(format,
"format");</span>
-<span class="fc" id="L430"> this.format = format.copy();</span>
-<span class="fc" id="L431"> this.lexer = new Lexer(format, new
ExtendedBufferedReader(reader));</span>
-<span class="fc" id="L432"> this.csvRecordIterator = new
CSVRecordIterator();</span>
-<span class="fc" id="L433"> this.headers = createHeaders();</span>
-<span class="fc" id="L434"> this.characterOffset =
characterOffset;</span>
-<span class="fc" id="L435"> this.recordNumber = recordNumber - 1;</span>
-<span class="fc" id="L436"> }</span>
+<span class="fc" id="L440"> throws IOException {</span>
+<span class="fc" id="L441"> Objects.requireNonNull(reader,
"reader");</span>
+<span class="fc" id="L442"> Objects.requireNonNull(format,
"format");</span>
+<span class="fc" id="L443"> this.format = format.copy();</span>
+<span class="fc" id="L444"> this.lexer = new Lexer(format, new
ExtendedBufferedReader(reader));</span>
+<span class="fc" id="L445"> this.csvRecordIterator = new
CSVRecordIterator();</span>
+<span class="fc" id="L446"> this.headers = createHeaders();</span>
+<span class="fc" id="L447"> this.characterOffset =
characterOffset;</span>
+<span class="fc" id="L448"> this.recordNumber = recordNumber - 1;</span>
+<span class="fc" id="L449"> }</span>
private void addRecordValue(final boolean lastRecord) {
-<span class="fc" id="L439"> final String input =
format.trim(reusableToken.content.toString());</span>
-<span class="fc bfc" id="L440" title="All 6 branches covered."> if
(lastRecord && input.isEmpty() &&
format.getTrailingDelimiter()) {</span>
-<span class="fc" id="L441"> return;</span>
+<span class="fc" id="L452"> final String input =
format.trim(reusableToken.content.toString());</span>
+<span class="fc bfc" id="L453" title="All 6 branches covered."> if
(lastRecord && input.isEmpty() &&
format.getTrailingDelimiter()) {</span>
+<span class="fc" id="L454"> return;</span>
}
-<span class="fc" id="L443"> recordList.add(handleNull(input));</span>
-<span class="fc" id="L444"> }</span>
+<span class="fc" id="L456"> recordList.add(handleNull(input));</span>
+<span class="fc" id="L457"> }</span>
/**
* Closes resources.
@@ -451,13 +464,13 @@ public final class CSVParser implements
*/
@Override
public void close() throws IOException {
-<span class="fc" id="L454"> lexer.close();</span>
-<span class="fc" id="L455"> }</span>
+<span class="fc" id="L467"> lexer.close();</span>
+<span class="fc" id="L468"> }</span>
private Map<String, Integer> createEmptyHeaderMap() {
-<span class="fc bfc" id="L458" title="All 2 branches covered."> return
format.getIgnoreHeaderCase() ?</span>
-<span class="fc" id="L459"> new
TreeMap<>(String.CASE_INSENSITIVE_ORDER) :</span>
-<span class="fc" id="L460"> new LinkedHashMap<>();</span>
+<span class="fc bfc" id="L471" title="All 2 branches covered."> return
format.getIgnoreHeaderCase() ?</span>
+<span class="fc" id="L472"> new
TreeMap<>(String.CASE_INSENSITIVE_ORDER) :</span>
+<span class="fc" id="L473"> new LinkedHashMap<>();</span>
}
/**
@@ -465,67 +478,68 @@ public final class CSVParser implements
*
* @return null if the format has no header.
* @throws IOException if there is a problem reading the header or
skipping the first record
+ * @throws CSVException Thrown on invalid input.
*/
private Headers createHeaders() throws IOException {
-<span class="fc" id="L470"> Map<String, Integer> hdrMap =
null;</span>
-<span class="fc" id="L471"> List<String> headerNames =
null;</span>
-<span class="fc" id="L472"> final String[] formatHeader =
format.getHeader();</span>
-<span class="fc bfc" id="L473" title="All 2 branches covered."> if
(formatHeader != null) {</span>
-<span class="fc" id="L474"> hdrMap = createEmptyHeaderMap();</span>
-<span class="fc" id="L475"> String[] headerRecord = null;</span>
-<span class="fc bfc" id="L476" title="All 2 branches covered."> if
(formatHeader.length == 0) {</span>
+<span class="fc" id="L484"> Map<String, Integer> hdrMap =
null;</span>
+<span class="fc" id="L485"> List<String> headerNames =
null;</span>
+<span class="fc" id="L486"> final String[] formatHeader =
format.getHeader();</span>
+<span class="fc bfc" id="L487" title="All 2 branches covered."> if
(formatHeader != null) {</span>
+<span class="fc" id="L488"> hdrMap = createEmptyHeaderMap();</span>
+<span class="fc" id="L489"> String[] headerRecord = null;</span>
+<span class="fc bfc" id="L490" title="All 2 branches covered."> if
(formatHeader.length == 0) {</span>
// read the header from the first line of the file
-<span class="fc" id="L478"> final CSVRecord nextRecord =
nextRecord();</span>
-<span class="fc bfc" id="L479" title="All 2 branches covered.">
if (nextRecord != null) {</span>
-<span class="fc" id="L480"> headerRecord =
nextRecord.values();</span>
-<span class="fc" id="L481"> headerComment =
nextRecord.getComment();</span>
+<span class="fc" id="L492"> final CSVRecord nextRecord =
nextRecord();</span>
+<span class="fc bfc" id="L493" title="All 2 branches covered.">
if (nextRecord != null) {</span>
+<span class="fc" id="L494"> headerRecord =
nextRecord.values();</span>
+<span class="fc" id="L495"> headerComment =
nextRecord.getComment();</span>
}
-<span class="fc" id="L483"> } else {</span>
-<span class="fc bfc" id="L484" title="All 2 branches covered.">
if (format.getSkipHeaderRecord()) {</span>
-<span class="fc" id="L485"> final CSVRecord nextRecord =
nextRecord();</span>
-<span class="pc bpc" id="L486" title="1 of 2 branches missed.">
if (nextRecord != null) {</span>
-<span class="fc" id="L487"> headerComment =
nextRecord.getComment();</span>
+<span class="fc" id="L497"> } else {</span>
+<span class="fc bfc" id="L498" title="All 2 branches covered.">
if (format.getSkipHeaderRecord()) {</span>
+<span class="fc" id="L499"> final CSVRecord nextRecord =
nextRecord();</span>
+<span class="pc bpc" id="L500" title="1 of 2 branches missed.">
if (nextRecord != null) {</span>
+<span class="fc" id="L501"> headerComment =
nextRecord.getComment();</span>
}
}
-<span class="fc" id="L490"> headerRecord = formatHeader;</span>
+<span class="fc" id="L504"> headerRecord = formatHeader;</span>
}
// build the name to index mappings
-<span class="fc bfc" id="L494" title="All 2 branches covered."> if
(headerRecord != null) {</span>
+<span class="fc bfc" id="L508" title="All 2 branches covered."> if
(headerRecord != null) {</span>
// Track an occurrence of a null, empty or blank header.
-<span class="fc" id="L496"> boolean observedMissing =
false;</span>
-<span class="fc bfc" id="L497" title="All 2 branches covered.">
for (int i = 0; i < headerRecord.length; i++) {</span>
-<span class="fc" id="L498"> final String header =
headerRecord[i];</span>
-<span class="fc" id="L499"> final boolean blankHeader =
CSVFormat.isBlank(header);</span>
-<span class="fc bfc" id="L500" title="All 4 branches covered.">
if (blankHeader && !format.getAllowMissingColumnNames()) {</span>
-<span class="fc" id="L501"> throw new
IllegalArgumentException(</span>
-<span class="fc" id="L502"> "A header name is
missing in " + Arrays.toString(headerRecord));</span>
+<span class="fc" id="L510"> boolean observedMissing =
false;</span>
+<span class="fc bfc" id="L511" title="All 2 branches covered.">
for (int i = 0; i < headerRecord.length; i++) {</span>
+<span class="fc" id="L512"> final String header =
headerRecord[i];</span>
+<span class="fc" id="L513"> final boolean blankHeader =
CSVFormat.isBlank(header);</span>
+<span class="fc bfc" id="L514" title="All 4 branches covered.">
if (blankHeader && !format.getAllowMissingColumnNames()) {</span>
+<span class="fc" id="L515"> throw new
IllegalArgumentException(</span>
+<span class="fc" id="L516"> "A header name is
missing in " + Arrays.toString(headerRecord));</span>
}
-<span class="fc bfc" id="L505" title="All 2 branches covered.">
final boolean containsHeader = blankHeader ? observedMissing :
hdrMap.containsKey(header);</span>
-<span class="fc" id="L506"> final DuplicateHeaderMode
headerMode = format.getDuplicateHeaderMode();</span>
-<span class="fc bfc" id="L507" title="All 2 branches covered.">
final boolean duplicatesAllowed = headerMode ==
DuplicateHeaderMode.ALLOW_ALL;</span>
-<span class="fc bfc" id="L508" title="All 2 branches covered.">
final boolean emptyDuplicatesAllowed = headerMode ==
DuplicateHeaderMode.ALLOW_EMPTY;</span>
-
-<span class="fc bfc" id="L510" title="All 8 branches covered.">
if (containsHeader && !duplicatesAllowed && !(blankHeader
&& emptyDuplicatesAllowed)) {</span>
-<span class="fc" id="L511"> throw new
IllegalArgumentException(</span>
-<span class="fc" id="L512"> String.format(</span>
+<span class="fc bfc" id="L519" title="All 2 branches covered.">
final boolean containsHeader = blankHeader ? observedMissing :
hdrMap.containsKey(header);</span>
+<span class="fc" id="L520"> final DuplicateHeaderMode
headerMode = format.getDuplicateHeaderMode();</span>
+<span class="fc bfc" id="L521" title="All 2 branches covered.">
final boolean duplicatesAllowed = headerMode ==
DuplicateHeaderMode.ALLOW_ALL;</span>
+<span class="fc bfc" id="L522" title="All 2 branches covered.">
final boolean emptyDuplicatesAllowed = headerMode ==
DuplicateHeaderMode.ALLOW_EMPTY;</span>
+
+<span class="fc bfc" id="L524" title="All 8 branches covered.">
if (containsHeader && !duplicatesAllowed && !(blankHeader
&& emptyDuplicatesAllowed)) {</span>
+<span class="fc" id="L525"> throw new
IllegalArgumentException(</span>
+<span class="fc" id="L526"> String.format(</span>
"The header contains a duplicate name:
\"%s\" in %s. If this is valid then use
CSVFormat.Builder.setDuplicateHeaderMode().",
-<span class="fc" id="L514"> header,
Arrays.toString(headerRecord)));</span>
+<span class="fc" id="L528"> header,
Arrays.toString(headerRecord)));</span>
}
-<span class="fc" id="L516"> observedMissing |=
blankHeader;</span>
-<span class="fc bfc" id="L517" title="All 2 branches covered.">
if (header != null) {</span>
-<span class="fc" id="L518"> hdrMap.put(header,
Integer.valueOf(i));</span>
-<span class="fc bfc" id="L519" title="All 2 branches covered.">
if (headerNames == null) {</span>
-<span class="fc" id="L520"> headerNames = new
ArrayList<>(headerRecord.length);</span>
+<span class="fc" id="L530"> observedMissing |=
blankHeader;</span>
+<span class="fc bfc" id="L531" title="All 2 branches covered.">
if (header != null) {</span>
+<span class="fc" id="L532"> hdrMap.put(header,
Integer.valueOf(i)); // N.B. Explicit (un)boxing is intentional</span>
+<span class="fc bfc" id="L533" title="All 2 branches covered.">
if (headerNames == null) {</span>
+<span class="fc" id="L534"> headerNames = new
ArrayList<>(headerRecord.length);</span>
}
-<span class="fc" id="L522">
headerNames.add(header);</span>
+<span class="fc" id="L536">
headerNames.add(header);</span>
}
}
}
}
// Make header names Collection immutable
-<span class="fc bfc" id="L528" title="All 2 branches covered."> return
new Headers(hdrMap, headerNames == null ? Collections.emptyList() :
Collections.unmodifiableList(headerNames));</span>
+<span class="fc bfc" id="L542" title="All 2 branches covered."> return
new Headers(hdrMap, headerNames == null ? Collections.emptyList() :
Collections.unmodifiableList(headerNames));</span>
}
/**
@@ -539,7 +553,7 @@ public final class CSVParser implements
* @return current line number
*/
public long getCurrentLineNumber() {
-<span class="fc" id="L542"> return lexer.getCurrentLineNumber();</span>
+<span class="fc" id="L556"> return lexer.getCurrentLineNumber();</span>
}
/**
@@ -549,7 +563,7 @@ public final class CSVParser implements
* @since 1.5
*/
public String getFirstEndOfLine() {
-<span class="fc" id="L552"> return lexer.getFirstEol();</span>
+<span class="fc" id="L566"> return lexer.getFirstEol();</span>
}
/**
@@ -560,7 +574,7 @@ public final class CSVParser implements
* @since 1.10.0
*/
public String getHeaderComment() {
-<span class="fc" id="L563"> return headerComment;</span>
+<span class="fc" id="L577"> return headerComment;</span>
}
/**
@@ -576,12 +590,12 @@ public final class CSVParser implements
* @return a copy of the header map.
*/
public Map<String, Integer> getHeaderMap() {
-<span class="fc bfc" id="L579" title="All 2 branches covered."> if
(headers.headerMap == null) {</span>
-<span class="fc" id="L580"> return null;</span>
+<span class="fc bfc" id="L593" title="All 2 branches covered."> if
(headers.headerMap == null) {</span>
+<span class="fc" id="L594"> return null;</span>
}
-<span class="fc" id="L582"> final Map<String, Integer> map =
createEmptyHeaderMap();</span>
-<span class="fc" id="L583"> map.putAll(headers.headerMap);</span>
-<span class="fc" id="L584"> return map;</span>
+<span class="fc" id="L596"> final Map<String, Integer> map =
createEmptyHeaderMap();</span>
+<span class="fc" id="L597"> map.putAll(headers.headerMap);</span>
+<span class="fc" id="L598"> return map;</span>
}
/**
@@ -590,7 +604,7 @@ public final class CSVParser implements
* @return the underlying header map.
*/
Map<String, Integer> getHeaderMapRaw() {
-<span class="fc" id="L593"> return headers.headerMap;</span>
+<span class="fc" id="L607"> return headers.headerMap;</span>
}
/**
@@ -606,7 +620,7 @@ public final class CSVParser implements
* @since 1.7
*/
public List<String> getHeaderNames() {
-<span class="fc" id="L609"> return
Collections.unmodifiableList(headers.headerNames);</span>
+<span class="fc" id="L623"> return
Collections.unmodifiableList(headers.headerNames);</span>
}
/**
@@ -620,7 +634,7 @@ public final class CSVParser implements
* @return current record number
*/
public long getRecordNumber() {
-<span class="fc" id="L623"> return recordNumber;</span>
+<span class="fc" id="L637"> return recordNumber;</span>
}
/**
@@ -636,7 +650,7 @@ public final class CSVParser implements
* on parse error or input read-failure
*/
public List<CSVRecord> getRecords() {
-<span class="fc" id="L639"> return
stream().collect(Collectors.toList());</span>
+<span class="fc" id="L653"> return
stream().collect(Collectors.toList());</span>
}
/**
@@ -647,7 +661,7 @@ public final class CSVParser implements
* @since 1.10.0
*/
public String getTrailerComment() {
-<span class="fc" id="L650"> return trailerComment;</span>
+<span class="fc" id="L664"> return trailerComment;</span>
}
/**
@@ -658,15 +672,15 @@ public final class CSVParser implements
* @return null if input is parsed as null, or input itself if the input
isn't parsed as null
*/
private String handleNull(final String input) {
-<span class="fc" id="L661"> final boolean isQuoted =
reusableToken.isQuoted;</span>
-<span class="fc" id="L662"> final String nullString =
format.getNullString();</span>
-<span class="fc" id="L663"> final boolean strictQuoteMode =
isStrictQuoteMode();</span>
-<span class="fc bfc" id="L664" title="All 2 branches covered."> if
(input.equals(nullString)) {</span>
+<span class="fc" id="L675"> final boolean isQuoted =
reusableToken.isQuoted;</span>
+<span class="fc" id="L676"> final String nullString =
format.getNullString();</span>
+<span class="fc" id="L677"> final boolean strictQuoteMode =
isStrictQuoteMode();</span>
+<span class="fc bfc" id="L678" title="All 2 branches covered."> if
(input.equals(nullString)) {</span>
// nullString = NULL(String), distinguish between "NULL"
and NULL in ALL_NON_NULL or NON_NUMERIC quote mode
-<span class="fc bfc" id="L666" title="All 4 branches covered.">
return strictQuoteMode && isQuoted ? input : null;</span>
+<span class="fc bfc" id="L680" title="All 4 branches covered.">
return strictQuoteMode && isQuoted ? input : null;</span>
}
// don't set nullString, distinguish between "" and ,,
(absent values) in All_NON_NULL or NON_NUMERIC quote mode
-<span class="fc bfc" id="L669" title="All 8 branches covered."> return
strictQuoteMode && nullString == null && input.isEmpty()
&& !isQuoted ? null : input;</span>
+<span class="fc bfc" id="L683" title="All 8 branches covered."> return
strictQuoteMode && nullString == null && input.isEmpty()
&& !isQuoted ? null : input;</span>
}
/**
@@ -682,7 +696,7 @@ public final class CSVParser implements
* @since 1.10.0
*/
public boolean hasHeaderComment() {
-<span class="fc bfc" id="L685" title="All 2 branches covered."> return
headerComment != null;</span>
+<span class="fc bfc" id="L699" title="All 2 branches covered."> return
headerComment != null;</span>
}
/**
@@ -695,7 +709,7 @@ public final class CSVParser implements
* @since 1.10.0
*/
public boolean hasTrailerComment() {
-<span class="fc bfc" id="L698" title="All 2 branches covered."> return
trailerComment != null;</span>
+<span class="fc bfc" id="L712" title="All 2 branches covered."> return
trailerComment != null;</span>
}
/**
@@ -704,7 +718,7 @@ public final class CSVParser implements
* @return whether this parser is closed.
*/
public boolean isClosed() {
-<span class="fc" id="L707"> return lexer.isClosed();</span>
+<span class="fc" id="L721"> return lexer.isClosed();</span>
}
/**
@@ -714,8 +728,8 @@ public final class CSVParser implements
* {@link QuoteMode#NON_NUMERIC}.
*/
private boolean isStrictQuoteMode() {
-<span class="fc bfc" id="L717" title="All 2 branches covered."> return
format.getQuoteMode() == QuoteMode.ALL_NON_NULL ||</span>
-<span class="fc bfc" id="L718" title="All 2 branches covered.">
format.getQuoteMode() == QuoteMode.NON_NUMERIC;</span>
+<span class="fc bfc" id="L731" title="All 2 branches covered."> return
format.getQuoteMode() == QuoteMode.ALL_NON_NULL ||</span>
+<span class="fc bfc" id="L732" title="All 2 branches covered.">
format.getQuoteMode() == QuoteMode.NON_NUMERIC;</span>
}
/**
@@ -739,61 +753,61 @@ public final class CSVParser implements
*/
@Override
public Iterator<CSVRecord> iterator() {
-<span class="fc" id="L742"> return csvRecordIterator;</span>
+<span class="fc" id="L756"> return csvRecordIterator;</span>
}
/**
* Parses the next record from the current point in the stream.
*
* @return the record as an array of values, or {@code null} if the end of
the stream has been reached
- * @throws IOException
- * on parse error or input read-failure
+ * @throws IOException on parse error or input read-failure
+ * @throws CSVException Thrown on invalid input.
*/
CSVRecord nextRecord() throws IOException {
-<span class="fc" id="L753"> CSVRecord result = null;</span>
-<span class="fc" id="L754"> recordList.clear();</span>
-<span class="fc" id="L755"> StringBuilder sb = null;</span>
-<span class="fc" id="L756"> final long startCharPosition =
lexer.getCharacterPosition() + characterOffset;</span>
+<span class="fc" id="L767"> CSVRecord result = null;</span>
+<span class="fc" id="L768"> recordList.clear();</span>
+<span class="fc" id="L769"> StringBuilder sb = null;</span>
+<span class="fc" id="L770"> final long startCharPosition =
lexer.getCharacterPosition() + characterOffset;</span>
do {
-<span class="fc" id="L758"> reusableToken.reset();</span>
-<span class="fc" id="L759"> lexer.nextToken(reusableToken);</span>
-<span class="pc bpc" id="L760" title="2 of 6 branches missed.">
switch (reusableToken.type) {</span>
+<span class="fc" id="L772"> reusableToken.reset();</span>
+<span class="fc" id="L773"> lexer.nextToken(reusableToken);</span>
+<span class="pc bpc" id="L774" title="2 of 6 branches missed.">
switch (reusableToken.type) {</span>
case TOKEN:
-<span class="fc" id="L762"> addRecordValue(false);</span>
-<span class="fc" id="L763"> break;</span>
+<span class="fc" id="L776"> addRecordValue(false);</span>
+<span class="fc" id="L777"> break;</span>
case EORECORD:
-<span class="fc" id="L765"> addRecordValue(true);</span>
-<span class="fc" id="L766"> break;</span>
+<span class="fc" id="L779"> addRecordValue(true);</span>
+<span class="fc" id="L780"> break;</span>
case EOF:
-<span class="fc bfc" id="L768" title="All 2 branches covered.">
if (reusableToken.isReady) {</span>
-<span class="fc" id="L769"> addRecordValue(true);</span>
-<span class="fc bfc" id="L770" title="All 2 branches covered.">
} else if (sb != null) {</span>
-<span class="fc" id="L771"> trailerComment =
sb.toString();</span>
+<span class="fc bfc" id="L782" title="All 2 branches covered.">
if (reusableToken.isReady) {</span>
+<span class="fc" id="L783"> addRecordValue(true);</span>
+<span class="fc bfc" id="L784" title="All 2 branches covered.">
} else if (sb != null) {</span>
+<span class="fc" id="L785"> trailerComment =
sb.toString();</span>
}
break;
case INVALID:
-<span class="nc" id="L775"> throw new IOException("(line
" + getCurrentLineNumber() + ") invalid parse sequence");</span>
+<span class="nc" id="L789"> throw new IOException("(line
" + getCurrentLineNumber() + ") invalid parse sequence");</span>
case COMMENT: // Ignored currently
-<span class="fc bfc" id="L777" title="All 2 branches covered.">
if (sb == null) { // first comment for this record</span>
-<span class="fc" id="L778"> sb = new StringBuilder();</span>
+<span class="fc bfc" id="L791" title="All 2 branches covered.">
if (sb == null) { // first comment for this record</span>
+<span class="fc" id="L792"> sb = new StringBuilder();</span>
} else {
-<span class="fc" id="L780"> sb.append(Constants.LF);</span>
+<span class="fc" id="L794"> sb.append(Constants.LF);</span>
}
-<span class="fc" id="L782">
sb.append(reusableToken.content);</span>
-<span class="fc" id="L783"> reusableToken.type = TOKEN; // Read
another token</span>
-<span class="fc" id="L784"> break;</span>
+<span class="fc" id="L796">
sb.append(reusableToken.content);</span>
+<span class="fc" id="L797"> reusableToken.type = TOKEN; // Read
another token</span>
+<span class="fc" id="L798"> break;</span>
default:
-<span class="nc" id="L786"> throw new
IllegalStateException("Unexpected Token type: " +
reusableToken.type);</span>
+<span class="nc" id="L800"> throw new
IllegalStateException("Unexpected Token type: " +
reusableToken.type);</span>
}
-<span class="fc bfc" id="L788" title="All 2 branches covered."> } while
(reusableToken.type == TOKEN);</span>
+<span class="fc bfc" id="L802" title="All 2 branches covered."> } while
(reusableToken.type == TOKEN);</span>
-<span class="fc bfc" id="L790" title="All 2 branches covered."> if
(!recordList.isEmpty()) {</span>
-<span class="fc" id="L791"> recordNumber++;</span>
-<span class="fc bfc" id="L792" title="All 2 branches covered.">
final String comment = sb == null ? null : sb.toString();</span>
-<span class="fc" id="L793"> result = new CSVRecord(this,
recordList.toArray(Constants.EMPTY_STRING_ARRAY), comment,</span>
+<span class="fc bfc" id="L804" title="All 2 branches covered."> if
(!recordList.isEmpty()) {</span>
+<span class="fc" id="L805"> recordNumber++;</span>
+<span class="fc" id="L806"> final String comment =
Objects.toString(sb, null);</span>
+<span class="fc" id="L807"> result = new CSVRecord(this,
recordList.toArray(Constants.EMPTY_STRING_ARRAY), comment,</span>
recordNumber, startCharPosition);
}
-<span class="fc" id="L796"> return result;</span>
+<span class="fc" id="L810"> return result;</span>
}
/**
@@ -806,8 +820,8 @@ public final class CSVParser implements
* @since 1.9.0
*/
public Stream<CSVRecord> stream() {
-<span class="fc" id="L809"> return
StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator(),
Spliterator.ORDERED), false);</span>
+<span class="fc" id="L823"> return
StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator(),
Spliterator.ORDERED), false);</span>
}
}
-</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.11.202310140853</span></div></body></html>
\ No newline at end of file
+</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Modified:
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.html
==============================================================================
---
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.html
(original)
+++
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.html
Wed Sep 25 02:11:29 2024
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>CSVPrinter</title><script type="text/javascript"
src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Commons CSV</a> > <a href="index.html"
class="el_package">org.apache.commons.csv</a> > <span
class="el_class">CSVPrinter</span></div><h1>CSVPrinter</h1><table
class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td cla
ss="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">0 of 317</td><td class="ctr2">100%</td><td class="bar">0 of
45</td><td class="ctr2">100%</td><td class="ctr1">0</td><td
class="ctr2">41</td><td class="ctr
1">0</td><td class="ctr2">87</td><td class="ctr1">0</td><td
class="ctr2">18</td></tr></tfoot><tbody><tr><td id="a6"><a
href="CSVPrinter.java.html#L200"
class="el_method">printComment(String)</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="77"
alt="77"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="15"
alt="15"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f0">0</td><td class="ctr2" id="g0">9</td><td class="ctr1" id="h0">0</td><td
class="ctr2" id="i0">18</td><td class="ctr1" id="j0">0</td><td class="ctr2"
id="k0">1</td></tr><tr><td id="a2"><a href="CSVPrinter.java.html#L84"
class="el_method">CSVPrinter(Appendable, CSVFormat)</a></td><td class="bar"
id="b1"><img src="../jacoco-resources/greenbar.gif" width="87" height="10"
title="56" alt="56"/></td><td class="ctr2" id="c1">100%</td><td class="bar"
id="d1"><img src="../jac
oco-resources/greenbar.gif" width="64" height="10" title="8" alt="8"/></td><td
class="ctr2" id="e1">100%</td><td class="ctr1" id="f1">0</td><td class="ctr2"
id="g1">5</td><td class="ctr1" id="h1">0</td><td class="ctr2"
id="i1">13</td><td class="ctr1" id="j1">0</td><td class="ctr2"
id="k1">1</td></tr><tr><td id="a15"><a href="CSVPrinter.java.html#L416"
class="el_method">printRecords(ResultSet)</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/greenbar.gif" width="73" height="10" title="47"
alt="47"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"><img
src="../jacoco-resources/greenbar.gif" width="64" height="10" title="8"
alt="8"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g2">5</td><td class="ctr1" id="h2">0</td><td
class="ctr2" id="i2">13</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k2">1</td></tr><tr><td id="a12"><a href="CSVPrinter.java.html#L309"
class="el_method">printRecordObject(Object)</a><
/td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif"
width="38" height="10" title="25" alt="25"/></td><td class="ctr2"
id="c3">100%</td><td class="bar" id="d4"><img
src="../jacoco-resources/greenbar.gif" width="32" height="10" title="4"
alt="4"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1"
id="f3">0</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h3">0</td><td
class="ctr2" id="i3">6</td><td class="ctr1" id="j3">0</td><td class="ctr2"
id="k3">1</td></tr><tr><td id="a1"><a href="CSVPrinter.java.html#L135"
class="el_method">close(boolean)</a></td><td class="bar" id="b4"><img
src="../jacoco-resources/greenbar.gif" width="26" height="10" title="17"
alt="17"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d3"><img
src="../jacoco-resources/greenbar.gif" width="48" height="10" title="6"
alt="6"/></td><td class="ctr2" id="e4">100%</td><td class="ctr1"
id="f4">0</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h4">0</td><td
class="ctr2"
id="i4">5</td><td class="ctr1" id="j4">0</td><td class="ctr2"
id="k4">1</td></tr><tr><td id="a5"><a href="CSVPrinter.java.html#L174"
class="el_method">print(Object)</a></td><td class="bar" id="b5"><img
src="../jacoco-resources/greenbar.gif" width="18" height="10" title="12"
alt="12"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d7"/><td
class="ctr2" id="e7">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2"
id="g7">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i6">3</td><td
class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td
id="a7"><a href="CSVPrinter.java.html#L238"
class="el_method">printHeaders(ResultSet)</a></td><td class="bar" id="b6"><img
src="../jacoco-resources/greenbar.gif" width="17" height="10" title="11"
alt="11"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d8"/><td
class="ctr2" id="e8">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2"
id="g8">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id
="i11">2</td><td class="ctr1" id="j6">0</td><td class="ctr2"
id="k6">1</td></tr><tr><td id="a3"><a href="CSVPrinter.java.html#L151"
class="el_method">flush()</a></td><td class="bar" id="b7"><img
src="../jacoco-resources/greenbar.gif" width="14" height="10" title="9"
alt="9"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d5"><img
src="../jacoco-resources/greenbar.gif" width="16" height="10" title="2"
alt="2"/></td><td class="ctr2" id="e5">100%</td><td class="ctr1"
id="f7">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h7">0</td><td
class="ctr2" id="i7">3</td><td class="ctr1" id="j7">0</td><td class="ctr2"
id="k7">1</td></tr><tr><td id="a8"><a href="CSVPrinter.java.html#L248"
class="el_method">println()</a></td><td class="bar" id="b8"><img
src="../jacoco-resources/greenbar.gif" width="14" height="10" title="9"
alt="9"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d9"/><td
class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2"
id="g9">1</td><td class="ctr1" id="h8">0</td><td class="ctr2"
id="i8">3</td><td class="ctr1" id="j8">0</td><td class="ctr2"
id="k8">1</td></tr><tr><td id="a16"><a href="CSVPrinter.java.html#L446"
class="el_method">printRecords(ResultSet, boolean)</a></td><td class="bar"
id="b9"><img src="../jacoco-resources/greenbar.gif" width="14" height="10"
title="9" alt="9"/></td><td class="ctr2" id="c9">100%</td><td class="bar"
id="d6"><img src="../jacoco-resources/greenbar.gif" width="16" height="10"
title="2" alt="2"/></td><td class="ctr2" id="e6">100%</td><td class="ctr1"
id="f9">0</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h9">0</td><td
class="ctr2" id="i5">4</td><td class="ctr1" id="j9">0</td><td class="ctr2"
id="k9">1</td></tr><tr><td id="a9"><a href="CSVPrinter.java.html#L267"
class="el_method">printRecord(Iterable)</a></td><td class="bar" id="b10"><img
src="../jacoco-resources/greenbar.gif" width="12" height="10" title="8"
alt="8"/></td><td class="ctr2" id="c10">100%</td><
td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1"
id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1"
id="h10">0</td><td class="ctr2" id="i9">3</td><td class="ctr1"
id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a11"><a
href="CSVPrinter.java.html#L304"
class="el_method">printRecord(Stream)</a></td><td class="bar" id="b11"><img
src="../jacoco-resources/greenbar.gif" width="12" height="10" title="8"
alt="8"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d11"/><td
class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2"
id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2"
id="i10">3</td><td class="ctr1" id="j11">0</td><td class="ctr2"
id="k11">1</td></tr><tr><td id="a13"><a href="CSVPrinter.java.html#L359"
class="el_method">printRecords(Iterable)</a></td><td class="bar" id="b12"><img
src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6"
alt="6"/></td><td class="ctr2" i
d="c12">100%</td><td class="bar" id="d12"/><td class="ctr2"
id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2"
id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2"
id="i12">2</td><td class="ctr1" id="j12">0</td><td class="ctr2"
id="k12">1</td></tr><tr><td id="a17"><a href="CSVPrinter.java.html#L495"
class="el_method">printRecords(Stream)</a></td><td class="bar" id="b13"><img
src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6"
alt="6"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id="d13"/><td
class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2"
id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2"
id="i13">2</td><td class="ctr1" id="j13">0</td><td class="ctr2"
id="k13">1</td></tr><tr><td id="a10"><a href="CSVPrinter.java.html#L285"
class="el_method">printRecord(Object[])</a></td><td class="bar" id="b14"><img
src="../jacoco-resources/greenbar.gif" width="7" height="10" title="5"
alt="5"/></td>
<td class="ctr2" id="c14">100%</td><td class="bar" id="d14"/><td class="ctr2"
id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2"
id="g14">1</td><td class="ctr1" id="h14">0</td><td class="ctr2"
id="i14">2</td><td class="ctr1" id="j14">0</td><td class="ctr2"
id="k14">1</td></tr><tr><td id="a14"><a href="CSVPrinter.java.html#L402"
class="el_method">printRecords(Object[])</a></td><td class="bar" id="b15"><img
src="../jacoco-resources/greenbar.gif" width="7" height="10" title="5"
alt="5"/></td><td class="ctr2" id="c15">100%</td><td class="bar" id="d15"/><td
class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2"
id="g15">1</td><td class="ctr1" id="h15">0</td><td class="ctr2"
id="i15">2</td><td class="ctr1" id="j15">0</td><td class="ctr2"
id="k15">1</td></tr><tr><td id="a0"><a href="CSVPrinter.java.html#L123"
class="el_method">close()</a></td><td class="bar" id="b16"><img
src="../jacoco-resources/greenbar.gif" width="6" height="10" title="4" alt="4"/>
</td><td class="ctr2" id="c16">100%</td><td class="bar" id="d16"/><td
class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2"
id="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2"
id="i16">2</td><td class="ctr1" id="j16">0</td><td class="ctr2"
id="k16">1</td></tr><tr><td id="a4"><a href="CSVPrinter.java.html#L162"
class="el_method">getOut()</a></td><td class="bar" id="b17"><img
src="../jacoco-resources/greenbar.gif" width="4" height="10" title="3"
alt="3"/></td><td class="ctr2" id="c17">100%</td><td class="bar" id="d17"/><td
class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2"
id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2"
id="i17">1</td><td class="ctr1" id="j17">0</td><td class="ctr2"
id="k17">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.11.202310140853</span></div></body></html>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>CSVPrinter</title><script type="text/javascript"
src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Commons CSV</a> > <a href="index.html"
class="el_package">org.apache.commons.csv</a> > <span
class="el_class">CSVPrinter</span></div><h1>CSVPrinter</h1><table
class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td cla
ss="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">0 of 317</td><td class="ctr2">100%</td><td class="bar">0 of
45</td><td class="ctr2">100%</td><td class="ctr1">0</td><td
class="ctr2">41</td><td class="ctr
1">0</td><td class="ctr2">87</td><td class="ctr1">0</td><td
class="ctr2">18</td></tr></tfoot><tbody><tr><td id="a6"><a
href="CSVPrinter.java.html#L200"
class="el_method">printComment(String)</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="77"
alt="77"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="15"
alt="15"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f0">0</td><td class="ctr2" id="g0">9</td><td class="ctr1" id="h0">0</td><td
class="ctr2" id="i0">18</td><td class="ctr1" id="j0">0</td><td class="ctr2"
id="k0">1</td></tr><tr><td id="a2"><a href="CSVPrinter.java.html#L84"
class="el_method">CSVPrinter(Appendable, CSVFormat)</a></td><td class="bar"
id="b1"><img src="../jacoco-resources/greenbar.gif" width="87" height="10"
title="56" alt="56"/></td><td class="ctr2" id="c1">100%</td><td class="bar"
id="d1"><img src="../jac
oco-resources/greenbar.gif" width="64" height="10" title="8" alt="8"/></td><td
class="ctr2" id="e1">100%</td><td class="ctr1" id="f1">0</td><td class="ctr2"
id="g1">5</td><td class="ctr1" id="h1">0</td><td class="ctr2"
id="i1">13</td><td class="ctr1" id="j1">0</td><td class="ctr2"
id="k1">1</td></tr><tr><td id="a15"><a href="CSVPrinter.java.html#L413"
class="el_method">printRecords(ResultSet)</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/greenbar.gif" width="73" height="10" title="47"
alt="47"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"><img
src="../jacoco-resources/greenbar.gif" width="64" height="10" title="8"
alt="8"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g2">5</td><td class="ctr1" id="h2">0</td><td
class="ctr2" id="i2">13</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k2">1</td></tr><tr><td id="a12"><a href="CSVPrinter.java.html#L309"
class="el_method">printRecordObject(Object)</a><
/td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif"
width="38" height="10" title="25" alt="25"/></td><td class="ctr2"
id="c3">100%</td><td class="bar" id="d4"><img
src="../jacoco-resources/greenbar.gif" width="32" height="10" title="4"
alt="4"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1"
id="f3">0</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h3">0</td><td
class="ctr2" id="i3">6</td><td class="ctr1" id="j3">0</td><td class="ctr2"
id="k3">1</td></tr><tr><td id="a1"><a href="CSVPrinter.java.html#L135"
class="el_method">close(boolean)</a></td><td class="bar" id="b4"><img
src="../jacoco-resources/greenbar.gif" width="26" height="10" title="17"
alt="17"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d3"><img
src="../jacoco-resources/greenbar.gif" width="48" height="10" title="6"
alt="6"/></td><td class="ctr2" id="e4">100%</td><td class="ctr1"
id="f4">0</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h4">0</td><td
class="ctr2"
id="i4">5</td><td class="ctr1" id="j4">0</td><td class="ctr2"
id="k4">1</td></tr><tr><td id="a5"><a href="CSVPrinter.java.html#L174"
class="el_method">print(Object)</a></td><td class="bar" id="b5"><img
src="../jacoco-resources/greenbar.gif" width="18" height="10" title="12"
alt="12"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d7"/><td
class="ctr2" id="e7">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2"
id="g7">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i6">3</td><td
class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td
id="a7"><a href="CSVPrinter.java.html#L238"
class="el_method">printHeaders(ResultSet)</a></td><td class="bar" id="b6"><img
src="../jacoco-resources/greenbar.gif" width="17" height="10" title="11"
alt="11"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d8"/><td
class="ctr2" id="e8">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2"
id="g8">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id
="i11">2</td><td class="ctr1" id="j6">0</td><td class="ctr2"
id="k6">1</td></tr><tr><td id="a3"><a href="CSVPrinter.java.html#L151"
class="el_method">flush()</a></td><td class="bar" id="b7"><img
src="../jacoco-resources/greenbar.gif" width="14" height="10" title="9"
alt="9"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d5"><img
src="../jacoco-resources/greenbar.gif" width="16" height="10" title="2"
alt="2"/></td><td class="ctr2" id="e5">100%</td><td class="ctr1"
id="f7">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h7">0</td><td
class="ctr2" id="i7">3</td><td class="ctr1" id="j7">0</td><td class="ctr2"
id="k7">1</td></tr><tr><td id="a8"><a href="CSVPrinter.java.html#L248"
class="el_method">println()</a></td><td class="bar" id="b8"><img
src="../jacoco-resources/greenbar.gif" width="14" height="10" title="9"
alt="9"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d9"/><td
class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2"
id="g9">1</td><td class="ctr1" id="h8">0</td><td class="ctr2"
id="i8">3</td><td class="ctr1" id="j8">0</td><td class="ctr2"
id="k8">1</td></tr><tr><td id="a16"><a href="CSVPrinter.java.html#L443"
class="el_method">printRecords(ResultSet, boolean)</a></td><td class="bar"
id="b9"><img src="../jacoco-resources/greenbar.gif" width="14" height="10"
title="9" alt="9"/></td><td class="ctr2" id="c9">100%</td><td class="bar"
id="d6"><img src="../jacoco-resources/greenbar.gif" width="16" height="10"
title="2" alt="2"/></td><td class="ctr2" id="e6">100%</td><td class="ctr1"
id="f9">0</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h9">0</td><td
class="ctr2" id="i5">4</td><td class="ctr1" id="j9">0</td><td class="ctr2"
id="k9">1</td></tr><tr><td id="a9"><a href="CSVPrinter.java.html#L267"
class="el_method">printRecord(Iterable)</a></td><td class="bar" id="b10"><img
src="../jacoco-resources/greenbar.gif" width="12" height="10" title="8"
alt="8"/></td><td class="ctr2" id="c10">100%</td><
td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1"
id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1"
id="h10">0</td><td class="ctr2" id="i9">3</td><td class="ctr1"
id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a11"><a
href="CSVPrinter.java.html#L304"
class="el_method">printRecord(Stream)</a></td><td class="bar" id="b11"><img
src="../jacoco-resources/greenbar.gif" width="12" height="10" title="8"
alt="8"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d11"/><td
class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2"
id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2"
id="i10">3</td><td class="ctr1" id="j11">0</td><td class="ctr2"
id="k11">1</td></tr><tr><td id="a13"><a href="CSVPrinter.java.html#L358"
class="el_method">printRecords(Iterable)</a></td><td class="bar" id="b12"><img
src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6"
alt="6"/></td><td class="ctr2" i
d="c12">100%</td><td class="bar" id="d12"/><td class="ctr2"
id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2"
id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2"
id="i12">2</td><td class="ctr1" id="j12">0</td><td class="ctr2"
id="k12">1</td></tr><tr><td id="a17"><a href="CSVPrinter.java.html#L491"
class="el_method">printRecords(Stream)</a></td><td class="bar" id="b13"><img
src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6"
alt="6"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id="d13"/><td
class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2"
id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2"
id="i13">2</td><td class="ctr1" id="j13">0</td><td class="ctr2"
id="k13">1</td></tr><tr><td id="a10"><a href="CSVPrinter.java.html#L285"
class="el_method">printRecord(Object[])</a></td><td class="bar" id="b14"><img
src="../jacoco-resources/greenbar.gif" width="7" height="10" title="5"
alt="5"/></td>
<td class="ctr2" id="c14">100%</td><td class="bar" id="d14"/><td class="ctr2"
id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2"
id="g14">1</td><td class="ctr1" id="h14">0</td><td class="ctr2"
id="i14">2</td><td class="ctr1" id="j14">0</td><td class="ctr2"
id="k14">1</td></tr><tr><td id="a14"><a href="CSVPrinter.java.html#L399"
class="el_method">printRecords(Object[])</a></td><td class="bar" id="b15"><img
src="../jacoco-resources/greenbar.gif" width="7" height="10" title="5"
alt="5"/></td><td class="ctr2" id="c15">100%</td><td class="bar" id="d15"/><td
class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2"
id="g15">1</td><td class="ctr1" id="h15">0</td><td class="ctr2"
id="i15">2</td><td class="ctr1" id="j15">0</td><td class="ctr2"
id="k15">1</td></tr><tr><td id="a0"><a href="CSVPrinter.java.html#L123"
class="el_method">close()</a></td><td class="bar" id="b16"><img
src="../jacoco-resources/greenbar.gif" width="6" height="10" title="4" alt="4"/>
</td><td class="ctr2" id="c16">100%</td><td class="bar" id="d16"/><td
class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2"
id="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2"
id="i16">2</td><td class="ctr1" id="j16">0</td><td class="ctr2"
id="k16">1</td></tr><tr><td id="a4"><a href="CSVPrinter.java.html#L162"
class="el_method">getOut()</a></td><td class="bar" id="b17"><img
src="../jacoco-resources/greenbar.gif" width="4" height="10" title="3"
alt="3"/></td><td class="ctr2" id="c17">100%</td><td class="bar" id="d17"/><td
class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2"
id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2"
id="i17">1</td><td class="ctr1" id="j17">0</td><td class="ctr2"
id="k17">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Modified:
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.java.html
==============================================================================
---
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.java.html
(original)
+++
websites/production/commons/content/proper/commons-csv/jacoco/org.apache.commons.csv/CSVPrinter.java.html
Wed Sep 25 02:11:29 2024
@@ -110,7 +110,7 @@ public final class CSVPrinter implements
<span class="fc" id="L110"> final String[] headerComments =
format.getHeaderComments();</span>
<span class="fc bfc" id="L111" title="All 2 branches covered."> if
(headerComments != null) {</span>
<span class="fc bfc" id="L112" title="All 2 branches covered."> for
(final String line : headerComments) {</span>
-<span class="fc" id="L113"> this.printComment(line);</span>
+<span class="fc" id="L113"> printComment(line);</span>
}
}
<span class="fc bfc" id="L116" title="All 4 branches covered."> if
(format.getHeader() != null && !format.getSkipHeaderRecord()) {</span>
@@ -203,7 +203,7 @@ public final class CSVPrinter implements
<span class="fc bfc" id="L203" title="All 2 branches covered."> if
(!newRecord) {</span>
<span class="fc" id="L204"> println();</span>
}
-<span class="fc" id="L206">
appendable.append(format.getCommentMarker().charValue());</span>
+<span class="fc" id="L206">
appendable.append(format.getCommentMarker().charValue()); // N.B. Explicit
(un)boxing is intentional</span>
<span class="fc" id="L207"> appendable.append(SP);</span>
<span class="fc bfc" id="L208" title="All 2 branches covered."> for
(int i = 0; i < comment.length(); i++) {</span>
<span class="fc" id="L209"> final char c = comment.charAt(i);</span>
@@ -215,7 +215,7 @@ public final class CSVPrinter implements
//$FALL-THROUGH$ break intentionally excluded.
case LF:
<span class="fc" id="L217"> println();</span>
-<span class="fc" id="L218">
appendable.append(format.getCommentMarker().charValue());</span>
+<span class="fc" id="L218">
appendable.append(format.getCommentMarker().charValue()); // N.B. Explicit
(un)boxing is intentional</span>
<span class="fc" id="L219"> appendable.append(SP);</span>
<span class="fc" id="L220"> break;</span>
default:
@@ -328,13 +328,12 @@ public final class CSVPrinter implements
* Given the following data structure:
* </p>
*
- * <pre>
- * <code>
- * List&lt;String[]&gt; data = new ArrayList&lt;&gt;();
+ * <pre>{@code
+ * List<String[]> data = new ArrayList<>();
* data.add(new String[]{ "A", "B", "C" });
* data.add(new String[]{ "1", "2", "3" });
* data.add(new String[]{ "A1", "B2", "C3"
});
- * </code>
+ * }
* </pre>
*
* <p>
@@ -342,11 +341,11 @@ public final class CSVPrinter implements
* </p>
*
* <pre>
- * <code>
+ * {@code
* A, B, C
* 1, 2, 3
* A1, B2, C3
- * </code>
+ * }
* </pre>
*
* @param values
@@ -356,8 +355,8 @@ public final class CSVPrinter implements
*/
@SuppressWarnings("resource")
public void printRecords(final Iterable<?> values) throws
IOException {
-<span class="fc" id="L359">
IOStream.of(values).forEachOrdered(this::printRecordObject);</span>
-<span class="fc" id="L360"> }</span>
+<span class="fc" id="L358">
IOStream.of(values).forEachOrdered(this::printRecordObject);</span>
+<span class="fc" id="L359"> }</span>
/**
* Prints all the objects in the given array handling nested
collections/arrays as records.
@@ -372,25 +371,23 @@ public final class CSVPrinter implements
* Given the following data structure:
* </p>
*
- * <pre>
- * <code>
+ * <pre>{@code
* String[][] data = new String[3][]
* data[0] = String[]{ "A", "B", "C" };
* data[1] = new String[]{ "1", "2", "3" };
* data[2] = new String[]{ "A1", "B2", "C3"
};
- * </code>
+ * }
* </pre>
*
* <p>
* Calling this method will print:
* </p>
*
- * <pre>
- * <code>
+ * <pre>{@code
* A, B, C
* 1, 2, 3
* A1, B2, C3
- * </code>
+ * }
* </pre>
*
* @param values
@@ -399,8 +396,8 @@ public final class CSVPrinter implements
* If an I/O error occurs
*/
public void printRecords(final Object... values) throws IOException {
-<span class="fc" id="L402"> printRecords(Arrays.asList(values));</span>
-<span class="fc" id="L403"> }</span>
+<span class="fc" id="L399"> printRecords(Arrays.asList(values));</span>
+<span class="fc" id="L400"> }</span>
/**
* Prints all the objects in the given JDBC result set.
@@ -413,25 +410,25 @@ public final class CSVPrinter implements
* Thrown when a database access error occurs.
*/
public void printRecords(final ResultSet resultSet) throws SQLException,
IOException {
-<span class="fc" id="L416"> final int columnCount =
resultSet.getMetaData().getColumnCount();</span>
-<span class="fc bfc" id="L417" title="All 2 branches covered."> while
(resultSet.next()) {</span>
-<span class="fc bfc" id="L418" title="All 2 branches covered."> for
(int i = 1; i <= columnCount; i++) {</span>
-<span class="fc" id="L419"> final Object object =
resultSet.getObject(i);</span>
-<span class="fc bfc" id="L420" title="All 2 branches covered.">
if (object instanceof Clob) {</span>
-<span class="fc" id="L421"> try (Reader reader = ((Clob)
object).getCharacterStream()) {</span>
-<span class="fc" id="L422"> print(reader);</span>
+<span class="fc" id="L413"> final int columnCount =
resultSet.getMetaData().getColumnCount();</span>
+<span class="fc bfc" id="L414" title="All 2 branches covered."> while
(resultSet.next()) {</span>
+<span class="fc bfc" id="L415" title="All 2 branches covered."> for
(int i = 1; i <= columnCount; i++) {</span>
+<span class="fc" id="L416"> final Object object =
resultSet.getObject(i);</span>
+<span class="fc bfc" id="L417" title="All 2 branches covered.">
if (object instanceof Clob) {</span>
+<span class="fc" id="L418"> try (Reader reader = ((Clob)
object).getCharacterStream()) {</span>
+<span class="fc" id="L419"> print(reader);</span>
}
-<span class="fc bfc" id="L424" title="All 2 branches covered.">
} else if (object instanceof Blob) {</span>
-<span class="fc" id="L425"> try (InputStream inputStream =
((Blob) object).getBinaryStream()) {</span>
-<span class="fc" id="L426"> print(inputStream);</span>
+<span class="fc bfc" id="L421" title="All 2 branches covered.">
} else if (object instanceof Blob) {</span>
+<span class="fc" id="L422"> try (InputStream inputStream =
((Blob) object).getBinaryStream()) {</span>
+<span class="fc" id="L423"> print(inputStream);</span>
}
} else {
-<span class="fc" id="L429"> print(object);</span>
+<span class="fc" id="L426"> print(object);</span>
}
}
-<span class="fc" id="L432"> println();</span>
+<span class="fc" id="L429"> println();</span>
}
-<span class="fc" id="L434"> }</span>
+<span class="fc" id="L431"> }</span>
/**
* Prints all the objects with metadata in the given JDBC result set based
on the header boolean.
@@ -443,11 +440,11 @@ public final class CSVPrinter implements
* @since 1.9.0
*/
public void printRecords(final ResultSet resultSet, final boolean
printHeader) throws SQLException, IOException {
-<span class="fc bfc" id="L446" title="All 2 branches covered."> if
(printHeader) {</span>
-<span class="fc" id="L447"> printHeaders(resultSet);</span>
+<span class="fc bfc" id="L443" title="All 2 branches covered."> if
(printHeader) {</span>
+<span class="fc" id="L444"> printHeaders(resultSet);</span>
}
-<span class="fc" id="L449"> printRecords(resultSet);</span>
-<span class="fc" id="L450"> }</span>
+<span class="fc" id="L446"> printRecords(resultSet);</span>
+<span class="fc" id="L447"> }</span>
/**
* Prints all the objects in the given {@link Stream} handling nested
collections/arrays as records.
@@ -462,14 +459,13 @@ public final class CSVPrinter implements
* Given the following data structure:
* </p>
*
- * <pre>
- * <code>
- * List&lt;String[]&gt; data = new ArrayList&lt;&gt;();
+ * <pre>{@code
+ * List<String[]> data = new ArrayList<>();
* data.add(new String[]{ "A", "B", "C" });
* data.add(new String[]{ "1", "2", "3" });
* data.add(new String[]{ "A1", "B2", "C3"
});
- * Stream&lt;String[]&gt; stream = data.stream();
- * </code>
+ * Stream<String[]> stream = data.stream();
+ * }
* </pre>
*
* <p>
@@ -477,11 +473,11 @@ public final class CSVPrinter implements
* </p>
*
* <pre>
- * <code>
+ * {@code
* A, B, C
* 1, 2, 3
* A1, B2, C3
- * </code>
+ * }
* </pre>
*
* @param values
@@ -492,7 +488,7 @@ public final class CSVPrinter implements
*/
@SuppressWarnings({ "resource" }) // Caller closes.
public void printRecords(final Stream<?> values) throws IOException {
-<span class="fc" id="L495">
IOStream.adapt(values).forEachOrdered(this::printRecordObject);</span>
-<span class="fc" id="L496"> }</span>
+<span class="fc" id="L491">
IOStream.adapt(values).forEachOrdered(this::printRecordObject);</span>
+<span class="fc" id="L492"> }</span>
}
-</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.11.202310140853</span></div></body></html>
\ No newline at end of file
+</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file