Вчора знайомий скинув код методу. В ньому треба пофіксати багу. І звичайно тести є, але вони вже 2 роки закоментані …. 🙂
/**
* Private method
*/
private void setCombined() {
// global list is grouped by AGC + FGC
int currentAGC = this.allSortedNetlines.get(0).getAircraftGrpCode();
int currentFGC = this.allSortedNetlines.get(0).getFlightGroupCode();
// int nextAGC = 0;
int sequentialFGC = 0;
/* for the whole list */
for (int i = 0; i < this.listSize; i++) {
int initialGroupIndex = i;
/* for each AGC */
while (currentAGC == this.allSortedNetlines.get(i).getAircraftGrpCode()) {
/* for each FGC in */
currentFGC = this.allSortedNetlines.get(i).getFlightGroupCode();
initialGroupIndex = i;
sequentialFGC = 0;
while (currentFGC == this.allSortedNetlines.get(i).getFlightGroupCode()) {
this.allSortedNetlines.get(i).setCombined("N");// default value
if (i + 1 == this.listSize || currentAGC != this.allSortedNetlines.get(i).getAircraftGrpCode()) {
if (currentAGC == this.allSortedNetlines.get(i).getAircraftGrpCode()) {
sequentialFGC++;
}
currentAGC = 0;
break;
} else {
i++;
}
sequentialFGC++;
}
if (sequentialFGC > 2) {
for (int j = initialGroupIndex; j <= (initialGroupIndex + sequentialFGC - 1); j++) {
this.allSortedNetlines.get(j).setCombined("Y");
this.allSortedNetlines.get(j).setLegsCounter(sequentialFGC);/* bFix 20070601 by gda : 4 legs */
}
}
}
currentAGC = this.allSortedNetlines.get(i).getAircraftGrpCode();
if (i + 1 != this.listSize) {
i--;
}// i gets the value of the last checked record
else {
break;
}
}
}
Написати працюючий код це тільки частина справи…