private static JavacRef readJavacRef()

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);
    }
  }