org_aspectj_ajde_core_tests_ShowWeaveMessagesTest_java
org.aspectj.weaver.patterns.Declare
public static Declare read(VersionedDataInputStream s, ISourceContext context) throws IOException {
        byte kind = s.readByte();
        switch (kind) {
            case 1: {
                return DeclareErrorOrWarning.read(s, context);
            }
            case 4: {
                return DeclarePrecedence.read(s, context);
            }
            case 2: {
                return DeclareParents.read(s, context);
            }
            case 3: {
                return DeclareSoft.read(s, context);
            }
            case 5: {
                return DeclareAnnotation.read(s, context);
            }
            case 6: {
                return DeclareParentsMixin.read(s, context);
            }
            case 7: {
                return DeclareTypeErrorOrWarning.read(s, context);
            }
        }
        throw new RuntimeException("unimplemented");
    }
 -> java.io.DataInputStream.readByte(): byte -> 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.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.lang.String.length(): int -> java.lang.String.toCharArray(): char[] -> java.lang.String.hashCode(): int -> 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.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.util.List.add(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean -> java.util.List.set(int,java.lang.Object): java.lang.Object -> java.util.List.set(int,java.lang.Object): java.lang.Object -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int
 [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.io.DataInputStream.readByte(): byte [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [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] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.length(): int [CALL] -> java.lang.String.toCharArray(): char[] [CALL] [CALL] [EXIT] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [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] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.util.List.add(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] -> java.util.List.set(int,java.lang.Object): java.lang.Object [EXIT] [CALL] -> java.util.List.set(int,java.lang.Object): java.lang.Object [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT]