Ejemplo n.º 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);
            }