org_aspectj_ajde_core_tests_model_SavedModelConsistencyTest_java
org.aspectj.ajdt.internal.compiler.lookup.EclipseFactory
public void addSourceTypeBinding(SourceTypeBinding binding, CompilationUnitDeclaration unit) {
        ReferenceBinding[] memberTypes;
        LocalTypeBinding ltb;
        TypeDeclaration decl = binding.scope.referenceContext;
        UnresolvedType unresolvedRawType = null;
        unresolvedRawType = binding.isGenericType() ? UnresolvedType.forRawTypeName(EclipseFactory.getName(binding)) : (binding.isLocalType() ? ((ltb = (LocalTypeBinding)binding).constantPoolName() != null && ltb.constantPoolName().length > 0 ? UnresolvedType.forSignature(new String(binding.signature())) : UnresolvedType.forName(EclipseFactory.getName(binding))) : UnresolvedType.forName(EclipseFactory.getName(binding)));
        ReferenceType resolvedRawType = this.getWorld().lookupOrCreateName(unresolvedRawType);
        if (!binding.isRawType() && !binding.isGenericType() && resolvedRawType.getTypekind() == UnresolvedType.TypeKind.RAW) {
            resolvedRawType.demoteToSimpleType();
        }
        EclipseSourceType t = new EclipseSourceType(resolvedRawType, this, binding, decl, unit);
        if (binding.isGenericType()) {
            UnresolvedType unresolvedGenericType = this.fromBinding(binding);
            ResolvedType resolvedGenericType = this.world.resolve(unresolvedGenericType, true);
            ReferenceType complexName = null;
            if (!resolvedGenericType.isMissing()) {
                complexName = (ReferenceType)resolvedGenericType;
                if ((complexName = complexName.getGenericType()) == null) {
                    complexName = new ReferenceType(unresolvedGenericType, this.world);
                }
            } else {
                complexName = new ReferenceType(unresolvedGenericType, this.world);
            }
            resolvedRawType.setGenericType(complexName);
            complexName.setDelegate(t);
        }
        resolvedRawType.setDelegate(t);
        if (decl instanceof AspectDeclaration) {
            ((AspectDeclaration)decl).typeX = resolvedRawType;
            ((AspectDeclaration)decl).concreteName = t;
        }
        for (ReferenceBinding memberType : memberTypes = binding.memberTypes) {
            this.addSourceTypeBinding((SourceTypeBinding)memberType, unit);
        }
    }
 -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.String.length(): int -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.List.removeAll(java.util.Collection): boolean -> java.lang.ref.WeakReference.clear(): void -> java.lang.ref.WeakReference.clear(): void
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void [EXIT] [EXIT] [CALL] [CALL] -> java.lang.String.length(): int -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.List.removeAll(java.util.Collection): boolean [CALL] [EXIT] [CALL] -> java.lang.ref.WeakReference.clear(): void [EXIT] [CALL] -> java.lang.ref.WeakReference.clear(): void [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT]