public class CSVManager extends Object
Jeder CSVManager kann nur für eine Attributgruppe verwendet werden, die schon im Konstruktor endgültig festgelegt wird.
Modifier and Type | Class and Description |
---|---|
private class |
CSVManager.CSVColumn
Eine CSVColumn ist entweder ein ansonsten leeres Objekt für eine Spalte, die noch
Subspalten hat, oder sie kapselt die Informationen, die eine Spalte in einer
CSV-Datei benötigt, also Name und die Informationen des CellKeys, aus dem sie
konstruiert wurde, die benötigt werden, um die Inhalte von Datensätzen ermitteln
zu können.
|
Modifier and Type | Field and Description |
---|---|
private AttributeGroup |
_attributeGroup
Jeder CSVManager kann nur für eine Attributgruppe verwendet werden, die schon
im Konstruktor endgültig festgelegt wird.
|
private Map<CSVManager.CSVColumn,Map<DataTableObject.DataTableObjectId,String>> |
_csvColumnToText
Enthält die CSV-Spalten als Schlüssel und als Wert je eine HashMap, die wiederum
als Schlüssel eine Datensatzkennung enthält und als Wert den Text der Zelle.
|
private List<DataTableObject> |
_dataTableObjects
Enthält die benötigten Datensätze in der richtigen Reihenfolge
|
private String |
_delimiter |
private Set<CellKey> |
_selectedCellKeys
Die im Konstruktor übergebene Menge selektierter CellkKeys bestimmt Spalten und
diejenigen Einträge, die nicht leer sein können.
|
private static String |
TIME_FORMAT
speichert das Zeitformat für die Spalte 'Zeit'
|
Constructor and Description |
---|
CSVManager(AttributeGroup attributeGroup,
Set<CellKey> selectedCellKeys,
List<DataTableObject> dataTableObjects)
Jeder CSVManager kann nur für eine Attributgruppe verwendet werden, die nicht veränderbar ist.
|
Modifier and Type | Method and Description |
---|---|
private String |
encodeForCSV(String s) |
String |
getCSVHeaderLine(boolean rowHeader)
Gibt die Titelzeile der CSV-Datei zurück.
|
private StringBuffer |
getCSVLineForDataTableObject(DataTableObject dataTableObject,
boolean rowHeader) |
String |
getCSVLines(boolean rowHeader)
Gibt die Zeilen der CSV-Datei, die die Inhalte enthalten, zurück.
|
private void |
initCSVColumns(Map<String,DataTableObject> dataTableObjectMap) |
void |
setDelimiter(String delimiter)
Setzt das Trennzeichen, das in der Header- und den Datenzeilen verwendet wird.
|
private String _delimiter
private final AttributeGroup _attributeGroup
private final Set<CellKey> _selectedCellKeys
private final List<DataTableObject> _dataTableObjects
private final Map<CSVManager.CSVColumn,Map<DataTableObject.DataTableObjectId,String>> _csvColumnToText
private static final String TIME_FORMAT
public CSVManager(AttributeGroup attributeGroup, Set<CellKey> selectedCellKeys, List<DataTableObject> dataTableObjects)
null
ist. Die Inhalte der Datenzeilen werden den DataTableObjects entnommen werden.attributeGroup
- die AttributgruppeselectedCellKeys
- die CellKeysdataTableObjects
- die DataTableObjectspublic String getCSVHeaderLine(boolean rowHeader)
true
, so werden
auch die Spalten der Zeilenköpfe (Art, Zeit und Objekt) aufgeführt.
Wurde im Konstruktor eine von null
verschiedene Collection von CellKeys angegeben,
so wirkt diese als Filter auf Spalten, Zeilen und Zellen. Für die Header-Zeile heißt dies: es
treten nur Spalten auf, für die mindestens ein selektierter CellKey existiert.
public String getCSVLines(boolean rowHeader)
true
,
so werden auch die Inhalte der Zeilenköpfe (Art, Zeit und Objekt) aufgeführt.
Wurde im Konstruktor eine von null
verschiedene Collection von CellKeys angegeben,
so wirkt diese als Filter auf Spalten, Zeilen und Zellen. Für die Datenzeilen heißt dies, dass nur
die Inhalte von Zellen mit selektierten CellKeys ausgegeben werden, und dass leere Spalten und
leere Zeilen gar nicht ausgeben werden.
public void setDelimiter(String delimiter)
delimiter
- private void initCSVColumns(Map<String,DataTableObject> dataTableObjectMap)
private StringBuffer getCSVLineForDataTableObject(DataTableObject dataTableObject, boolean rowHeader)