merge method

  1. @override
EntityAccessRules merge(
  1. EntityAccessRules? other
)
override

Merges this rules with other rules.

Implementation

@override
EntityAccessRules merge(EntityAccessRules? other) {
  if (other == null || other.isInnocuous || identical(this, other)) {
    return isInnocuous ? innocuous : this;
  } else if (isInnocuous) {
    return other;
  }

  var a = simplified();
  var b = other.simplified();

  var rulesA = a.rules;
  var rulesB = b.rules;

  var listA = rulesA != null && rulesA.isNotEmpty && a.entityType == null
      ? rulesA
      : [a];

  var listB = rulesB != null && rulesB.isNotEmpty && b.entityType == null
      ? rulesB
      : [b];

  var allRules = [...listA, ...listB];

  return EntityAccessRules.group(allRules);
}