in src/Analyzer.JsonRuleEngine/Schemas/LeafExpressionDefinition.cs [86:135]
public override Expression ToExpression(bool isNegative = false)
{
LeafExpressionOperator leafOperator = null;
if (this.Exists != null)
{
leafOperator = new ExistsOperator(Exists.Value, isNegative);
}
else if (this.HasValue != null)
{
leafOperator = new HasValueOperator(HasValue.Value, isNegative);
}
else if (this.Is != null || this.NotEquals != null)
{
leafOperator = new EqualsOperator(
specifiedValue: this.Is ?? this.NotEquals,
isNegative: this.NotEquals != null ^ isNegative);
}
else if (this.Regex != null)
{
leafOperator = new RegexOperator(this.Regex, isNegative);
}
else if (this.In != null)
{
leafOperator = new InOperator(this.In, isNegative);
}
else if (this.Greater != null)
{
leafOperator = new InequalityOperator(this.Greater, greater: true ^ isNegative, orEquals: false ^ isNegative);
}
else if (this.GreaterOrEquals != null)
{
leafOperator = new InequalityOperator(this.GreaterOrEquals, greater: true ^ isNegative, orEquals: true ^ isNegative);
}
else if (this.Less != null)
{
leafOperator = new InequalityOperator(this.Less, greater: false ^ isNegative, orEquals: false ^ isNegative);
}
else if (this.LessOrEquals != null)
{
leafOperator = new InequalityOperator(this.LessOrEquals, greater: false ^ isNegative, orEquals: true ^ isNegative);
}
if (leafOperator != null)
{
return new LeafExpression(leafOperator, this.CommonProperties);
}
throw new NotImplementedException();
}