1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| private long searchReihenfolge(int refMax) {
int refNr = Integer.parseInt(adresse.getEintragung().getReference());
long reheinfolge;
//zuerst die gleiche reference
reheinfolge = searchAdressRef(refNr, 1);
//Dann -1 reference
if (reheinfolge == lgZero && refNr != 0) {
reheinfolge = searchReihenfolgeDesc(refNr - 1, 1);
}
//Endlich +x reference
if (reheinfolge == lgZero) {
reheinfolge = searchReihenfolgeAsc(refNr + 1, -1, refMax);
}
if (reheinfolge == lgZero) {
return adresse.getReihenfolge();
}
return reheinfolge;
}
private Long searchReihenfolgeAsc(int refNr, int toAdd, int refMax){
long foundReihenfolge = lgZero;
for(int i=(int)refNr;i <=refMax;i++) {
Long res = searchAdressRef(refNr, toAdd);
if(res !=lgZero) {
foundReihenfolge = res;
break;
}
}
return foundReihenfolge;
}
private Long searchReihenfolgeDesc(int refNr, int toAdd){
long foundReihenfolge = lgZero;
for(int i=(int)refNr;i >=0;i--) {
Long res = searchAdressRef(refNr, toAdd);
if(res !=lgZero) {
foundReihenfolge = res;
break;
}
}
return foundReihenfolge;
}
private Long searchAdressRef(int refNr, int toAdd) {
for (FVAdresse adr : adresseList) {
if (refNr == Integer.parseInt(adr.getEintragung().getReference())) {
return adr.getReihenfolge() + toAdd;
}
}
return lgZero;
} |
Partager