emit method

  1. @override
StringSink emit(
  1. Element element, [
  2. StringSink? output
])
override

Emits element as valid Dart code into output.

Implementation

@override
StringSink emit(
  Element element, [
  StringSink? output,
]) {
  output ??= StringBuffer();

  if (element is Annotation) {
    AnnotationEmitter(context).emit(element, output);
  } //
  else if (element is Class) {
    ClassEmitter(context).emit(element, output);
  } //
  else if (element is Column) {
    ColumnEmitter(context).emit(element, output);
  } //
  else if (element is Constructor) {
    throw UnsupportedError(
      'Emitting a [Constructor] element is not possible via the abstract '
      '[SpecEmitter] due to the fact that a [Constructor] emitter should '
      'receive an instance of its parent [Class] in order to emit.',
    );
  } //
  else if (element is Directive) {
    DirectiveEmitter(context).emit(element, output);
  } //
  else if (element is Docs) {
    DocsEmitter(context).emit(element, output);
  } //
  else if (element is Enum) {
    EnumEmitter(context).emit(element, output);
  } //
  else if (element is Extension) {
    ExtensionEmitter(context).emit(element, output);
  } //
  else if (element is Field) {
    FieldEmitter(context).emit(element, output);
  } //
  else if (element is If) {
    IfEmitter(context).emit(element, output);
  } //
  else if (element is Invoke) {
    InvokeEmitter(context).emit(element, output);
  } //
  else if (element is Library) {
    LibraryEmitter(context).emit(element, output);
  } //
  else if (element is Literal) {
    LiteralEmitter(context).emit(element, output);
  } //
  else if (element is Loop) {
    LoopEmitter(context).emit(element, output);
  } //
  else if (element is Method) {
    MethodEmitter(context).emit(element, output);
  } //
  else if (element is Mixin) {
    MixinEmitter(context).emit(element, output);
  } //
  else if (element is Parameter) {
    ParameterEmitter(context).emit(element, output);
  } //
  else if (element is Reference) {
    ReferenceEmitter(context).emit(element, output);
  } //
  else if (element is Row) {
    RowEmitter(context).emit(element, output);
  } //
  else if (element is Static) {
    StaticEmitter(context).emit(element, output);
  } //
  else if (element is Switch) {
    SwitchEmitter(context).emit(element, output);
  } //
  else if (element is TryCatch) {
    TryCatchEmitter(context).emit(element, output);
  } //

  return output;
}