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() {
  var text = super.toString();
  if (missingVariableDefinitions.isNotEmpty) {
    text +=
        "\n- Missing variables: ${missingVariableDefinitions.map((e) => "${e.$1.dataType.toString()} ${e.$1.name}").join(", ")}";
  }
  if (wrongVariableDefinitionTypes.isNotEmpty) {
    text +=
        "\n- Wrong variable types: ${wrongVariableDefinitionTypes.map((e) => "${e.$1.toString()} (got ${e.$3.toString()})").join(", ")}";
  }
  if (wrongVariableDefinitionValues.isNotEmpty) {
    text +=
        "\n- Wrong variable values: ${wrongVariableDefinitionValues.map((e) => "${e.$1.toString()} = ${e.$2} (got ${e.$3})").join(", ")}";
  }
  if (correctVariableDefinitions.isNotEmpty) {
    text +=
        "\n- Correct variables: ${correctVariableDefinitions.map((e) => "${e.$1.toString()} = ${e.$2}").join(", ")}";
  }

  return text;
}