public CriteriaLeafExpressionStrategy(ICriteriaTypeRegistry typeRegistry)
        {
            _typeRegistry = typeRegistry;

            _criteriaLeafExpressionStrategies = new Dictionary<Operator, ICriteriaLeafExpressionStrategy>
            {
                {Operator.Equal, new CriteriaLeafExpressionEqualsStrategy(_typeRegistry)},
                {Operator.NotEqual, new CriteriaLeafExpressionNotEqualsStrategy(_typeRegistry)},
                {Operator.LessThan, new CriteriaLeafExpressionLessThanStrategy(_typeRegistry)},
                {Operator.LessThanOrEqual, new CriteriaLeafExpressionLessThanOrEqualToStrategy(_typeRegistry)},
                {Operator.GreaterThan, new CriteriaLeafExpressionGreaterThanStrategy(_typeRegistry)},
                {Operator.GreaterThanOrEqual, new CriteriaLeafExpressionGreaterThanOrEqualToStrategy(_typeRegistry)},
                {Operator.IsIn, new CriteriaLeafExpressionIsInStrategy(_typeRegistry)},
                {Operator.IsNotIn, new CriteriaLeafExpressionIsNotInStrategy(_typeRegistry)},
                {Operator.Between, new CriteriaLeafExpressionBetweenStrategy(_typeRegistry)},
                {Operator.Contains, new CriteriaLeafExpressionContainsStrategy(_typeRegistry)},
                {Operator.DoesNotContain, new CriteriaLeafExpressionDoesNotContainStrategy(_typeRegistry)},
                {Operator.StartsWith, new CriteriaLeafExpressionStartsWithStrategy(_typeRegistry)},
                {Operator.DoesNotStartWith, new CriteriaLeafExpressionDoesNotStartWithStrategy(_typeRegistry)},
                {Operator.EndsWith, new CriteriaLeafExpressionEndsWithStrategy(_typeRegistry)},
                {Operator.DoesNotEndWith, new CriteriaLeafExpressionDoesNotEndWithStrategy(_typeRegistry)},
                {Operator.IsTrue, new CriteriaLeafExpressionIsTrueStrategy(_typeRegistry)},
                {Operator.IsFalse, new CriteriaLeafExpressionIsFalseStrategy(_typeRegistry)},
                {Operator.IsNotSpecified, new CriteriaLeafExpressionIsNotSpecifiedStrategy(_typeRegistry)},
                {Operator.EqualsColumn, new CriteriaLeafExpressionEqualsColumnStrategy(_typeRegistry)},
                {Operator.IsSpecified, new CriteriaLeafExpressionIsSpecifiedStrategy(_typeRegistry)}
            };
        }
 public CriteriaLeafExpressionEqualsStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionIsSpecifiedStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public ExpressionBuilder(ICriteriaTypeRegistry typeRegistry)
 {
     _leafExpressionStrategy = new CriteriaLeafExpressionStrategy(typeRegistry);
 }
 public CriteriaLeafExpressionGreaterThanStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionDoesNotEndWithStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionStartsWithStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionContainsStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionLessThanOrEqualToStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public CriteriaLeafExpressionIsTrueStrategy(ICriteriaTypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }