X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FLedgerAccount.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FLedgerAccount.java;h=06ac4da110f61acb3a73c1309f3da1332a88f671;hp=1e2a1a4f6834ed306d1ffb948715f26379c5df7f;hb=916547239190f7daf921f2066593637cfca877fc;hpb=bba9ffd8fa7af0e3a940461cbc6448e266794aa6 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 1e2a1a4f..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();