package de.onyxbits.tradetrax.remix;
import java.util.List;
import java.util.Vector;
/**
* Used for configuring which stock columns to show in a ledger view.
*
* @author patrick
*
*/
public enum LedgerColumns {
ASSET("asset"), NAME("name"), VARIANT("variant"), ID("id"), ACQUIRED("acquired"), BUYPRICE(
"buyPrice"), UNITS("units"), LIQUIDATED("liquidated"), SELLPRICE("sellPrice"), PROFIT(
"profit"), COMMENT("comment"), LOCATION("location");
public static final String DEFAULT = "asset, id, acquired, buyPrice, units, liquidated, sellPrice, profit";
private String name;
private LedgerColumns(String name) {
this.name = name;
}
public String getName() {
return name;
}
/**
* Dump a list of column names in csv format
*
* @param lst
* the columns
* @return a CSV string, suitable for serializing
*/
public static String toCsv(List<LedgerColumns> lst) {
StringBuffer sb = new StringBuffer();
for (LedgerColumns lc : lst) {
if (sb.length() > 0) {
sb.append(", ");
}
sb.append(lc.getName());
}
return sb.toString();
}
/**
* Parse a csv string containing column names
*
* @param csv
* the string
* @return the columns specified in the string.
*/
public static List<LedgerColumns> fromCsv(String csv) {
String[] tmp = csv.split(" *, *");
Vector<LedgerColumns> ret = new Vector<LedgerColumns>();
for (int i = 0; i < tmp.length; i++) {
for (LedgerColumns lc : LedgerColumns.values()) {
if (tmp[i].equals(lc.getName())) {
ret.add(lc);
}
}
}
return ret;
}
}