]> git.ktnx.net Git - mobile-ledger-staging.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java
convert the last update global header to a list header
[mobile-ledger-staging.git] / app / src / main / java / net / ktnx / mobileledger / model / TransactionListItem.java
index 6f1ee9ebcb8eabfdeaa7844fd02f4c476ad41191..1e62ff1320cdded3cae4e50ab2c627a68ad51f61 100644 (file)
@@ -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}
 }