]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/LedgerTransactionAccount.java
LedgerTransactionAccount: add copy constructor
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / LedgerTransactionAccount.java
index 6f8c3b4476a5136dcb787ec2f25f4ae05f8380d5..801e0169845f8c2ff2daedb06177eec7d62ba3d6 100644 (file)
@@ -17,6 +17,8 @@
 
 package net.ktnx.mobileledger.model;
 
+import androidx.annotation.NonNull;
+
 import net.ktnx.mobileledger.json.ParsedAmount;
 import net.ktnx.mobileledger.json.ParsedPosting;
 import net.ktnx.mobileledger.json.ParsedQuantity;
@@ -24,13 +26,11 @@ import net.ktnx.mobileledger.json.ParsedStyle;
 
 import java.util.ArrayList;
 
-import androidx.annotation.NonNull;
-
 public class LedgerTransactionAccount {
     private String accountName;
     private String shortAccountName;
     private float amount;
-    private boolean amountSet;
+    private boolean amountSet = false;
     private String currency;
 
     public LedgerTransactionAccount(String accountName, float amount) {
@@ -46,20 +46,27 @@ public class LedgerTransactionAccount {
     public LedgerTransactionAccount(String accountName) {
         this.accountName = accountName;
     }
+    public LedgerTransactionAccount(LedgerTransactionAccount origin) {
+        // copy constructor
+        setAccountName(origin.getAccountName());
+        if (origin.isAmountSet())
+            setAmount(origin.getAmount());
+        currency = origin.getCurrency();
+    }
 
     public String getAccountName() {
         return accountName;
     }
-    public String getShortAccountName() {
-        return shortAccountName;
-    }
     public void setAccountName(String accountName) {
         this.accountName = accountName;
         shortAccountName = accountName.replaceAll("(?<=^|:)(.)[^:]+(?=:)", "$1");
     }
-
+    public String getShortAccountName() {
+        return shortAccountName;
+    }
     public float getAmount() {
-        if (!amountSet) throw new IllegalStateException("Account amount is not set");
+        if (!amountSet)
+            throw new IllegalStateException("Account amount is not set");
 
         return amount;
     }
@@ -81,7 +88,8 @@ public class LedgerTransactionAccount {
     }
     @NonNull
     public String toString() {
-        if (!amountSet) return "";
+        if (!amountSet)
+            return "";
 
         StringBuilder sb = new StringBuilder();
         if (currency != null) {