org_aspectj_ajde_core_tests_ShowWeaveMessagesTest_java
org.aspectj.ajdt.internal.compiler.lookup.EclipseTypeMunger
public boolean munge(SourceTypeBinding sourceType, ResolvedType onType) {
        boolean isExactTargetType;
        ResolvedType rt = onType;
        if (rt.isRawType() || rt.isParameterizedType()) {
            rt = rt.getGenericType();
        }
        if (!(isExactTargetType = rt.equals(this.targetTypeX))) {
            if (this.munger.getKind() != ResolvedTypeMunger.Method) {
                return false;
            }
            if (onType.isInterface()) {
                return false;
            }
            if (!this.munger.needsAccessToTopmostImplementor()) {
                return false;
            }
            if (!onType.isTopmostImplementor(this.targetTypeX)) {
                return false;
            }
            if (!Modifier.isPublic(this.munger.getSignature().getModifiers())) {
                return false;
            }
        }
        if (this.munger.getKind() == ResolvedTypeMunger.Field) {
            this.mungeNewField(sourceType, (NewFieldTypeMunger)this.munger);
        } else {
            if (this.munger.getKind() == ResolvedTypeMunger.Method) {
                return this.mungeNewMethod(sourceType, onType, (NewMethodTypeMunger)this.munger, isExactTargetType);
            }
            if (this.munger.getKind() == ResolvedTypeMunger.Constructor) {
                this.mungeNewConstructor(sourceType, (NewConstructorTypeMunger)this.munger);
            } else if (this.munger.getKind() == ResolvedTypeMunger.InnerClass) {
                this.mungeNewInnerClass(sourceType, onType, (NewMemberClassTypeMunger)this.munger, isExactTargetType);
            } else {
                throw new RuntimeException("unimplemented: " + this.munger.getKind());
            }
        }
        return true;
    }
 -> java.util.Map.clear(): void -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.lang.String.toCharArray(): char[] -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.clear(): void -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.lang.reflect.Modifier.isStatic(int): boolean -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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.clear(): void -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.lang.String.toCharArray(): char[] -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.clear(): void -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.reflect.Modifier.isStatic(int): boolean -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.reflect.Modifier.isStrict(int): boolean -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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.clear(): void -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.lang.String.toCharArray(): char[] -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.hashCode(): int -> java.util.Map.clear(): void -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.toCharArray(): char[] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.reflect.Modifier.isStatic(int): boolean [CALL] [EXIT] [CALL] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.String.replace(char,char): java.lang.String [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.String.replace(char,char): java.lang.String [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.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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 [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.toCharArray(): char[] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.reflect.Modifier.isStatic(int): boolean [CALL] [EXIT] [CALL] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void [EXIT] [CALL] [EXIT] -> java.lang.reflect.Modifier.isStrict(int): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.String.replace(char,char): java.lang.String [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.String.replace(char,char): java.lang.String [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.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> 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 [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.toCharArray(): char[] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Map.clear(): void [CALL] [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT]