/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.management.stats.printers;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Collection;
/**
* <code>CSVPrinter</code> prints service stats in CSV format
*/
public class CSVPrinter extends AbstractTablePrinter {
private String delim = ",";
private boolean printHeaders = true;
public CSVPrinter(Writer out) {
super(out);
}
public CSVPrinter(OutputStream out) {
super(out);
}
public void print(Collection stats) {
try {
String[][] table = getTable(stats);
int i = (printHeaders ? 0 : 1);
for (; i < table.length; i++) {
for (int j = 0; j < table[0].length; j++) {
print(table[i][j]);
if (j + 1 != table[i].length) {
print(delim);
}
}
println();
}
} catch (Throwable e) {
// TODO MULE-863: Unlikely to be sufficient
// (and nothing explicitly thrown above)
e.printStackTrace();
}
}
public boolean isPrintHeaders() {
return printHeaders;
}
public void setPrintHeaders(boolean printHeaders) {
this.printHeaders = printHeaders;
}
}