hasReferencedEntities method
Implementation
@override
bool hasReferencedEntities([EntityResolutionRulesResolved? resolutionRules]) {
final fieldsEntity = _fieldsEntity;
final fieldsEntityRef = _fieldsEntityRef;
final fieldsListEntity = _fieldsListEntity;
final fieldsListEntityRef = _fieldsListEntityRef;
if (fieldsEntity.isEmpty && fieldsListEntity.isEmpty) return false;
var fieldsEntityNoRef = fieldsEntity.length - fieldsEntityRef.length;
if (fieldsEntityNoRef > 0) return true;
var fieldsListEntityNoRef =
fieldsListEntity.length - fieldsListEntityRef.length;
if (fieldsListEntityNoRef > 0) return true;
if (resolutionRules == null || resolutionRules.isInnocuous) return false;
if (fieldsEntityRef.isEmpty && fieldsListEntityRef.isNotEmpty) return false;
var allEager = resolutionRules.allEager ?? false;
var eagerEntityTypes = resolutionRules.eagerEntityTypes;
var lazyEntityTypes = resolutionRules.lazyEntityTypes;
if (allEager) {
if (lazyEntityTypes != null && lazyEntityTypes.isNotEmpty) {
var anyEager = CombinedIterableView(
[fieldsEntityRef.values, fieldsListEntityRef.values],
).any((t) => resolutionRules.isEagerEntityTypeInfo(t));
return anyEager;
} else {
return true;
}
}
if (eagerEntityTypes != null && eagerEntityTypes.isNotEmpty) {
var anyEager = CombinedIterableView(
[fieldsEntityRef.values, fieldsListEntityRef.values],
).any((t) => resolutionRules.isEagerEntityTypeInfo(t));
return anyEager;
}
return false;
}