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 List<LedgerAmount> amounts;
17 private boolean selected;
18 static Pattern higher_account = Pattern.compile("^[^:]+:");
20 LedgerAccount(String name) {
26 public boolean isHidden() {
30 public void setHidden(boolean hidden) {
34 LedgerAccount(String name, float amount) {
37 this.amounts = new ArrayList<LedgerAmount>();
38 this.addAmount(amount);
41 public void setName(String name) {
46 private void stripName() {
49 StringBuilder parentBuilder = new StringBuilder();
51 Matcher m = higher_account.matcher(shortName);
54 parentBuilder.append(m.group(0));
55 shortName = m.replaceFirst("");
59 if (parentBuilder.length() > 0)
60 parentName = parentBuilder.substring(0, parentBuilder.length() - 1);
61 else parentName = null;
68 void addAmount(float amount, String currency) {
69 if (amounts == null ) amounts = new ArrayList<>();
70 amounts.add(new LedgerAmount(amount, currency));
72 void addAmount(float amount) {
73 this.addAmount(amount, null);
76 String getAmountsString() {
77 if ((amounts == null) || amounts.isEmpty()) return "";
79 StringBuilder builder = new StringBuilder();
80 for( LedgerAmount amount : amounts ) {
81 String amt = amount.toString();
82 if (builder.length() > 0) builder.append('\n');
86 return builder.toString();
89 public int getLevel() {
94 public String getShortName() {
98 public String getParentName() {
102 public boolean isSelected() {
106 public void setSelected(boolean selected) {
107 this.selected = selected;
110 public void toggleSelected() {
111 selected = !selected;