hasReferencedEntities method

  1. @override
bool hasReferencedEntities([
  1. EntityResolutionRulesResolved? resolutionRules
])
override

Implementation

@override
bool hasReferencedEntities([EntityResolutionRulesResolved? resolutionRules]) {
  var hasRefBasic = _hasReferencedEntitiesBasic();
  if (hasRefBasic != null) return hasRefBasic;

  if (resolutionRules == null || resolutionRules.isInnocuous) return false;

  final fieldsEntityRef = _fieldsEntityRef;
  final fieldsListEntityRef = _fieldsListEntityRef;

  if (fieldsEntityRef.isEmpty && fieldsListEntityRef.isEmpty) return false;

  var allEager = resolutionRules.allEager ?? false;
  if (allEager) {
    var lazyEntityTypes = resolutionRules.lazyEntityTypes;
    if (lazyEntityTypes != null && lazyEntityTypes.isNotEmpty) {
      var anyEager =
          resolutionRules.isAnyEagerEntityTypeInfo(fieldsEntityRef.values) ||
              resolutionRules
                  .isAnyEagerEntityTypeInfo(fieldsListEntityRef.values);
      return anyEager;
    } else {
      return true;
    }
  }

  var eagerEntityTypes = resolutionRules.eagerEntityTypes;
  if (eagerEntityTypes != null && eagerEntityTypes.isNotEmpty) {
    var anyEager = resolutionRules
            .isAnyEagerEntityTypeInfo(fieldsEntityRef.values) ||
        resolutionRules.isAnyEagerEntityTypeInfo(fieldsListEntityRef.values);
    return anyEager;
  }

  return false;
}