private IGremlinQuery Create() { var startQuery = Volatile.Read(ref _startQuery); if (startQuery != null) { return(startQuery); } IGremlinQuery ret = GremlinQuery.Create( Model, Executor, Name, Logger); if (!ExcludedStrategyNames.IsEmpty) { ret = ret.AddStep(new WithoutStrategiesStep(ExcludedStrategyNames.ToArray())); } foreach (var strategy in IncludedStrategies) { ret = strategy.Apply(ret); } return(Interlocked.CompareExchange(ref _startQuery, ret, null) ?? ret); }
public IConfigurableGremlinQuerySource WithoutStrategies(params string[] strategies) { return(new ConfigurableGremlinQuerySourceImpl(Name, Model, _isUserSetModel, Executor, IncludedStrategies, ExcludedStrategyNames.AddRange(strategies), Logger)); }
IConfigurableGremlinQuerySource IConfigurableGremlinQuerySource.RemoveStrategies(params string[] strategies) { return(new ConfigurableGremlinQuerySourceImpl(Name, Model, Options, _isUserSetModel, Pipeline, IncludedStrategies, ExcludedStrategyNames.AddRange(strategies), Logger)); }