inClause static method

String inClause(
  1. Iterable values, [
  2. SqlOnEmptyInClause onEmpty = SqlOnEmptyInClause.MATCHNULL
])

Implementation

static String inClause(Iterable values, [SqlOnEmptyInClause onEmpty = SqlOnEmptyInClause.MATCHNULL]) {
  if (values.isEmpty) {
    switch (onEmpty) {
      case SqlOnEmptyInClause.FAIL     : throw new ArgumentError.value(values, 'values', "Failed to generate SQL \"IN\" clause: null/empty value list");
      case SqlOnEmptyInClause.IGNORE   : return '';
      case SqlOnEmptyInClause.MATCHNULL: return 'IS NULL';
      case SqlOnEmptyInClause.USEEMPTY : break;
    }
  }

  if (values.length == 1) {
    return "= @?";
  } else {
    return "IN (" + new List.filled(values.length, '@?').join(', ') + ")";
  }
}