org_aspectj_ajde_internal_AspectJBuildManagerTest_java
org.aspectj.weaver.bcel.BcelAdvice
@Override
    public int compareTo(Object other) {
        ResolvedType o_declaringAspect;
        if (!(other instanceof BcelAdvice)) {
            return 0;
        }
        BcelAdvice o = (BcelAdvice)other;
        if (this.kind.getPrecedence() != o.kind.getPrecedence()) {
            if (this.kind.getPrecedence() > o.kind.getPrecedence()) {
                return 1;
            }
            return -1;
        }
        if (this.kind.isCflow()) {
            boolean isBelow;
            boolean bl = isBelow = this.kind == AdviceKind.CflowBelowEntry;
            if (this.innerCflowEntries.contains(o)) {
                return isBelow ? 1 : -1;
            }
            if (o.innerCflowEntries.contains(this)) {
                return isBelow ? -1 : 1;
            }
            return 0;
        }
        if (this.kind.isPerEntry() || this.kind == AdviceKind.Softener) {
            return 0;
        }
        World world = this.concreteAspect.getWorld();
        int ret = this.concreteAspect.getWorld().compareByPrecedence(this.concreteAspect, o.concreteAspect);
        if (ret != 0) {
            return ret;
        }
        ResolvedType declaringAspect = this.getDeclaringAspect().resolve(world);
        if (declaringAspect == (o_declaringAspect = o.getDeclaringAspect().resolve(world))) {
            if (this.kind.isAfter() || o.kind.isAfter()) {
                return this.getStart() < o.getStart() ? -1 : 1;
            }
            return this.getStart() < o.getStart() ? 1 : -1;
        }
        if (declaringAspect.isAssignableFrom(o_declaringAspect)) {
            return -1;
        }
        if (o_declaringAspect.isAssignableFrom(declaringAspect)) {
            return 1;
        }
        return 0;
    }
 -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.lang.String.hashCode(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.lang.String.hashCode(): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.Map.containsKey(java.lang.Object): boolean [CALL] [CALL] -> java.lang.String.hashCode(): int [EXIT] [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object [CALL] [CALL] -> java.lang.String.hashCode(): int [EXIT] [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT]