get method
get the target account, by descending into the tree of accounts null safe, if no account was found a dummy one is generated .
Implementation
Konto get(String ktoName, {String orgName = "undef"}) {
if (orgName == "undef") orgName = ktoName;
if (name == ktoName) {
return this;
} else if (children.containsKey(ktoName)) {
return children[ktoName]!;
} else if (!children.containsKey(ktoName) && ktoName.length > 1) {
//maybe recurse?
String key = ktoName[0];
String rest = ktoName.substring(1);
if (ktoName.startsWith(name)) {
rest = ktoName.substring(name.length);
key = rest[0];
rest = rest.substring(1);
if (rest.length <= 0) {
children[key] = Konto(number: key, name: orgName);
return children[key]!;
}
}
if (children.containsKey(key))
return children[key]!.get(rest, orgName: orgName);
// if(key !=number) //study more, o how to cope with unrelated names
// {
// //orgName = name+orgName;
// print("ehm $ktoName differs from me ($number) .... rewriting orgName to $orgName" );
// }
children[key] = Konto(number: key, plan: this);
return children[key]!.get(ktoName.substring(1), orgName: orgName);
}
children[ktoName] = Konto(number: ktoName, name: orgName);
return children[ktoName]!;
}