org_aspectj_ajde_internal_AspectJBuildManagerTest_java
org.aspectj.weaver.model.AsmRelationshipProvider
protected static IProgramElement getNode(AsmManager model, Shadow shadow) {
        UnresolvedType actualType;
        UnresolvedType type;
        Member actualEnclosingMember;
        Member enclosingMember = shadow.getEnclosingCodeSignature();
        IProgramElement enclosingNode = null;
        enclosingNode = shadow instanceof BcelShadow ? ((actualEnclosingMember = ((BcelShadow)shadow).getRealEnclosingCodeSignature()) == null ? AsmRelationshipProvider.lookupMember(model.getHierarchy(), shadow.getEnclosingType(), enclosingMember) : ((type = enclosingMember.getDeclaringType()).equals(actualType = actualEnclosingMember.getDeclaringType()) ? AsmRelationshipProvider.lookupMember(model.getHierarchy(), shadow.getEnclosingType(), enclosingMember) : AsmRelationshipProvider.lookupMember(model.getHierarchy(), shadow.getEnclosingType(), actualEnclosingMember))) : AsmRelationshipProvider.lookupMember(model.getHierarchy(), shadow.getEnclosingType(), enclosingMember);
        if (enclosingNode == null) {
            Lint.Kind err = shadow.getIWorld().getLint().shadowNotInStructure;
            if (err.isEnabled()) {
                err.signal(shadow.toString(), shadow.getSourceLocation());
            }
            return null;
        }
        Member shadowSig = shadow.getSignature();
        if (shadow.getKind() == Shadow.MethodCall || shadow.getKind() == Shadow.ConstructorCall || !shadowSig.equals(enclosingMember)) {
            IProgramElement bodyNode = AsmRelationshipProvider.findOrCreateCodeNode(model, enclosingNode, shadowSig, shadow);
            return bodyNode;
        }
        return enclosingNode;
    }
 -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.lastIndexOf(int): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.lastIndexOf(int): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.lastIndexOf(int): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String
 [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Object.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT]