Subversion Repositories DevTools

Rev

Rev 7133 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7079 dpurdie 1
package com.erggroup.buildtool.ripple;
2
 
3
import java.util.Comparator;
4
 
5
 
6
/** Class to contain package build information
7
 *  Information not stored in the package as its dynamic
8
 */
9
class PlannedPackage {
7201 dpurdie 10
    /**
11
     * The build level assigned to the package in the collection
12
     */
7079 dpurdie 13
    int mBuildLevel = 0;
7201 dpurdie 14
 
15
    /**
16
     * The package
17
     */
7079 dpurdie 18
    Package mPkg = null;
19
 
7201 dpurdie 20
    /**
21
     * A flag used in the calculation of build order
22
     */
23
    boolean mProcessed = false;
24
 
7133 dpurdie 25
    public PlannedPackage (Package pkg)
7079 dpurdie 26
    {
27
        this.mPkg = pkg;
28
    }
29
 
7133 dpurdie 30
    /** Comparator for sorting package collections by mRippleOrder, mBuildTime and mSeqId.
31
     *  mSeqId help UTF reproducibility  
7079 dpurdie 32
     */
33
    static final Comparator<PlannedPackage> BuildOrderComparitor = new Comparator<PlannedPackage>() {
34
 
35
        /**
7133 dpurdie 36
         * Returns -ve: p1 < p2
7079 dpurdie 37
         *           0: p1 = p2
38
         *         +ve: p1 > p2
39
         */
40
        public int compare (PlannedPackage p1, PlannedPackage p2) {
41
            if (p1.mBuildLevel == p2.mBuildLevel)
42
            {
7133 dpurdie 43
                if (p1.mPkg.mBuildTime == p2.mPkg.mBuildTime) {
44
                    return p1.mPkg.mSeqId - p2.mPkg.mSeqId;
45
                }
7079 dpurdie 46
                return p1.mPkg.mBuildTime - p2.mPkg.mBuildTime;
47
            }
48
            return p1.mBuildLevel - p2.mBuildLevel;
49
        }
50
    };
51
 
52
}