DiagnosticsProperty<T>.lazy constructor
Null safety
- String? name,
- ComputePropertyValueCallback<
T> computeValue, - {String? description,
- String? ifNull,
- String? ifEmpty,
- bool showName = true,
- bool showSeparator = true,
- Object? defaultValue = kNoDefaultValue,
- String? tooltip,
- bool missingIfNull = false,
- bool expandableValue = false,
- bool allowWrap = true,
- bool allowNameWrap = true,
- DiagnosticsTreeStyle style = DiagnosticsTreeStyle.singleLine,
- DiagnosticLevel level = DiagnosticLevel.info}
Property with a value that is computed only when needed.
Use if computing the property value may throw an exception or is expensive.
The showName, showSeparator, style, missingIfNull, and level
arguments must not be null.
The level
argument is just a suggestion and can be overridden if
if something else about the property causes it to have a lower or higher
level. For example, if calling computeValue
throws an exception, level
will always return DiagnosticLevel.error.
Implementation
DiagnosticsProperty.lazy(
String? name,
ComputePropertyValueCallback<T> computeValue, {
String? description,
String? ifNull,
this.ifEmpty,
super.showName,
super.showSeparator,
this.defaultValue = kNoDefaultValue,
this.tooltip,
this.missingIfNull = false,
this.expandableValue = false,
this.allowWrap = true,
this.allowNameWrap = true,
DiagnosticsTreeStyle super.style = DiagnosticsTreeStyle.singleLine,
DiagnosticLevel level = DiagnosticLevel.info,
}) : assert(showName != null),
assert(showSeparator != null),
assert(defaultValue == kNoDefaultValue || defaultValue is T?),
assert(missingIfNull != null),
assert(style != null),
assert(level != null),
_description = description,
_valueComputed = false,
_value = null,
_computeValue = computeValue,
_defaultLevel = level,
ifNull = ifNull ?? (missingIfNull ? 'MISSING' : null),
super(
name: name,
);