Example #1
0
        public static NodeSelectorFactory Create(RuntimeConfigurator configurator, NodeSelectorFactory factory,
                                                 PropertyInfo propertyInfo)
        {
            Type type = typeof(PropertyNodeSelectorFactory <>).MakeGenericType(propertyInfo.PropertyType);

            return((NodeSelectorFactory)Activator.CreateInstance(type, configurator, factory, propertyInfo));
        }
        public static PropertyExpressionVisitor Create(Type type, RuntimeConfigurator configurator,
                                                       NodeSelectorFactory nodeSelectorFactory)
        {
            Type visitorType = typeof(PropertyExpressionVisitor <>).MakeGenericType(type);

            return((PropertyExpressionVisitor)Activator.CreateInstance(visitorType, configurator, nodeSelectorFactory));
        }
        public static NodeSelectorFactory Create(RuntimeConfigurator configurator, NodeSelectorFactory factory,
            PropertyInfo propertyInfo)
        {
            Type type = typeof(PropertyNodeSelectorFactory<>).MakeGenericType(propertyInfo.PropertyType);

            return (NodeSelectorFactory)Activator.CreateInstance(type, configurator, factory, propertyInfo);
        }
 public NotEqualNodeSelectorFactory(NodeSelectorFactory nextFactory, RuntimeConfigurator configurator,
                                    TValue value)
 {
     _nextFactory  = nextFactory;
     _value        = value;
     _configurator = configurator;
 }
        public static PropertyExpressionVisitor Create(Type type, RuntimeConfigurator configurator,
            NodeSelectorFactory nodeSelectorFactory)
        {
            Type visitorType = typeof(PropertyExpressionVisitor<>).MakeGenericType(type);

            return (PropertyExpressionVisitor)Activator.CreateInstance(visitorType, configurator, nodeSelectorFactory);
        }
 void Compile <T, TProperty>(Expression <Func <T, TProperty> > propertyExpression,
                             NodeSelectorFactory selectorFactory)
     where T : class
 {
     new PropertyExpressionVisitor <T>(_configurator, selectorFactory)
     .CreateSelector(propertyExpression.Body)
     .Select();
 }
 public CompareNodeSelectorFactory(NodeSelectorFactory nextFactory,
                                   RuntimeConfigurator configurator,
                                   Comparator <TValue, TValue> comparator,
                                   Value <TValue> value)
 {
     _nextFactory  = nextFactory;
     _value        = value;
     _configurator = configurator;
     _comparator   = comparator;
 }
        void Compile <T, TProperty>(Expression <Func <T, TProperty> > propertyExpression,
                                    Func <NodeSelectorFactory, NodeSelectorFactory> selectorConfigurator)
            where T : class
        {
            var conditionFactory = new ConditionAlphaNodeSelectorFactory(_configurator, node => _alphaNodes.Add(node));

            var alphaFactory = new AlphaNodeSelectorFactory(conditionFactory, _configurator);

            NodeSelectorFactory factory = selectorConfigurator(alphaFactory);

            Compile(propertyExpression, factory);
        }
        public static NodeSelector Create(RuntimeConfigurator configurator, Type tokenType,
            NodeSelectorFactory nextSelectorFactory, object value)
        {
            Type[] arguments = tokenType.GetGenericArguments();
            if (!arguments[1].IsInstanceOfType(value))
                throw new RuntimeConfigurationException("Value type does not match token type: " + value.GetType().GetTypeName());

            Type type = typeof(EqualNodeSelector<,>)
                .MakeGenericType(arguments);

            var nodeSelector = (NodeSelector)Activator.CreateInstance(type, configurator, nextSelectorFactory, value);

            return nodeSelector;
        }
        public static NodeSelector Create <T, TProperty>(RuntimeConfigurator configurator,
                                                         NodeSelectorFactory nextSelectorFactory,
                                                         PropertyInfo propertyInfo)
        {
            PropertySelector propertySelector = configurator.GetPropertySelector(propertyInfo);

            Type type = typeof(PropertyNodeSelector <, ,>)
                        .MakeGenericType(typeof(T), propertySelector.PropertyType, propertySelector.ValueType);

            var nodeSelector =
                (NodeSelector)
                Activator.CreateInstance(type, configurator, nextSelectorFactory, propertyInfo, propertySelector);

            return(nodeSelector);
        }
        public static NodeSelector Create(RuntimeConfigurator configurator, Type tokenType,
                                          NodeSelectorFactory nextSelectorFactory, object value)
        {
            Type[] arguments = tokenType.GetGenericArguments();
            if (!arguments[1].IsInstanceOfType(value))
            {
                throw new RuntimeConfigurationException("Value type does not match token type: " + value.GetType().GetTypeName());
            }

            Type type = typeof(EqualNodeSelector <,>)
                        .MakeGenericType(arguments);

            var nodeSelector = (NodeSelector)Activator.CreateInstance(type, configurator, nextSelectorFactory, value);

            return(nodeSelector);
        }
        public static NodeSelector Create(RuntimeConfigurator configurator, NodeSelectorFactory nextSelectorFactory,
                                          PropertyInfo propertyInfo, params Type[] tokenTypes)
        {
            if (tokenTypes.Length != 2)
            {
                throw new NotImplementedException("Only handling two right now");
            }

            PropertySelector propertySelector = configurator.GetPropertySelector(propertyInfo);

            Type type = typeof(PropertyNodeSelector <, , ,>)
                        .MakeGenericType(tokenTypes[0], tokenTypes[1], propertySelector.PropertyType, propertySelector.ValueType);

            var nodeSelector =
                (NodeSelector)
                Activator.CreateInstance(type, configurator, nextSelectorFactory, propertyInfo, propertySelector);

            return(nodeSelector);
        }
Example #13
0
 public PropertyNodeSelectorFactory(NodeSelectorFactory nextFactory, RuntimeConfigurator configurator, PropertyInfo propertyInfo)
 {
     _nextFactory  = nextFactory;
     _configurator = configurator;
     _propertyInfo = propertyInfo;
 }
        protected PropertyExpressionVisitor Create(Type type, NodeSelectorFactory nodeSelectorFactory)
        {
            Type visitorType = typeof(PropertyExpressionVisitor <>).MakeGenericType(type);

            return((PropertyExpressionVisitor)Activator.CreateInstance(visitorType, Configurator, nodeSelectorFactory));
        }
        protected PropertyExpressionVisitor Create(Type type, NodeSelectorFactory nodeSelectorFactory)
        {
            Type visitorType = typeof(PropertyExpressionVisitor<>).MakeGenericType(type);

            return (PropertyExpressionVisitor)Activator.CreateInstance(visitorType, Configurator, nodeSelectorFactory);
        }
Example #16
0
 public EachNodeSelectorFactory(NodeSelectorFactory nextFactory,
                                RuntimeConfigurator configurator)
 {
     _nextFactory  = nextFactory;
     _configurator = configurator;
 }
 public ListNodeSelectorFactory(NodeSelectorFactory nextFactory, int index)
 {
     _nextFactory = nextFactory;
     _index       = index;
 }