public static CompositeIndexLookup Make(
            object[] keyValues,
            MultiKeyFromObjectArray multiKeyTransform,
            RangeIndexLookupValue[] rangeValues,
            Type[] rangeCoercion)
        {
            // construct chain
            IList<CompositeIndexLookup> queries = new List<CompositeIndexLookup>();
            if (keyValues != null && keyValues.Length > 0) {
                queries.Add(new CompositeIndexLookupKeyed(keyValues, multiKeyTransform));
            }

            for (int i = 0; i < rangeValues.Length; i++) {
                queries.Add(new CompositeIndexLookupRange(rangeValues[i], rangeCoercion[i]));
            }

            // Hook up as chain for remove
            CompositeIndexLookup last = null;
            foreach (CompositeIndexLookup action in queries) {
                if (last != null) {
                    last.Next = action;
                }

                last = action;
            }

            return queries[0];
        }
Exemple #2
0
        public static CompositeIndexLookup Make(Object[] keyValues, IList <RangeIndexLookupValue> rangeValues, IList <Type> rangeCoercion)
        {
            // construct chain
            var queries = new List <CompositeIndexLookup>();

            if (keyValues != null && keyValues.Length > 0)
            {
                queries.Add(new CompositeIndexLookupKeyed(keyValues));
            }
            for (int i = 0; i < rangeValues.Count; i++)
            {
                queries.Add(new CompositeIndexLookupRange(rangeValues[i], rangeCoercion[i]));
            }

            // Hook up as chain for remove
            CompositeIndexLookup last = null;

            foreach (CompositeIndexLookup action in queries)
            {
                if (last != null)
                {
                    last.SetNext(action);
                }
                last = action;
            }
            return(queries[0]);
        }
Exemple #3
0
 public void SetNext(CompositeIndexLookup value)
 {
     _next = value;
 }
 public void SetNext(CompositeIndexLookup next)
 {
     _next = next;
 }