RulesEngine/src/RulesEngine/RuleExpressionBuilderFactor...

31 lines
1.1 KiB
C#

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using RulesEngine.ExpressionBuilders;
using RulesEngine.Models;
using System;
namespace RulesEngine
{
internal class RuleExpressionBuilderFactory
{
private readonly ReSettings _reSettings;
private readonly LambdaExpressionBuilder _lambdaExpressionBuilder;
public RuleExpressionBuilderFactory(ReSettings reSettings, RuleExpressionParser expressionParser)
{
_reSettings = reSettings;
_lambdaExpressionBuilder = new LambdaExpressionBuilder(_reSettings, expressionParser);
}
public RuleExpressionBuilderBase RuleGetExpressionBuilder(RuleExpressionType ruleExpressionType)
{
switch (ruleExpressionType)
{
case RuleExpressionType.LambdaExpression:
return _lambdaExpressionBuilder;
default:
throw new InvalidOperationException($"{nameof(ruleExpressionType)} has not been supported yet.");
}
}
}
}