EntityResolutionRules.fetchTypes constructor
EntityResolutionRules.fetchTypes({})
Implementation
factory EntityResolutionRules.fetchTypes(
{bool? allEager,
bool? allLazy,
Map<Object, bool?>? eagerTypes,
Map<Object, bool?>? lazyTypes,
bool mergeTolerant = false}) {
var eagerTypesNotNull = eagerTypes?.entries.map((e) {
var eager = e.value;
return eager != null ? MapEntry(e.key, eager) : null;
}).nonNulls;
var lazyTypesNotNull = lazyTypes?.entries.map((e) {
var lazy = e.value;
return lazy != null ? MapEntry(e.key, lazy) : null;
}).nonNulls;
var fetchEager = eagerTypesNotNull?.map((e) {
var t = e.key;
var eager = e.value;
return eager ? t : null;
});
var fetchNotEager = eagerTypesNotNull?.map((e) {
var t = e.key;
var eager = e.value;
return !eager ? t : null;
});
var fetchLazy = lazyTypesNotNull?.map((e) {
var t = e.key;
var lazy = e.value;
return lazy ? t : null;
});
var fetchNotLazy = lazyTypesNotNull?.map((e) {
var t = e.key;
var lazy = e.value;
return !lazy ? t : null;
});
var eagerEntityTypes = [
...?fetchEager,
...?fetchNotLazy,
]
.nonNulls
.expand((e) => e is Iterable ? e : [e])
.whereType<Type>()
.toList();
var lazyEntityTypes = [
...?fetchLazy,
...?fetchNotEager,
]
.nonNulls
.expand((e) => e is Iterable ? e : [e])
.whereType<Type>()
.toList();
if (allEager != null && allEager) {
return lazyEntityTypes.isNotEmpty
? EntityResolutionRules(
allEager: true,
lazyEntityTypes: lazyEntityTypes,
mergeTolerant: mergeTolerant,
)
: EntityResolutionRules.fetchEagerAll(
mergeTolerant: mergeTolerant,
);
} else if (allLazy != null && allLazy) {
return eagerEntityTypes.isNotEmpty
? EntityResolutionRules(
allLazy: true,
eagerEntityTypes: eagerEntityTypes,
mergeTolerant: mergeTolerant,
)
: EntityResolutionRules.fetchLazyAll(
mergeTolerant: mergeTolerant,
);
}
return EntityResolutionRules(
eagerEntityTypes: eagerEntityTypes,
lazyEntityTypes: lazyEntityTypes,
mergeTolerant: mergeTolerant,
);
}