DiagnosticsProperty<T>.lazy constructor
- 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 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 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(defaultValue == kNoDefaultValue || defaultValue is T?),
_description = description,
_valueComputed = false,
_value = null,
_computeValue = computeValue,
_defaultLevel = level,
ifNull = ifNull ?? (missingIfNull ? 'MISSING' : null),
super(
name: name,
);