Deserialize annotations on classes

First version, not all kinds of value arguments of annotations are supported
This commit is contained in:
Alexander Udalov
2013-07-04 21:04:53 +04:00
parent 9a33567287
commit 4aeeafdff0
31 changed files with 804 additions and 152 deletions
@@ -2,6 +2,7 @@ package org.jetbrains.jet.descriptors.serialization.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import java.util.List;
@@ -10,9 +11,7 @@ public interface AnnotationDeserializer {
AnnotationDeserializer UNSUPPORTED = new AnnotationDeserializer() {
@NotNull
@Override
public List<AnnotationDescriptor> loadClassAnnotations(
@NotNull ProtoBuf.Class classProto
) {
public List<AnnotationDescriptor> loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto) {
return notSupported();
}
@@ -44,7 +43,7 @@ public interface AnnotationDeserializer {
};
@NotNull
List<AnnotationDescriptor> loadClassAnnotations(@NotNull ProtoBuf.Class classProto);
List<AnnotationDescriptor> loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto);
@NotNull
List<AnnotationDescriptor> loadCallableAnnotations(
@@ -203,7 +203,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
if (!Flags.HAS_ANNOTATIONS.get(classProto.getFlags())) {
return Collections.emptyList();
}
return annotationDeserializer.loadClassAnnotations(classProto);
return annotationDeserializer.loadClassAnnotations(this, classProto);
}
@Override