Rename KotlinClassFileHeader and related classes

This commit is contained in:
Alexander Udalov
2013-10-03 22:31:52 +04:00
parent c3abd1c26f
commit 89dbafb6be
12 changed files with 29 additions and 30 deletions
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.name.FqName;
public class CliVirtualFileFinder implements VirtualFileFinder {
@@ -71,7 +71,7 @@ public class CliVirtualFileFinder implements VirtualFileFinder {
return null;
}
//NOTE: currently we use VirtualFileFinder to find Kotlin binaries only
if (KotlinClassFileHeader.readKotlinHeaderFromClassFile(new VirtualFileKotlinClass(vFile)) != null) {
if (KotlinClassHeader.read(new VirtualFileKotlinClass(vFile)) != null) {
return vFile;
}
}
@@ -28,7 +28,7 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.SerializedDataHeader;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
@@ -110,7 +110,7 @@ public final class DeserializedDescriptorResolver {
@Nullable
private String[] readData(@NotNull KotlinJvmBinaryClass kotlinClass) {
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(kotlinClass);
KotlinClassHeader header = KotlinClassHeader.read(kotlinClass);
if (header instanceof SerializedDataHeader) {
return ((SerializedDataHeader) header).getAnnotationData();
}
@@ -16,7 +16,7 @@
package org.jetbrains.jet.lang.resolve.kotlin.header;
public class IncompatibleAnnotationHeader extends KotlinClassFileHeader {
public class IncompatibleAnnotationHeader extends KotlinClassHeader {
protected IncompatibleAnnotationHeader(int version) {
super(version);
}
@@ -20,15 +20,15 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass;
public abstract class KotlinClassFileHeader {
public abstract class KotlinClassHeader {
@Nullable
public static KotlinClassFileHeader readKotlinHeaderFromClassFile(@NotNull KotlinJvmBinaryClass kotlinClass) {
return ReadDataFromAnnotationVisitor.read(kotlinClass);
public static KotlinClassHeader read(@NotNull KotlinJvmBinaryClass kotlinClass) {
return ReadKotlinClassHeaderAnnotationVisitor.read(kotlinClass);
}
private final int version;
protected KotlinClassFileHeader(int version) {
protected KotlinClassHeader(int version) {
this.version = version;
}
@@ -16,8 +16,8 @@
package org.jetbrains.jet.lang.resolve.kotlin.header;
public class PackageFragmentClassFileHeader extends KotlinClassFileHeader {
protected PackageFragmentClassFileHeader(int version) {
public class PackageFragmentClassHeader extends KotlinClassHeader {
protected PackageFragmentClassHeader(int version) {
super(version);
}
}
@@ -32,7 +32,7 @@ import static org.jetbrains.jet.lang.resolve.java.AbiVersionUtil.isAbiVersionCom
import static org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass.AnnotationArgumentVisitor;
import static org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass.AnnotationVisitor;
/* package */ class ReadDataFromAnnotationVisitor implements AnnotationVisitor {
/* package */ class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor {
@SuppressWarnings("deprecation")
private enum HeaderType {
CLASS(JvmAnnotationNames.KOTLIN_CLASS),
@@ -65,18 +65,18 @@ import static org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass.Annotat
@Nullable
private HeaderType foundType = null;
private ReadDataFromAnnotationVisitor() {
private ReadKotlinClassHeaderAnnotationVisitor() {
}
@Nullable
public static KotlinClassFileHeader read(@NotNull KotlinJvmBinaryClass kotlinClass) {
ReadDataFromAnnotationVisitor visitor = new ReadDataFromAnnotationVisitor();
public static KotlinClassHeader read(@NotNull KotlinJvmBinaryClass kotlinClass) {
ReadKotlinClassHeaderAnnotationVisitor visitor = new ReadKotlinClassHeaderAnnotationVisitor();
kotlinClass.loadClassAnnotations(visitor);
return visitor.createHeader();
}
@Nullable
public KotlinClassFileHeader createHeader() {
public KotlinClassHeader createHeader() {
if (foundType == null) {
return null;
}
@@ -91,7 +91,7 @@ import static org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass.Annotat
case PACKAGE:
return serializedDataHeader(SerializedDataHeader.Kind.PACKAGE);
case PACKAGE_FRAGMENT:
return new PackageFragmentClassFileHeader(version);
return new PackageFragmentClassHeader(version);
default:
throw new UnsupportedOperationException("Unknown compatible HeaderType: " + foundType);
}
@@ -18,7 +18,7 @@ package org.jetbrains.jet.lang.resolve.kotlin.header;
import org.jetbrains.annotations.NotNull;
public class SerializedDataHeader extends KotlinClassFileHeader {
public class SerializedDataHeader extends KotlinClassHeader {
public enum Kind {
CLASS,
PACKAGE
@@ -30,7 +30,7 @@ import org.jetbrains.jet.descriptors.serialization.*;
import org.jetbrains.jet.lang.descriptors.ClassKind;
import org.jetbrains.jet.lang.resolve.java.JavaResolverPsiUtils;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.SerializedDataHeader;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
@@ -117,7 +117,7 @@ public class JetFromJavaDescriptorHelper {
private static String[] getAnnotationDataForKotlinClass(@NotNull PsiClass psiClass) {
VirtualFile virtualFile = getVirtualFileForPsiClass(psiClass);
if (virtualFile != null) {
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(new VirtualFileKotlinClass(virtualFile));
KotlinClassHeader header = KotlinClassHeader.read(new VirtualFileKotlinClass(virtualFile));
if (header instanceof SerializedDataHeader) {
return ((SerializedDataHeader) header).getAnnotationData();
}
@@ -28,7 +28,7 @@ import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.MemberComparator;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.SerializedDataHeader;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.renderer.DescriptorRenderer;
@@ -68,7 +68,7 @@ public final class DecompiledDataFactory {
VirtualFileKotlinClass kotlinClass = new VirtualFileKotlinClass(classFile);
this.classFqName = kotlinClass.getClassName().getFqNameForClassNameWithoutDollars();
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(kotlinClass);
KotlinClassHeader header = KotlinClassHeader.read(kotlinClass);
assert header instanceof SerializedDataHeader : "Decompiled data factory shouldn't be called on an unsupported file: " + classFile;
this.classFileHeader = (SerializedDataHeader) header;
}
@@ -20,7 +20,7 @@ import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.SerializedDataHeader;
public final class DecompiledUtils {
@@ -30,7 +30,7 @@ public final class DecompiledUtils {
return false;
}
//TODO: check index
return KotlinClassFileHeader.readKotlinHeaderFromClassFile(new VirtualFileKotlinClass(file)) instanceof SerializedDataHeader;
return KotlinClassHeader.read(new VirtualFileKotlinClass(file)) instanceof SerializedDataHeader;
}
private DecompiledUtils() {
@@ -26,8 +26,8 @@ import com.intellij.util.cls.ClsFormatException;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.PackageFragmentClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.PackageFragmentClassHeader;
/**
* This class is needed to build an empty PSI stub for compiled package fragment classes. This results in these classes not showing up
@@ -44,8 +44,7 @@ public class EmptyPackageFragmentClsStubBuilderFactory extends ClsStubBuilderFac
public boolean canBeProcessed(VirtualFile file, byte[] bytes) {
if (file.getName().contains(PackageClassUtils.PACKAGE_CLASS_NAME_SUFFIX + "-") &&
StdFileTypes.CLASS.getDefaultExtension().equals(file.getExtension())) {
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(new VirtualFileKotlinClass(file));
return header instanceof PackageFragmentClassFileHeader;
return KotlinClassHeader.read(new VirtualFileKotlinClass(file)) instanceof PackageFragmentClassHeader;
}
return false;
}
@@ -24,7 +24,7 @@ import com.intellij.util.io.KeyDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClass;
import org.jetbrains.jet.lang.resolve.kotlin.header.IncompatibleAnnotationHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassFileHeader;
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
import org.jetbrains.jet.lang.resolve.name.FqName;
import java.io.DataInput;
@@ -76,7 +76,7 @@ public final class KotlinClassFileIndex extends ScalarIndexExtension<FqName> {
public Map<FqName, Void> map(FileContent inputData) {
try {
VirtualFileKotlinClass kotlinClass = new VirtualFileKotlinClass(inputData.getFile());
KotlinClassFileHeader header = KotlinClassFileHeader.readKotlinHeaderFromClassFile(kotlinClass);
KotlinClassHeader header = KotlinClassHeader.read(kotlinClass);
if (header != null && !(header instanceof IncompatibleAnnotationHeader)) {
return Collections.singletonMap(kotlinClass.getClassName().getFqNameForClassNameWithoutDollars(), null);
}