code: public static ValueMatcher makeValueMatcherGeneric(DimensionSelector selector, Predicate<String> predicate)
    {
      int cardinality = selector.getValueCardinality();
      if (cardinality >= 0 && selector.nameLookupPossibleInAdvance()) {
        return makeDictionaryEncodedValueMatcherGeneric(selector, predicate);
      } else {
        return makeNonDictionaryEncodedValueMatcherGeneric(selector, predicate);
      }
    }
docs: Generic implementation of {@link DimensionSelector#makeValueMatcher(Predicate)}, uses {@link
  DimensionSelector#getRow()} of the given {@link DimensionSelector}. "Lazy" DimensionSelectors could delegate
  {@code makeValueMatcher()} to this method, but encouraged to implement {@code makeValueMatcher()} themselves,
  bypassing the {@link IndexedInts} abstraction.