public FastCollectionLazyIterator(
     IFastCollection sourceCollection,
     SimpleOperationTarget operationTarget,
     Func <IEnumerable <FastCollectionItem <T> > > itemsBuilder)
 {
     _itemsBuilder    = itemsBuilder;
     OperationTarget  = operationTarget ?? throw new ArgumentNullException(nameof(operationTarget));
     SourceCollection = sourceCollection ?? throw new ArgumentNullException(nameof(sourceCollection));
 }
 internal FastCollectionIterator(
     [NotNull] IFastCollection sourceCollection,
     [NotNull] SimpleOperationTarget operationTarget,
     [NotNull] IEnumerable <FastCollectionItem <T> > itemsEnumerable)
 {
     SourceCollection = sourceCollection;
     OperationTarget  = operationTarget;
     ItemsEnumerable  = itemsEnumerable;
 }
Пример #3
0
 public ComparisonFilter([NotNull] SimpleOperationTarget operationTarget, ComparisonFilterType comparisonFilterType, [NotNull] object value)
 {
     OperationTarget      = operationTarget ?? throw new ArgumentNullException(nameof(operationTarget));
     ComparisonFilterType = comparisonFilterType;
     Value = value ?? throw new ArgumentNullException(nameof(value));
 }
Пример #4
0
        /// <summary>
        /// Transforms "where" predicate to inner presentation (which is used for execution).
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="sourceOperationTarget">Lambda parameter of expression will be replaced with <see cref="OperationTargetExpression"/> containing this target</param>
        /// <typeparam name="TSource"></typeparam>
        /// <returns></returns>
        internal IFilter ParsePredicate <TSource>([NotNull] Expression <Func <TSource, bool> > expression, SimpleOperationTarget sourceOperationTarget)
        {
            var t = LambdaParametersReplacer.ReplaceLambdaParameters(expression, sourceOperationTarget.Expression);

            return(_filtersParser.ParseFilters(t));
        }
Пример #5
0
 internal void AddIndex(SimpleOperationTarget operationTarget, IIndex index)
 {
     _indicesCoverage.Add(operationTarget, index);
 }