Translate

четвер, 18 жовтня 2012 р.

"Best Practice"


Вчора знайомий скинув код методу. В ньому треба пофіксати багу. І звичайно тести є, але вони вже 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;
        }
    }
}


Написати працюючий код це тільки частина справи...