public override Expression ToExpression()

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();
        }