94 lines
1.7 KiB
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();
|
|
}
|
|
|
|
}
|