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() {
  if (isInnocuous) return 'EntityAccessRules{innocuous}';

  final ruleType = this.ruleType;
  var ruleTypeStr = ruleType != null ? '[${ruleType.name}]' : '';

  var props = [
    if (entityType != null) 'entityType: $entityType',
    if (entityFields != null && entityFields!.isNotEmpty)
      'entityFields: $entityFields',
    if (condition != null) 'condition: #${condition.hashCode}',
  ];

  var propsStr = props.isNotEmpty ? '{${props.join(', ')}}' : '';

  final rules = this.rules;
  var rulesStr = rules != null && rules.isNotEmpty
      ? '<\n  ${rules.join('\n  ')}\n>'
      : '';

  return 'EntityAccessRules$ruleTypeStr$propsStr$rulesStr';
}