static QueryModelVisitor() { // TODO - reflection to build map ResultOperatorMap = new ResultOperatorMap(); ResultOperatorMap.Add<AggregateResultOperator, ProcessAggregate>(); ResultOperatorMap.Add<AggregateFromSeedResultOperator, ProcessAggregateFromSeed>(); ResultOperatorMap.Add<FirstResultOperator, ProcessFirst>(); ResultOperatorMap.Add<TakeResultOperator, ProcessTake>(); ResultOperatorMap.Add<SkipResultOperator, ProcessSkip>(); ResultOperatorMap.Add<GroupResultOperator, ProcessGroupBy>(); ResultOperatorMap.Add<SingleResultOperator, ProcessSingle>(); ResultOperatorMap.Add<ContainsResultOperator, ProcessContains>(); ResultOperatorMap.Add<NonAggregatingGroupBy, ProcessNonAggregatingGroupBy>(); ResultOperatorMap.Add<ClientSideSelect, ProcessClientSideSelect>(); ResultOperatorMap.Add<AnyResultOperator, ProcessAny>(); ResultOperatorMap.Add<AllResultOperator, ProcessAll>(); ResultOperatorMap.Add<FetchOneRequest, ProcessFetchOne>(); ResultOperatorMap.Add<FetchManyRequest, ProcessFetchMany>(); ResultOperatorMap.Add<CacheableResultOperator, ProcessCacheable>(); ResultOperatorMap.Add<OfTypeResultOperator, ProcessOfType>(); ResultOperatorMap.Add<CastResultOperator, ProcessCast>(); }