public CompilationState read(Decoder decoder) throws Exception {
    CompilationState compilationState = new CompilationState();
    int version = decoder.readInt();
    if (version != SERIAL_VERSION) {
      return compilationState;
    }

    compilationState.sourceInputs.addAll(fileListSerializer.read(decoder));
    compilationState.fileStates.putAll(stateMapSerializer.read(decoder));
    return compilationState;
  }