org_aspectj_apache_bcel_classfile_tests_MethodParametersTest_java
org.aspectj.apache.bcel.classfile.Attribute
public static final Attribute readAttribute(DataInputStream file, ConstantPool cpool) throws IOException {
        int tag = -1;
        int idx = file.readUnsignedShort();
        String name = cpool.getConstantUtf8(idx).getValue();
        int len = file.readInt();
        for (int i = 0; i < 28; i = (int)((byte)(i + 1))) {
            if (!name.equals(Constants.ATTRIBUTE_NAMES[i])) continue;
            tag = i;
            break;
        }
        switch (tag) {
            case -1: {
                return new Unknown(idx, len, file, cpool);
            }
            case 1: {
                return new ConstantValue(idx, len, file, cpool);
            }
            case 0: {
                return new SourceFile(idx, len, file, cpool);
            }
            case 2: {
                return new Code(idx, len, file, cpool);
            }
            case 3: {
                return new ExceptionTable(idx, len, file, cpool);
            }
            case 4: {
                return new LineNumberTable(idx, len, file, cpool);
            }
            case 5: {
                return new LocalVariableTable(idx, len, file, cpool);
            }
            case 6: {
                return new InnerClasses(idx, len, file, cpool);
            }
            case 7: {
                return new Synthetic(idx, len, file, cpool);
            }
            case 8: {
                return new Deprecated(idx, len, file, cpool);
            }
            case 10: {
                return new Signature(idx, len, file, cpool);
            }
            case 11: {
                return new StackMap(idx, len, file, cpool);
            }
            case 12: {
                return new RuntimeVisAnnos(idx, len, file, cpool);
            }
            case 13: {
                return new RuntimeInvisAnnos(idx, len, file, cpool);
            }
            case 14: {
                return new RuntimeVisParamAnnos(idx, len, file, cpool);
            }
            case 15: {
                return new RuntimeInvisParamAnnos(idx, len, file, cpool);
            }
            case 18: {
                return new AnnotationDefault(idx, len, file, cpool);
            }
            case 16: {
                return new LocalVariableTypeTable(idx, len, file, cpool);
            }
            case 17: {
                return new EnclosingMethod(idx, len, file, cpool);
            }
            case 19: {
                return new BootstrapMethods(idx, len, file, cpool);
            }
            case 20: {
                return new RuntimeVisTypeAnnos(idx, len, file, cpool);
            }
            case 21: {
                return new RuntimeInvisTypeAnnos(idx, len, file, cpool);
            }
            case 22: {
                return new MethodParameters(idx, len, file, cpool);
            }
            case 23: {
                return new Module(idx, len, file, cpool);
            }
            case 24: {
                return new ModulePackages(idx, len, file, cpool);
            }
            case 25: {
                return new ModuleMainClass(idx, len, file, cpool);
            }
            case 26: {
                return new NestHost(idx, len, file, cpool);
            }
            case 27: {
                return new NestMembers(idx, len, file, cpool);
            }
        }
        throw new IllegalStateException();
    }
 -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readInt(): 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.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.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.io.DataInputStream.readFully(byte[],int,int): void
 [CALL] -> java.io.DataInputStream.readUnsignedShort(): int [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.io.DataInputStream.readInt(): 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.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.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] -> java.io.DataInputStream.readFully(byte[],int,int): void [EXIT] [EXIT]