X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FTransactionListItem.java;h=1e62ff1320cdded3cae4e50ab2c627a68ad51f61;hp=6f1ee9ebcb8eabfdeaa7844fd02f4c476ad41191;hb=2d85826653a8ba3e619afc83c5c91216a7fdb0b6;hpb=1eb1a8f63e0536b089a624994c2bcf5f0b462580 diff --git a/app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java b/app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java index 6f1ee9eb..1e62ff13 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java @@ -22,20 +22,25 @@ import androidx.annotation.NonNull; import net.ktnx.mobileledger.App; import net.ktnx.mobileledger.utils.SimpleDate; +import org.jetbrains.annotations.NotNull; + public class TransactionListItem { private final Type type; private SimpleDate date; private boolean monthShown; private LedgerTransaction transaction; - public TransactionListItem(SimpleDate date, boolean monthShown) { + public TransactionListItem(@NotNull SimpleDate date, boolean monthShown) { this.type = Type.DELIMITER; this.date = date; this.monthShown = monthShown; } - public TransactionListItem(LedgerTransaction transaction) { + public TransactionListItem(@NotNull LedgerTransaction transaction) { this.type = Type.TRANSACTION; this.transaction = transaction; } + public TransactionListItem() { + this.type = Type.HEADER; + } @NonNull public Type getType() { return type; @@ -44,14 +49,20 @@ public class TransactionListItem { public SimpleDate getDate() { if (date != null) return date; + if (type == Type.HEADER) + throw new IllegalStateException("Header item has no date"); transaction.loadData(App.getDatabase()); return transaction.getDate(); } public boolean isMonthShown() { return monthShown; } + @NotNull public LedgerTransaction getTransaction() { + if (type != Type.TRANSACTION) + throw new IllegalStateException( + String.format("Item type is not %s, but %s", Type.TRANSACTION, type)); return transaction; } - public enum Type {TRANSACTION, DELIMITER} + public enum Type {TRANSACTION, DELIMITER, HEADER} }