toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final name = element.name;

  classBuilder
    ..name = name.wrapperClassName
    ..extend = Reference(name)
    ..constructors.add(
      Constructor(
        (builder) => builder
          ..requiredParameters.add(
            Parameter(
              (builder) => builder
                ..name = r'_$observer'
                ..toThis = true
                ..named = false,
            ),
          )
          ..requiredParameters.add(
            Parameter(
              (builder) => builder
                ..type = Reference(name.observableClassName)
                ..name = r'$src'
                ..named = false,
            ),
          )
          ..initializers.add(
            Code('''
_\$src = \$src
'''),
          ),
      ),
    )
    ..fields.add(
      Field(
        (builder) => builder
          ..type = Reference('VibeObserver')
          ..modifier = FieldModifier.final$
          ..name = r'_$observer',
      ),
    )
    ..fields.add(
      Field(
        (builder) => builder
          ..type = Reference(name.observableClassName)
          ..modifier = FieldModifier.final$
          ..name = r'_$src',
      ),
    );
  return '''
${classBuilder.build().accept(_emitter)}
''';
}