org_aspectj_apache_bcel_classfile_tests_TypeAnnotationsTest_java
org.aspectj.apache.bcel.classfile.annotation.TypeAnnotationGen
public static TypeAnnotationGen read(DataInputStream dis, ConstantPool cpool, boolean isVisible) throws IOException {
        TypeAnnotationGen typeAnno = new TypeAnnotationGen(cpool);
        typeAnno.targetType = dis.readUnsignedByte();
        switch (typeAnno.targetType) {
            case 0: {
                typeAnno.info = dis.readUnsignedByte();
                break;
            }
            case 1: {
                typeAnno.info = dis.readUnsignedByte();
                break;
            }
            case 16: {
                int superTypeIndex = dis.readUnsignedShort();
                if (superTypeIndex == 65535) {
                    typeAnno.info = -1;
                    break;
                }
                typeAnno.info = superTypeIndex;
                break;
            }
            case 17: 
            case 18: {
                typeAnno.info = dis.readUnsignedByte();
                typeAnno.info2 = dis.readUnsignedByte();
                break;
            }
            case 19: 
            case 20: 
            case 21: {
                break;
            }
            case 22: {
                typeAnno.info = dis.readUnsignedByte();
                break;
            }
            case 23: {
                typeAnno.info = dis.readUnsignedShort();
                break;
            }
            case 64: 
            case 65: {
                typeAnno.localVarTarget = TypeAnnotationGen.readLocalVarTarget(dis);
                break;
            }
            case 66: {
                typeAnno.info = dis.readUnsignedByte();
                break;
            }
            case 67: 
            case 68: 
            case 69: 
            case 70: {
                typeAnno.info = dis.readUnsignedShort();
                break;
            }
            case 71: 
            case 72: 
            case 73: 
            case 74: 
            case 75: {
                typeAnno.info = dis.readUnsignedShort();
                typeAnno.info2 = dis.readUnsignedByte();
                break;
            }
            default: {
                throw new IllegalStateException("nyi " + typeAnno.targetType);
            }
        }
        int typepathlength = dis.readUnsignedByte();
        if (typepathlength == 0) {
            typeAnno.typePath = NO_TYPE_PATH;
        } else {
            typeAnno.typePath = new int[typepathlength * 2];
            int max = typepathlength * 2;
            for (int i = 0; i < max; ++i) {
                typeAnno.typePath[i] = dis.readUnsignedByte();
            }
        }
        typeAnno.annotation = AnnotationGen.read(dis, cpool, isVisible);
        return typeAnno;
    }
 -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedByte(): int -> java.util.Collections.emptyList(): java.util.List -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedShort(): int -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedByte(): int [CALL] [CALL] -> java.util.Collections.emptyList(): java.util.List [EXIT] -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readUnsignedShort(): int -> java.io.DataInputStream.readUnsignedShort(): int [CALL] -> java.io.DataInputStream.readUnsignedByte(): int -> java.io.DataInputStream.readUnsignedShort(): int [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] [EXIT] [EXIT] [EXIT]