2019-08-13 06:06:57 -04:00
|
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
|
// Licensed under the MIT License.
|
|
|
|
|
|
|
|
|
|
using RulesEngine.ExpressionBuilders;
|
|
|
|
|
using RulesEngine.Models;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace RulesEngine
|
|
|
|
|
{
|
|
|
|
|
internal class RuleExpressionBuilderFactory
|
|
|
|
|
{
|
2020-11-16 03:36:35 -05:00
|
|
|
|
private readonly ReSettings _reSettings;
|
|
|
|
|
private readonly LambdaExpressionBuilder _lambdaExpressionBuilder;
|
2020-11-01 22:55:43 -05:00
|
|
|
|
public RuleExpressionBuilderFactory(ReSettings reSettings, RuleExpressionParser expressionParser)
|
2019-08-13 06:06:57 -04:00
|
|
|
|
{
|
|
|
|
|
_reSettings = reSettings;
|
2020-11-01 22:55:43 -05:00
|
|
|
|
_lambdaExpressionBuilder = new LambdaExpressionBuilder(_reSettings, expressionParser);
|
2019-08-13 06:06:57 -04:00
|
|
|
|
}
|
|
|
|
|
public RuleExpressionBuilderBase RuleGetExpressionBuilder(RuleExpressionType ruleExpressionType)
|
|
|
|
|
{
|
|
|
|
|
switch (ruleExpressionType)
|
|
|
|
|
{
|
|
|
|
|
case RuleExpressionType.LambdaExpression:
|
2020-11-01 22:55:43 -05:00
|
|
|
|
return _lambdaExpressionBuilder;
|
2019-08-13 06:06:57 -04:00
|
|
|
|
default:
|
|
|
|
|
throw new InvalidOperationException($"{nameof(ruleExpressionType)} has not been supported yet.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|