Sort methods.

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/csv/trunk@1560382 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gary D. Gregory 2014-01-22 15:25:22 +00:00
parent 011510efbd
commit 58233665d0
1 changed files with 97 additions and 97 deletions

View File

@ -68,15 +68,10 @@ public final class CSVPrinter implements Flushable, Closeable {
// printing implementation // printing implementation
// ====================================================== // ======================================================
/** public void close() throws IOException {
* Outputs the record separator. if (out instanceof Closeable) {
* ((Closeable) out).close();
* @throws IOException }
* If an I/O error occurs
*/
public void println() throws IOException {
out.append(format.getRecordSeparator());
newRecord = true;
} }
/** /**
@ -92,77 +87,23 @@ public final class CSVPrinter implements Flushable, Closeable {
} }
/** /**
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine * Prints the string as the next value on the line. The value will be escaped or encapsulated as needed.
* characters will be escaped.
* *
* @param values * @param value
* values to output. * value to be output.
* @throws IOException * @throws IOException
* If an I/O error occurs * If an I/O error occurs
*/ */
public void printRecord(final Object... values) throws IOException { public void print(final Object value) throws IOException {
for (final Object value : values) { // null values are considered empty
print(value); String strValue;
if (value == null) {
final String nullString = format.getNullString();
strValue = nullString == null ? Constants.EMPTY : nullString;
} else {
strValue = value.toString();
} }
println(); this.print(value, strValue, 0, strValue.length());
}
/**
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
* characters will be escaped.
*
* @param values
* values to output.
* @throws IOException
* If an I/O error occurs
*/
public void printRecord(final Iterable<?> values) throws IOException {
for (final Object value : values) {
print(value);
}
println();
}
/**
* Prints a comment on a new line among the delimiter separated values. Comments will always begin on a new line
* and occupy a least one full line. The character specified to start comments and a space will be inserted at the
* beginning of each new line in the comment.
* <p/>
* If comments are disabled in the current CSV format this method does nothing.
*
* @param comment
* the comment to output
* @throws IOException
* If an I/O error occurs
*/
public void printComment(final String comment) throws IOException {
if (!format.isCommentingEnabled()) {
return;
}
if (!newRecord) {
println();
}
out.append(format.getCommentStart().charValue());
out.append(SP);
for (int i = 0; i < comment.length(); i++) {
final char c = comment.charAt(i);
switch (c) {
case CR:
if (i + 1 < comment.length() && comment.charAt(i + 1) == LF) {
i++;
}
//$FALL-THROUGH$ break intentionally excluded.
case LF:
println();
out.append(format.getCommentStart().charValue());
out.append(SP);
break;
default:
out.append(c);
break;
}
}
println();
} }
private void print(final Object object, final CharSequence value, private void print(final Object object, final CharSequence value,
@ -332,34 +273,99 @@ public final class CSVPrinter implements Flushable, Closeable {
} }
/** /**
* Prints the string as the next value on the line. The value will be escaped or encapsulated as needed. * Prints a comment on a new line among the delimiter separated values. Comments will always begin on a new line
* and occupy a least one full line. The character specified to start comments and a space will be inserted at the
* beginning of each new line in the comment.
* <p/>
* If comments are disabled in the current CSV format this method does nothing.
* *
* @param value * @param comment
* value to be output. * the comment to output
* @throws IOException * @throws IOException
* If an I/O error occurs * If an I/O error occurs
*/ */
public void print(final Object value) throws IOException { public void printComment(final String comment) throws IOException {
// null values are considered empty if (!format.isCommentingEnabled()) {
String strValue; return;
if (value == null) {
final String nullString = format.getNullString();
strValue = nullString == null ? Constants.EMPTY : nullString;
} else {
strValue = value.toString();
} }
this.print(value, strValue, 0, strValue.length()); if (!newRecord) {
println();
}
out.append(format.getCommentStart().charValue());
out.append(SP);
for (int i = 0; i < comment.length(); i++) {
final char c = comment.charAt(i);
switch (c) {
case CR:
if (i + 1 < comment.length() && comment.charAt(i + 1) == LF) {
i++;
}
//$FALL-THROUGH$ break intentionally excluded.
case LF:
println();
out.append(format.getCommentStart().charValue());
out.append(SP);
break;
default:
out.append(c);
break;
}
}
println();
} }
/** /**
* Prints all the objects in the given array. * Outputs the record separator.
*
* @throws IOException
* If an I/O error occurs
*/
public void println() throws IOException {
out.append(format.getRecordSeparator());
newRecord = true;
}
/**
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
* characters will be escaped.
*
* @param values
* values to output.
* @throws IOException
* If an I/O error occurs
*/
public void printRecord(final Iterable<?> values) throws IOException {
for (final Object value : values) {
print(value);
}
println();
}
/**
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
* characters will be escaped.
*
* @param values
* values to output.
* @throws IOException
* If an I/O error occurs
*/
public void printRecord(final Object... values) throws IOException {
for (final Object value : values) {
print(value);
}
println();
}
/**
* Prints all the objects in the given collection.
* *
* @param values * @param values
* the values to print. * the values to print.
* @throws IOException * @throws IOException
* If an I/O error occurs * If an I/O error occurs
*/ */
public void printRecords(final Object[] values) throws IOException { public void printRecords(final Iterable<?> values) throws IOException {
for (final Object value : values) { for (final Object value : values) {
if (value instanceof Object[]) { if (value instanceof Object[]) {
this.printRecord((Object[]) value); this.printRecord((Object[]) value);
@ -372,14 +378,14 @@ public final class CSVPrinter implements Flushable, Closeable {
} }
/** /**
* Prints all the objects in the given collection. * Prints all the objects in the given array.
* *
* @param values * @param values
* the values to print. * the values to print.
* @throws IOException * @throws IOException
* If an I/O error occurs * If an I/O error occurs
*/ */
public void printRecords(final Iterable<?> values) throws IOException { public void printRecords(final Object[] values) throws IOException {
for (final Object value : values) { for (final Object value : values) {
if (value instanceof Object[]) { if (value instanceof Object[]) {
this.printRecord((Object[]) value); this.printRecord((Object[]) value);
@ -409,10 +415,4 @@ public final class CSVPrinter implements Flushable, Closeable {
println(); println();
} }
} }
public void close() throws IOException {
if (out instanceof Closeable) {
((Closeable) out).close();
}
}
} }