case 'e' : // enum constant
int type_name_index = in.readUnsignedShort();
if (policy == RetentionPolicy.RUNTIME) {
referTo(type_name_index, 0);
if (api != null && (Modifier.isPublic(access_flags) || Modifier.isProtected(access_flags))) {
TypeRef name = analyzer.getTypeRef((String) pool[type_name_index]);
api.add(name.getPackageRef());
}
}
int const_name_index = in.readUnsignedShort();
return pool[const_name_index];
case 'c' : // Class
int class_info_index = in.readUnsignedShort();
if (policy == RetentionPolicy.RUNTIME) {
referTo(class_info_index, 0);
if (api != null && (Modifier.isPublic(access_flags) || Modifier.isProtected(access_flags))) {
TypeRef name = analyzer.getTypeRef((String) pool[class_info_index]);
api.add(name.getPackageRef());
}
}
return pool[class_info_index];
case '@' : // Annotation type