docs: @Override
      public void emit(Sink sink, DataType dataType, String header) {
      	logger.fine("Generating data type " + dataType.name + ".");
          sink.write(header);
          sink.write(ASTPrinter.print(dataType));
          sink.write("\n*/\n");
  
          sink.write(ASTPrinter.printComments("", commentProcessor.leftAlign(dataType.comments)));
          for (Annotation annotation : dataType.annotations) {
              sink.write(ASTPrinter.print(annotation));
              sink.write("\n");
          }
          if (dataType.constructors.size() == 1) {
              emitSingleConstructor(sink, dataType, header);
              
          } else {
              emitMultipleConstructor(sink, dataType, header);
          }
      }