public List<Match<T>> getMatchesWithTriggers(WithTags input) {
      List<Match<T>> result;
      if (input instanceof WithGeometryType withGeometryType) {
        if (withGeometryType.isPoint()) {
          result = pointIndex.getMatchesWithTriggers(input);
        } else if (withGeometryType.canBeLine()) {
          result = lineIndex.getMatchesWithTriggers(input);
          // closed ways can be lines or polygons, unless area=yes or no
          if (withGeometryType.canBePolygon()) {
            result.addAll(polygonIndex.getMatchesWithTriggers(input));
          }
        } else if (withGeometryType.canBePolygon()) {
          result = polygonIndex.getMatchesWithTriggers(input);
        } else {
          result = otherIndex.getMatchesWithTriggers(input);
        }
      } else {
        result = otherIndex.getMatchesWithTriggers(input);
      }
      result.sort(BY_ID);
      return result;
    }
Returns all data values associated with expressions that match an input element, along with the tag keys that
caused the match.
planetiler-core/src/main/java/com/onthegomap/planetiler/expression/MultiExpression.java