private void adjustSplitsDatetime() { if (splits != null) { for (QifTransaction split : splits) { split.date = this.date; } } }
private void parseCategory(QifTransaction t, String line) { String category = trimFirstChar(line); int i = category.indexOf('/'); if (i != -1) { t.categoryClass = category.substring(i + 1); category = category.substring(0, i); } if (isTransferCategory(category)) { t.toAccount = category.substring(1, category.length() - 1); } else { t.category = category; } }
public void readFrom(QifBufferedReader r, QifDateFormat dateFormat, Currency currency) throws IOException { QifTransaction split = null; String line; while ((line = r.readLine()) != null) { if (line.startsWith("^")) { break; } if (line.startsWith("D")) { this.date = parseDate(trimFirstChar(line), dateFormat); } else if (line.startsWith("T")) { this.amount = parseMoney(trimFirstChar(line), currency); } else if (line.startsWith("P")) { this.payee = trimFirstChar(line); } else if (line.startsWith("M")) { this.memo = trimFirstChar(line); } else if (line.startsWith("C")) { this.status = trimFirstChar(line); } else if (line.startsWith("N")) { this.number = trimFirstChar(line); } else if (line.startsWith("L")) { parseCategory(this, line); } else if (line.startsWith("S")) { addSplit(split); split = new QifTransaction(); parseCategory(split, line); } else if (line.startsWith("$")) { if (split != null) { split.amount = parseMoney(trimFirstChar(line), currency); } } else if (line.startsWith("E") && split != null) { split.memo = trimFirstChar(line); } } addSplit(split); adjustSplitsDatetime(); }