@Nullable public String[] readData( @NotNull KotlinJvmBinaryClass kotlinClass, @NotNull KotlinClassHeader.Kind expectedKind) { KotlinClassHeader header = kotlinClass.getClassHeader(); if (!header.getIsCompatibleAbiVersion()) { errorReporter.reportIncompatibleAbiVersion( kotlinClass.getClassId(), kotlinClass.getLocation(), header.getVersion()); } else if (header.getKind() == expectedKind) { return header.getAnnotationData(); } return null; }
@Nullable public ClassDescriptor resolveClass(@NotNull KotlinJvmBinaryClass kotlinClass) { String[] data = readData(kotlinClass, CLASS); if (data != null) { return components .getClassDeserializer() .deserializeClass(kotlinClass.getClassId(), JvmProtoBufUtil.readClassDataFrom(data)); } return null; }
@Nullable public ClassDescriptor resolveClass(@NotNull KotlinJvmBinaryClass kotlinClass) { String[] data = readData(kotlinClass, CLASS); if (data != null) { ClassData classData = JvmProtoBufUtil.readClassDataFrom(data); KotlinJvmBinarySourceElement sourceElement = new KotlinJvmBinarySourceElement(kotlinClass); ClassDataProvider classDataProvider = new ClassDataProvider(classData, sourceElement); return components .getClassDeserializer() .deserializeClass(kotlinClass.getClassId(), classDataProvider); } return null; }