public SourceIncludes read(Decoder decoder) throws Exception {
   SourceIncludes sourceIncludes = new DefaultSourceIncludes();
   sourceIncludes.getQuotedIncludes().addAll(stringListSerializer.read(decoder));
   sourceIncludes.getSystemIncludes().addAll(stringListSerializer.read(decoder));
   sourceIncludes.getMacroIncludes().addAll(stringListSerializer.read(decoder));
   return sourceIncludes;
 }
  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;
  }