getZoomlevelRangeNode method

ZoomlevelRange? getZoomlevelRangeNode(
  1. ITagCollection tags
)

Returns the widest possible zoomrange which may accept the given argument. Returns null if if the argument will never accepted.

Implementation

ZoomlevelRange? getZoomlevelRangeNode(ITagCollection tags) {
  // tag not accepted by this rule.
  if (!matchesTags(tags)) return null;
  if (renderinstructionNodes.isNotEmpty) {
    // this rule supports the argument. Returns this zoomlevel range which is
    // the widest possible range.
    return zoomlevelRange;
  }

  ZoomlevelRange? result;
  for (var rule in subRules) {
    ZoomlevelRange? range = rule.getZoomlevelRangeNode(tags);
    if (range != null) {
      result = result?.widenTo(range) ?? range;
    }
  }
  return result;
}