makeResolver<AggregateT> function
ResolveProperty<AggregateT>
makeResolver<AggregateT>(
- AggregateT? first,
- AggregateT? second, [
- AggregateT? third
Implementation
ResolveProperty<AggregateT> makeResolver<AggregateT>(AggregateT? first, AggregateT? second, [ AggregateT? third ]) {
if (first == null && second == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(third!);
else if (first == null && third == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(second!);
else if (second == null && third == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(first!);
else if (third == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(first!) ?? getProperty(second!);
else if (second == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(first!) ?? getProperty(third);
else if (first == null)
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(second) ?? getProperty(third);
else
return <FieldT>(GetProperty<FieldT, AggregateT> getProperty) => getProperty(first) ?? getProperty(second) ?? getProperty(third);
}