Пример #1
0
            private IGremlinQueryBase Create()
            {
                var startQuery = Volatile.Read(ref _startQuery);

                if (startQuery != null)
                {
                    return(startQuery);
                }

                IGremlinQueryBase ret = GremlinQuery.Create <object>(Environment);

                if (!ExcludedStrategyTypes.IsEmpty)
                {
                    ret = ret.AddStep(new WithoutStrategiesStep(ExcludedStrategyTypes.ToArray()));
                }

                foreach (var strategy in IncludedStrategies)
                {
                    ret = strategy.Apply(ret);
                }

                return(Interlocked.CompareExchange(ref _startQuery, ret, null) ?? ret);
            }
Пример #2
0
 IGremlinQuerySource IGremlinQuerySource.RemoveStrategies(params Type[] strategyTypes)
 {
     return(new GremlinQuerySourceImpl(Environment, IncludedStrategies, ExcludedStrategyTypes.AddRange(strategyTypes)));
 }