DiagnosticsProperty< T>.lazy constructor
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,
bool showName = true,
bool showSeparator = true,
this.defaultValue = kNoDefaultValue,
this.tooltip,
this.missingIfNull = false,
DiagnosticsTreeStyle 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,
showName: showName,
showSeparator: showSeparator,
style: style,
);