compose static method

  1. @protected
String compose(
  1. Sql? baseSql,
  2. Map<Sql, Sql> cases,
  3. Sql? elseSql
)

Composes and returns a parenthesis-enclosed CASE expression.

Implementation

@protected
static String compose(Sql? baseSql, Map<Sql, Sql> cases, Sql? elseSql) {
  String prefix = "CASE${baseSql == null ? "" : " ${baseSql.str}"}";
  var casesStr = cases.entries
      .map((var c) => " WHEN ${c.key.str} THEN ${c.value.str}")
      .join();
  var suffix = "${elseSql == null ? "" : " ELSE ${elseSql.str}"} END";
  return "($prefix$casesStr$suffix)";
}