createConditionalExpression function

ConditionalExpression createConditionalExpression(
  1. Expression<bool> condition,
  2. Expression trueValue,
  3. Expression falseValue
)

Implementation

ConditionalExpression createConditionalExpression(
    Expression<bool> condition, Expression trueValue, Expression falseValue) {
  if (trueValue is Expression<Integer>) {
    return ConditionalExpression<Integer>(
        condition, trueValue, falseValue as Expression<Integer>);
  }
  if (trueValue is Expression<bool>) {
    return ConditionalExpression<bool>(
        condition, trueValue, falseValue as Expression<bool>);
  }
  if (trueValue is Expression<String>) {
    return ConditionalExpression<String>(
        condition, trueValue, falseValue as Expression<String>);
  }
  if (trueValue is Expression<Decimal>) {
    return ConditionalExpression<Decimal>(
        condition, trueValue, falseValue as Expression<Decimal>);
  }
  if (trueValue is Expression<DateTime>) {
    return ConditionalExpression<DateTime>(
        condition, trueValue, falseValue as Expression<DateTime>);
  }
  if (trueValue is Expression<Duration>) {
    return ConditionalExpression<Duration>(
        condition, trueValue, falseValue as Expression<Duration>);
  }
  if (trueValue is Expression<ExpressionProviderElement>) {
    return ConditionalExpression<ExpressionProviderElement>(condition,
        trueValue, falseValue as Expression<ExpressionProviderElement>);
  }
  if (trueValue is Expression<List<ExpressionProviderElement>>) {
    return ConditionalExpression<List<ExpressionProviderElement>>(condition,
        trueValue, falseValue as Expression<List<ExpressionProviderElement>>);
  }
  throw UnknownExpressionTypeException(
      'Unknown expression in conditional expression');
}