matches method

bool matches(
  1. Object? value, {
  2. Object? parameters,
  3. List? positionalParameters,
  4. Map<String, Object?>? namedParameters,
  5. EntityHandler? entityHandler,
})

Implementation

bool matches(Object? value,
    {Object? parameters,
    List? positionalParameters,
    Map<String, Object?>? namedParameters,
    EntityHandler? entityHandler}) {
  var myValue = getValue(
      parameters: parameters,
      positionalParameters: positionalParameters,
      namedParameters: namedParameters);

  var otherValue = value is ConditionParameter
      ? value.getValue(
          parameters: parameters,
          positionalParameters: positionalParameters,
          namedParameters: namedParameters)
      : value;

  if (myValue is Iterable) {
    if (otherValue is Iterable) {
      var equals = isEqualsIterableDeep(myValue, otherValue,
          valueEquality: (a, b) => EntityHandler.equalsValuesBasic(a, b,
              entityHandler: entityHandler));
      return equals;
    } else {
      var contains = myValue
          .where((v) => EntityHandler.equalsValuesBasic(v, otherValue,
              entityHandler: entityHandler))
          .isNotEmpty;
      return contains;
    }
  } else if (otherValue is Iterable) {
    var contains = otherValue
        .where((v) => EntityHandler.equalsValuesBasic(v, myValue,
            entityHandler: entityHandler))
        .isNotEmpty;
    return contains;
  }

  return EntityHandler.equalsValuesBasic(myValue, otherValue,
      entityHandler: entityHandler);
}