DiagnosticsProperty<T> constructor

DiagnosticsProperty<T>(String name, T value, { String description, String ifNull, String ifEmpty, bool showName: true, bool showSeparator: true, Object defaultValue: kNoDefaultValue, String tooltip, bool missingIfNull: false, String linePrefix, bool expandableValue: false, bool allowWrap: true, bool allowNameWrap: true, DiagnosticsTreeStyle style: DiagnosticsTreeStyle.singleLine, DiagnosticLevel level: DiagnosticLevel.info })

Create a diagnostics property.

The showName, showSeparator, style, missingIfNull, and level arguments must not be null.

The level argument is just a suggestion and can be overridden if something else about the property causes it to have a lower or higher level. For example, if the property value is null and missingIfNull is true, level is raised to DiagnosticLevel.warning.

Implementation

DiagnosticsProperty(
  String name,
  T value, {
  String description,
  String ifNull,
  this.ifEmpty,
  bool showName = true,
  bool showSeparator = true,
  this.defaultValue = kNoDefaultValue,
  this.tooltip,
  this.missingIfNull = false,
  String linePrefix,
  this.expandableValue = false,
  this.allowWrap = true,
  this.allowNameWrap = true,
  DiagnosticsTreeStyle style = DiagnosticsTreeStyle.singleLine,
  DiagnosticLevel level = DiagnosticLevel.info,
}) : assert(showName != null),
     assert(showSeparator != null),
     assert(style != null),
     assert(level != null),
     _description = description,
     _valueComputed = true,
     _value = value,
     _computeValue = null,
     ifNull = ifNull ?? (missingIfNull ? 'MISSING' : null),
     _defaultLevel = level,
     super(
       name: name,
       showName: showName,
       showSeparator: showSeparator,
       style: style,
       linePrefix: linePrefix,
    );