X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FLedgerAccount.java;h=06ac4da110f61acb3a73c1309f3da1332a88f671;hb=916547239190f7daf921f2066593637cfca877fc;hp=c76f2d564970193e29b37740f88a5ec86857c5d4;hpb=8098a8b37a4331b9faf6cf50a51a0d7aa9677421;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/model/LedgerAccount.java b/app/src/main/java/net/ktnx/mobileledger/model/LedgerAccount.java index c76f2d56..06ac4da1 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/LedgerAccount.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/LedgerAccount.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.regex.Pattern; public class LedgerAccount { + private static final char ACCOUNT_DELIMITER = ':'; static Pattern reHigherAccount = Pattern.compile("^[^:]+:"); private final LedgerAccount parent; private long dbId; @@ -51,7 +52,7 @@ public class LedgerAccount { } @Nullable public static String extractParentName(@NonNull String accName) { - int colonPos = accName.lastIndexOf(':'); + int colonPos = accName.lastIndexOf(ACCOUNT_DELIMITER); if (colonPos < 0) return null; // no parent account -- this is a top-level account else @@ -73,6 +74,15 @@ public class LedgerAccount { return res; } + public static int determineLevel(String accName) { + int level = 0; + int delimiterPosition = accName.indexOf(ACCOUNT_DELIMITER); + while (delimiterPosition >= 0) { + level++; + delimiterPosition = accName.indexOf(ACCOUNT_DELIMITER, delimiterPosition + 1); + } + return level; + } @Override public int hashCode() { return name.hashCode(); @@ -212,6 +222,21 @@ public class LedgerAccount { return dbo; } + @NonNull + public AccountWithAmounts toDBOWithAmounts() { + AccountWithAmounts dbo = new AccountWithAmounts(); + dbo.account = toDBO(); + + dbo.amounts = new ArrayList<>(); + for (LedgerAmount amt : getAmounts()) { + AccountValue val = new AccountValue(); + val.setCurrency(amt.getCurrency()); + val.setValue(amt.getAmount()); + dbo.amounts.add(val); + } + + return dbo; + } public long getId() { return dbId; }