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;
  builder
    ..name = name.repositoryName
    ..methods.add(
      Method(
        (builder) => builder
          ..static = true
          ..returns = Reference(name.wrapperClassName)
          ..name = 'find'
          ..requiredParameters.add(
            Parameter(
              (builder) => builder
                ..type = Reference('VibeContainer')
                ..name = 'container',
            ),
          )
          ..requiredParameters.add(
            Parameter(
              (builder) => builder
                ..type = Reference('VibeObserver')
                ..name = 'observer',
            ),
          )
          ..body = Code('''
final registered = container.find<${name.observableClassName}>(${name.keyName}) ??
() {
  final override = container.findOverrides(${name.keyName});
  final initial = override != null ? override() as $name : $name();
  final ret =  ${name.observableClassName}(
    initial
      ..\$container = container,
    () {
      container.remove(${name.keyName});
    },
  )..\$container = container;
  container.add(${name.keyName}, ret);
  return ret;
}();
return ${name.wrapperClassName}(observer, registered);
'''),
      ),
    );

  return builder.build().accept(_emitter).toString();
}