java-org.hwo/src/org/hwo/csv/CSVTableRow.java

94 lines
1.7 KiB
Java

package org.hwo.csv;
import java.util.ArrayList;
public class CSVTableRow {
public static CSVTableRow NULL_ROW = new CSVTableRow("");
private ArrayList<Object> values; //first value == rowTitle
public CSVTableRow() {
init();
}
public CSVTableRow(String... values) {
init();
for (String value : values) {
addValue(value);
}
}
private void init() {
this.values = new ArrayList<>();
}
//TODO add functionality for column detection (i.e. string column id, Object value)
public void setValue(int column, Object value) {
if(column < values.size()) {
this.values.set(column, value);
}
}
public Object getValue(int column) {
if(column >= this.values.size()) {
return null;
}
return this.values.get(column);
}
public Object[] getValues() {
return this.values.toArray();
}
public int getColumnCount() {
return this.values.size();
}
public void addValue(Object value) {
this.values.add(value);
}
public void addData(Object[] data) {
for(Object o : data) {
this.values.add(o);
}
}
public String getName() {
Object n = this.values.get(0);
if(n != null && n.getClass() == String.class) {
return (String)n;
}
return null;
}
public void clear() {
this.values.clear();
}
public String getCSV() {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < values.size(); i++) {
Object obj = values.get(i);
if(obj != null) {
if(obj.getClass() == String.class) {
sb.append(String.format("\"%s\"",obj.toString()));
}
else {
sb.append(obj.toString());
}
}
else {
}
if(i < this.values.size() -1)
sb.append(',');
}
sb.append("\n");
return sb.toString();
}
}