1 package net.ktnx.mobileledger;
3 import android.support.annotation.NonNull;
5 import java.util.ArrayList;
7 import java.util.regex.Matcher;
8 import java.util.regex.Pattern;
12 private String shortName;
14 private String parentName;
15 private boolean hidden;
16 private boolean hiddenToBe;
17 private List<LedgerAmount> amounts;
18 static Pattern higher_account = Pattern.compile("^[^:]+:");
20 LedgerAccount(String name) {
25 public boolean isHidden() {
29 public void setHidden(boolean hidden) {
33 LedgerAccount(String name, float amount) {
36 this.amounts = new ArrayList<LedgerAmount>();
37 this.addAmount(amount);
40 public void setName(String name) {
45 private void stripName() {
48 StringBuilder parentBuilder = new StringBuilder();
50 Matcher m = higher_account.matcher(shortName);
53 parentBuilder.append(m.group(0));
54 shortName = m.replaceFirst("");
58 if (parentBuilder.length() > 0)
59 parentName = parentBuilder.substring(0, parentBuilder.length() - 1);
60 else parentName = null;
67 void addAmount(float amount, String currency) {
68 if (amounts == null ) amounts = new ArrayList<>();
69 amounts.add(new LedgerAmount(amount, currency));
71 void addAmount(float amount) {
72 this.addAmount(amount, null);
75 String getAmountsString() {
76 if ((amounts == null) || amounts.isEmpty()) return "";
78 StringBuilder builder = new StringBuilder();
79 for( LedgerAmount amount : amounts ) {
80 String amt = amount.toString();
81 if (builder.length() > 0) builder.append('\n');
85 return builder.toString();
88 public int getLevel() {
93 public String getShortName() {
97 public String getParentName() {
100 public void togglehidden() {
104 public boolean isHiddenToBe() {
107 public void setHiddenToBe(boolean hiddenToBe) {
108 this.hiddenToBe = hiddenToBe;
110 public void toggleHiddenToBe() {
111 setHiddenToBe(!hiddenToBe);