get<T> method
Retrieves a value from itself or from its parent
Implementation
T get<T>(ScopedRef<T> ref) {
if (_values.containsKey(ref)) {
return _values[ref] as T;
}
final T value;
if (_overrides.containsKey(ref)) {
value = _overrides[ref]!.create(this) as T;
} else {
for (final p in parents()) {
if (p._values.containsKey(ref) || p._overrides.containsKey(ref)) {
return p.get(ref);
}
}
value = ref.create(this);
}
_values[ref] = value;
if (ref.isGlobal) {
for (final p in parents()) {
p._values[ref] = value;
}
}
return value;
}