createDelegateExpression function

Expression createDelegateExpression(
  1. List<String> expressionPath,
  2. ExpressionProvider? property
)

Implementation

Expression createDelegateExpression(
    List<String> expressionPath, ExpressionProvider? property) {
  if (property is ExpressionProvider<Integer>) {
    return DelegateExpression<Integer>(expressionPath, property);
  }
  if (property is ExpressionProvider<Integer?>) {
    return DelegateExpression<Integer?>(expressionPath, property);
  }
  if (property is ExpressionProvider<int>) {
    return IntToIntegerExpression(
      DelegateExpression<int>(expressionPath, property),
    );
  }
  if (property is ExpressionProvider<int?>) {
    return NullableIntToIntegerExpression(
      DelegateExpression<int?>(expressionPath, property),
    );
  }
  if (property is ExpressionProvider<bool>) {
    return DelegateExpression<bool>(expressionPath, property);
  }
  if (property is ExpressionProvider<bool?>) {
    return DelegateExpression<bool?>(expressionPath, property);
  }
  if (property is ExpressionProvider<String>) {
    return DelegateExpression<String>(expressionPath, property);
  }
  if (property is ExpressionProvider<String?>) {
    return DelegateExpression<String?>(expressionPath, property);
  }
  if (property is ExpressionProvider<DateTime>) {
    return DelegateExpression<DateTime>(expressionPath, property);
  }
  if (property is ExpressionProvider<DateTime?>) {
    return DelegateExpression<DateTime?>(expressionPath, property);
  }
  if (property is ExpressionProvider<Duration>) {
    return DelegateExpression<Duration>(expressionPath, property);
  }
  if (property is ExpressionProvider<Duration?>) {
    return DelegateExpression<Duration?>(expressionPath, property);
  }
  if (property is ExpressionProvider<Decimal>) {
    return DelegateExpression<Decimal>(expressionPath, property);
  }
  if (property is ExpressionProvider<Decimal?>) {
    return DelegateExpression<Decimal?>(expressionPath, property);
  }
  if (property is ExpressionProvider<double>) {
    return DoubleToDecimalExpression(
      DelegateExpression<double>(expressionPath, property),
    );
  }
  if (property is ExpressionProvider<double?>) {
    return NullableDoubleToDecimalExpression(
      DelegateExpression<double?>(expressionPath, property),
    );
  }
  if (property is ExpressionProvider<ExpressionProviderElement>) {
    return DelegateExpression<ExpressionProviderElement>(
        expressionPath, property);
  }
  if (property is ExpressionProvider<ExpressionProviderElement?>) {
    return DelegateExpression<ExpressionProviderElement?>(
        expressionPath, property);
  }
  if (property is ExpressionProvider<List<ExpressionProviderElement>>) {
    return DelegateExpression<List<ExpressionProviderElement>>(
        expressionPath, property);
  }
  if (property is ExpressionProvider<List<ExpressionProviderElement>?>) {
    return DelegateExpression<List<ExpressionProviderElement>?>(
        expressionPath, property);
  }
  throw UnknownExpressionFactoryException('Unknown expression factory');
}