in javac-ast-extension/src/org/jetbrains/jps/javac/ast/api/JavacFileData.java [205:233]
private static JavacRef readJavacRef(@NotNull DataInput in) throws IOException {
final byte marker = in.readByte();
switch (marker) {
case CLASS_MARKER:
final boolean isAnonymous = in.readBoolean();
final ModifiersStruct classModifiers = readModifiers(in);
final String className = in.readUTF();
return new JavacRef.JavacClassImpl(isAnonymous, classModifiers.matched, classModifiers.unmatched, className);
case METHOD_MARKER:
final String methodContainingClass = in.readUTF();
final String methodOwnerName = in.readUTF();
final byte methodParamCount = in.readByte();
final ModifiersStruct methodModifiers = readModifiers(in);
final String methodName = in.readUTF();
return new JavacRef.JavacMethodImpl(methodContainingClass, methodOwnerName, methodParamCount, methodModifiers.matched, methodModifiers.unmatched, methodName);
case FIELD_MARKER:
final String fieldContainingClass = in.readUTF();
final String fieldOwnerName = in.readUTF();
final String fieldDescriptor = in.readUTF();
final ModifiersStruct fieldModifiers = readModifiers(in);
final String fieldName = in.readUTF();
return new JavacRef.JavacFieldImpl(fieldContainingClass, fieldOwnerName, fieldModifiers.matched, fieldModifiers.unmatched, fieldName, fieldDescriptor);
default:
throw new IllegalStateException("unknown marker " + marker);
}
}