package com.metservice.kanban;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;
import com.metservice.kanban.model.KanbanJournalItem;
public class KanbanJournalFile {
private File file;
private List<KanbanJournalItem> journalItems = new ArrayList<KanbanJournalItem>();
public KanbanJournalFile(File file) throws IOException {
this.file = file;
file.createNewFile();
readJournal();
}
public void writeJournal() throws IOException {
CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
for (KanbanJournalItem item : journalItems) {
writeItem(csvWriter, item);
}
csvWriter.close();
}
public void readJournal() throws IOException {
CSVReader csvReader = new CSVReader(new FileReader(file));
try {
for (String[] row = csvReader.readNext(); row != null; row = csvReader.readNext()) {
KanbanJournalItem item = new KanbanJournalItem(Integer.parseInt(row[0]), row[1], row[2], row[3]);
journalItems.add(item);
}
// journalItems.add(new KanbanJournalItem("2011-10-10", "Hello", "Robert"));
// journalItems.add(new KanbanJournalItem("2011-12-10", "World", "Rob"));
Collections.sort(journalItems);
} finally {
csvReader.close();
}
}
public List<KanbanJournalItem> getJournalItems() {
return journalItems;
}
public void setJournalItems(List<KanbanJournalItem> items) {
journalItems = items;
}
private void writeItem(CSVWriter writer, KanbanJournalItem item) {
String[] row = new String[] {
item.getId().toString(),
item.getDate().toString(),
item.getText(),
item.getUserName()
};
writer.writeNext(row);
}
}