blob: 1240ee0bdd7feacdd3e3551b9747d78bbbafa395 [file] [log] [blame]
#region License
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#endregion
using System.Collections.Generic;
using System.Linq;
using Gremlin.Net.Structure;
// THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
namespace Gremlin.Net.Process.Traversal
{
/// <summary>
/// Graph traversals are the primary way in which graphs are processed.
/// </summary>
public class GraphTraversal<S, E> : DefaultTraversal<S, E>
{
/// <summary>
/// Initializes a new instance of the <see cref="GraphTraversal{SType, EType}" /> class.
/// </summary>
public GraphTraversal()
: this(new List<ITraversalStrategy>(), new Bytecode())
{
}
/// <summary>
/// Initializes a new instance of the <see cref="GraphTraversal{SType, EType}" /> class.
/// </summary>
/// <param name="traversalStrategies">The traversal strategies to be used by this graph traversal at evaluation time.</param>
/// <param name="bytecode">The <see cref="Bytecode" /> associated with the construction of this graph traversal.</param>
public GraphTraversal(ICollection<ITraversalStrategy> traversalStrategies, Bytecode bytecode)
{
TraversalStrategies = traversalStrategies;
Bytecode = bytecode;
}
private static GraphTraversal<S2, E2> Wrap<S2, E2>(GraphTraversal<S, E> traversal)
{
if (typeof(S2) == typeof(S) && typeof(E2) == typeof(E))
{
return traversal as GraphTraversal<S2, E2>;
}
// New wrapper
return new GraphTraversal<S2, E2>(traversal.TraversalStrategies, traversal.Bytecode);
}
/// <summary>
/// Adds the V step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> V (params object[] vertexIdsOrElements)
{
var args = new List<object>(0 + vertexIdsOrElements.Length) {};
args.AddRange(vertexIdsOrElements);
Bytecode.AddStep("V", args.ToArray());
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the addE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> AddE (string edgeLabel)
{
Bytecode.AddStep("addE", edgeLabel);
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the addE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> AddE (ITraversal edgeLabelTraversal)
{
Bytecode.AddStep("addE", edgeLabelTraversal);
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the addV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> AddV ()
{
Bytecode.AddStep("addV");
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the addV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> AddV (string vertexLabel)
{
Bytecode.AddStep("addV", vertexLabel);
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the addV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> AddV (ITraversal vertexLabelTraversal)
{
Bytecode.AddStep("addV", vertexLabelTraversal);
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the aggregate step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Aggregate (string sideEffectKey)
{
Bytecode.AddStep("aggregate", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the and step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> And (params ITraversal[] andTraversals)
{
var args = new List<object>(0 + andTraversals.Length) {};
args.AddRange(andTraversals);
Bytecode.AddStep("and", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the as step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> As (string stepLabel, params string[] stepLabels)
{
var args = new List<object>(1 + stepLabels.Length) {stepLabel};
args.AddRange(stepLabels);
Bytecode.AddStep("as", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the barrier step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Barrier ()
{
Bytecode.AddStep("barrier");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the barrier step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Barrier (IConsumer barrierConsumer)
{
Bytecode.AddStep("barrier", barrierConsumer);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the barrier step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Barrier (int maxBarrierSize)
{
Bytecode.AddStep("barrier", maxBarrierSize);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the both step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> Both (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("both", args.ToArray());
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the bothE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> BothE (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("bothE", args.ToArray());
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the bothV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> BothV ()
{
Bytecode.AddStep("bothV");
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the branch step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Branch<E2> (IFunction function)
{
Bytecode.AddStep("branch", function);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the branch step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Branch<E2> (ITraversal branchTraversal)
{
Bytecode.AddStep("branch", branchTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By ()
{
Bytecode.AddStep("by");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (IComparator comparator)
{
Bytecode.AddStep("by", comparator);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (IFunction function)
{
Bytecode.AddStep("by", function);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (IFunction function, IComparator comparator)
{
Bytecode.AddStep("by", function, comparator);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (Order order)
{
Bytecode.AddStep("by", order);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (string key)
{
Bytecode.AddStep("by", key);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (string key, IComparator comparator)
{
Bytecode.AddStep("by", key, comparator);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (T token)
{
Bytecode.AddStep("by", token);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (ITraversal traversal)
{
Bytecode.AddStep("by", traversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> By (ITraversal traversal, IComparator comparator)
{
Bytecode.AddStep("by", traversal, comparator);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the cap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Cap<E2> (string sideEffectKey, params string[] sideEffectKeys)
{
var args = new List<object>(1 + sideEffectKeys.Length) {sideEffectKey};
args.AddRange(sideEffectKeys);
Bytecode.AddStep("cap", args.ToArray());
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (IFunction choiceFunction)
{
Bytecode.AddStep("choose", choiceFunction);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (IPredicate choosePredicate, ITraversal trueChoice)
{
Bytecode.AddStep("choose", choosePredicate, trueChoice);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (IPredicate choosePredicate, ITraversal trueChoice, ITraversal falseChoice)
{
Bytecode.AddStep("choose", choosePredicate, trueChoice, falseChoice);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (ITraversal choiceTraversal)
{
Bytecode.AddStep("choose", choiceTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice)
{
Bytecode.AddStep("choose", traversalPredicate, trueChoice);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice, ITraversal falseChoice)
{
Bytecode.AddStep("choose", traversalPredicate, trueChoice, falseChoice);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the coalesce step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Coalesce<E2> (params ITraversal[] coalesceTraversals)
{
var args = new List<object>(0 + coalesceTraversals.Length) {};
args.AddRange(coalesceTraversals);
Bytecode.AddStep("coalesce", args.ToArray());
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the coin step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Coin (double probability)
{
Bytecode.AddStep("coin", probability);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the constant step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Constant<E2> (E2 e)
{
Bytecode.AddStep("constant", e);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the count step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, long> Count ()
{
Bytecode.AddStep("count");
return Wrap<S, long>(this);
}
/// <summary>
/// Adds the count step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, long> Count (Scope scope)
{
Bytecode.AddStep("count", scope);
return Wrap<S, long>(this);
}
/// <summary>
/// Adds the cyclicPath step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> CyclicPath ()
{
Bytecode.AddStep("cyclicPath");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the dedup step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Dedup (Scope scope, params string[] dedupLabels)
{
var args = new List<object>(1 + dedupLabels.Length) {scope};
args.AddRange(dedupLabels);
Bytecode.AddStep("dedup", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the dedup step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Dedup (params string[] dedupLabels)
{
var args = new List<object>(0 + dedupLabels.Length) {};
args.AddRange(dedupLabels);
Bytecode.AddStep("dedup", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the drop step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Drop ()
{
Bytecode.AddStep("drop");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the emit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Emit ()
{
Bytecode.AddStep("emit");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the emit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Emit (IPredicate emitPredicate)
{
Bytecode.AddStep("emit", emitPredicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the emit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Emit (ITraversal emitTraversal)
{
Bytecode.AddStep("emit", emitTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the filter step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Filter (IPredicate predicate)
{
Bytecode.AddStep("filter", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the filter step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Filter (ITraversal filterTraversal)
{
Bytecode.AddStep("filter", filterTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the flatMap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> FlatMap<E2> (IFunction function)
{
Bytecode.AddStep("flatMap", function);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the flatMap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> FlatMap<E2> (ITraversal flatMapTraversal)
{
Bytecode.AddStep("flatMap", flatMapTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the fold step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IList<E>> Fold ()
{
Bytecode.AddStep("fold");
return Wrap<S, IList<E>>(this);
}
/// <summary>
/// Adds the fold step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Fold<E2> (E2 seed, IBiFunction foldFunction)
{
Bytecode.AddStep("fold", seed, foldFunction);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the from step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> From (string fromStepLabel)
{
Bytecode.AddStep("from", fromStepLabel);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the from step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> From (ITraversal fromVertex)
{
Bytecode.AddStep("from", fromVertex);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the from step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> From (Vertex fromVertex)
{
Bytecode.AddStep("from", fromVertex);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the group step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<K, V>> Group<K, V> ()
{
Bytecode.AddStep("group");
return Wrap<S, IDictionary<K, V>>(this);
}
/// <summary>
/// Adds the group step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Group (string sideEffectKey)
{
Bytecode.AddStep("group", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the groupCount step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<K, long>> GroupCount<K> ()
{
Bytecode.AddStep("groupCount");
return Wrap<S, IDictionary<K, long>>(this);
}
/// <summary>
/// Adds the groupCount step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> GroupCount (string sideEffectKey)
{
Bytecode.AddStep("groupCount", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string propertyKey)
{
Bytecode.AddStep("has", propertyKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string propertyKey, object value)
{
Bytecode.AddStep("has", propertyKey, value);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string propertyKey, P predicate)
{
Bytecode.AddStep("has", propertyKey, predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string label, string propertyKey, object value)
{
Bytecode.AddStep("has", label, propertyKey, value);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string label, string propertyKey, P predicate)
{
Bytecode.AddStep("has", label, propertyKey, predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (string propertyKey, ITraversal propertyTraversal)
{
Bytecode.AddStep("has", propertyKey, propertyTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (T accessor, object value)
{
Bytecode.AddStep("has", accessor, value);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (T accessor, P predicate)
{
Bytecode.AddStep("has", accessor, predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Has (T accessor, ITraversal propertyTraversal)
{
Bytecode.AddStep("has", accessor, propertyTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasId step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasId (object id, params object[] otherIds)
{
var args = new List<object>(1 + otherIds.Length) {id};
args.AddRange(otherIds);
Bytecode.AddStep("hasId", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasId step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasId (P predicate)
{
Bytecode.AddStep("hasId", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasKey step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasKey (P predicate)
{
Bytecode.AddStep("hasKey", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasKey step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasKey (string label, params string[] otherLabels)
{
var args = new List<object>(1 + otherLabels.Length) {label};
args.AddRange(otherLabels);
Bytecode.AddStep("hasKey", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasLabel step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasLabel (P predicate)
{
Bytecode.AddStep("hasLabel", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasLabel step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasLabel (string label, params string[] otherLabels)
{
var args = new List<object>(1 + otherLabels.Length) {label};
args.AddRange(otherLabels);
Bytecode.AddStep("hasLabel", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasNot step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasNot (string propertyKey)
{
Bytecode.AddStep("hasNot", propertyKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasValue step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasValue (object value, params object[] otherValues)
{
var args = new List<object>(1 + otherValues.Length) {value};
args.AddRange(otherValues);
Bytecode.AddStep("hasValue", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the hasValue step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> HasValue (P predicate)
{
Bytecode.AddStep("hasValue", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the id step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, object> Id ()
{
Bytecode.AddStep("id");
return Wrap<S, object>(this);
}
/// <summary>
/// Adds the identity step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Identity ()
{
Bytecode.AddStep("identity");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the in step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> In (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("in", args.ToArray());
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the inE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> InE (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("inE", args.ToArray());
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the inV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> InV ()
{
Bytecode.AddStep("inV");
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the inject step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Inject (params E[] injections)
{
var args = new List<object>(0 + injections.Length) {};
args.AddRange(injections.Cast<object>());
Bytecode.AddStep("inject", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the is step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Is (object value)
{
Bytecode.AddStep("is", value);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the is step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Is (P predicate)
{
Bytecode.AddStep("is", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the key step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, string> Key ()
{
Bytecode.AddStep("key");
return Wrap<S, string>(this);
}
/// <summary>
/// Adds the label step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, string> Label ()
{
Bytecode.AddStep("label");
return Wrap<S, string>(this);
}
/// <summary>
/// Adds the limit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Limit<E2> (Scope scope, long limit)
{
Bytecode.AddStep("limit", scope, limit);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the limit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Limit<E2> (long limit)
{
Bytecode.AddStep("limit", limit);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the local step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Local<E2> (ITraversal localTraversal)
{
Bytecode.AddStep("local", localTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the loops step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, int> Loops ()
{
Bytecode.AddStep("loops");
return Wrap<S, int>(this);
}
/// <summary>
/// Adds the map step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Map<E2> (IFunction function)
{
Bytecode.AddStep("map", function);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the map step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Map<E2> (ITraversal mapTraversal)
{
Bytecode.AddStep("map", mapTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the match step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<string, E2>> Match<E2> (params ITraversal[] matchTraversals)
{
var args = new List<object>(0 + matchTraversals.Length) {};
args.AddRange(matchTraversals);
Bytecode.AddStep("match", args.ToArray());
return Wrap<S, IDictionary<string, E2>>(this);
}
/// <summary>
/// Adds the math step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, double> Math (string expression)
{
Bytecode.AddStep("math", expression);
return Wrap<S, double>(this);
}
/// <summary>
/// Adds the max step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Max<E2> ()
{
Bytecode.AddStep("max");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the max step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Max<E2> (Scope scope)
{
Bytecode.AddStep("max", scope);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the mean step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Mean<E2> ()
{
Bytecode.AddStep("mean");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the mean step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Mean<E2> (Scope scope)
{
Bytecode.AddStep("mean", scope);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the min step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Min<E2> ()
{
Bytecode.AddStep("min");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the min step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Min<E2> (Scope scope)
{
Bytecode.AddStep("min", scope);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the not step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Not (ITraversal notTraversal)
{
Bytecode.AddStep("not", notTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the option step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Option (object pickToken, ITraversal traversalOption)
{
Bytecode.AddStep("option", pickToken, traversalOption);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the option step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Option (ITraversal traversalOption)
{
Bytecode.AddStep("option", traversalOption);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the optional step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Optional<E2> (ITraversal optionalTraversal)
{
Bytecode.AddStep("optional", optionalTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the or step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Or (params ITraversal[] orTraversals)
{
var args = new List<object>(0 + orTraversals.Length) {};
args.AddRange(orTraversals);
Bytecode.AddStep("or", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the order step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Order ()
{
Bytecode.AddStep("order");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the order step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Order (Scope scope)
{
Bytecode.AddStep("order", scope);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the otherV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> OtherV ()
{
Bytecode.AddStep("otherV");
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the out step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> Out (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("out", args.ToArray());
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the outE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> OutE (params string[] edgeLabels)
{
var args = new List<object>(0 + edgeLabels.Length) {};
args.AddRange(edgeLabels);
Bytecode.AddStep("outE", args.ToArray());
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the outV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> OutV ()
{
Bytecode.AddStep("outV");
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the pageRank step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> PageRank ()
{
Bytecode.AddStep("pageRank");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the pageRank step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> PageRank (double alpha)
{
Bytecode.AddStep("pageRank", alpha);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the path step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Path> Path ()
{
Bytecode.AddStep("path");
return Wrap<S, Path>(this);
}
/// <summary>
/// Adds the peerPressure step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> PeerPressure ()
{
Bytecode.AddStep("peerPressure");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the profile step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Profile<E2> ()
{
Bytecode.AddStep("profile");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the profile step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Profile (string sideEffectKey)
{
Bytecode.AddStep("profile", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the program step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Program (object vertexProgram)
{
Bytecode.AddStep("program", vertexProgram);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the project step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<string, E2>> Project<E2> (string projectKey, params string[] otherProjectKeys)
{
var args = new List<object>(1 + otherProjectKeys.Length) {projectKey};
args.AddRange(otherProjectKeys);
Bytecode.AddStep("project", args.ToArray());
return Wrap<S, IDictionary<string, E2>>(this);
}
/// <summary>
/// Adds the properties step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Properties<E2> (params string[] propertyKeys)
{
var args = new List<object>(0 + propertyKeys.Length) {};
args.AddRange(propertyKeys);
Bytecode.AddStep("properties", args.ToArray());
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the property step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Property (Cardinality cardinality, object key, object value, params object[] keyValues)
{
var args = new List<object>(3 + keyValues.Length) {cardinality, key, value};
args.AddRange(keyValues);
Bytecode.AddStep("property", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the property step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Property (object key, object value, params object[] keyValues)
{
var args = new List<object>(2 + keyValues.Length) {key, value};
args.AddRange(keyValues);
Bytecode.AddStep("property", args.ToArray());
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the propertyMap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<string, E2>> PropertyMap<E2> (params string[] propertyKeys)
{
var args = new List<object>(0 + propertyKeys.Length) {};
args.AddRange(propertyKeys);
Bytecode.AddStep("propertyMap", args.ToArray());
return Wrap<S, IDictionary<string, E2>>(this);
}
/// <summary>
/// Adds the range step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Range<E2> (Scope scope, long low, long high)
{
Bytecode.AddStep("range", scope, low, high);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the range step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Range<E2> (long low, long high)
{
Bytecode.AddStep("range", low, high);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the repeat step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Repeat (ITraversal repeatTraversal)
{
Bytecode.AddStep("repeat", repeatTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the sack step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Sack<E2> ()
{
Bytecode.AddStep("sack");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the sack step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Sack (IBiFunction sackOperator)
{
Bytecode.AddStep("sack", sackOperator);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the sample step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Sample (Scope scope, int amountToSample)
{
Bytecode.AddStep("sample", scope, amountToSample);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the sample step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Sample (int amountToSample)
{
Bytecode.AddStep("sample", amountToSample);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, ICollection<E2>> Select<E2> (Column column)
{
Bytecode.AddStep("select", column);
return Wrap<S, ICollection<E2>>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Select<E2> (Pop pop, string selectKey)
{
Bytecode.AddStep("select", pop, selectKey);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<string, E2>> Select<E2> (Pop pop, string selectKey1, string selectKey2, params string[] otherSelectKeys)
{
var args = new List<object>(3 + otherSelectKeys.Length) {pop, selectKey1, selectKey2};
args.AddRange(otherSelectKeys);
Bytecode.AddStep("select", args.ToArray());
return Wrap<S, IDictionary<string, E2>>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Select<E2> (Pop pop, ITraversal keyTraversal)
{
Bytecode.AddStep("select", pop, keyTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Select<E2> (string selectKey)
{
Bytecode.AddStep("select", selectKey);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<string, E2>> Select<E2> (string selectKey1, string selectKey2, params string[] otherSelectKeys)
{
var args = new List<object>(2 + otherSelectKeys.Length) {selectKey1, selectKey2};
args.AddRange(otherSelectKeys);
Bytecode.AddStep("select", args.ToArray());
return Wrap<S, IDictionary<string, E2>>(this);
}
/// <summary>
/// Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Select<E2> (ITraversal keyTraversal)
{
Bytecode.AddStep("select", keyTraversal);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the sideEffect step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> SideEffect (IConsumer consumer)
{
Bytecode.AddStep("sideEffect", consumer);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the sideEffect step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> SideEffect (ITraversal sideEffectTraversal)
{
Bytecode.AddStep("sideEffect", sideEffectTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the simplePath step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> SimplePath ()
{
Bytecode.AddStep("simplePath");
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the skip step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Skip<E2> (Scope scope, long skip)
{
Bytecode.AddStep("skip", scope, skip);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the skip step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Skip<E2> (long skip)
{
Bytecode.AddStep("skip", skip);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the store step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Store (string sideEffectKey)
{
Bytecode.AddStep("store", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the subgraph step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> Subgraph (string sideEffectKey)
{
Bytecode.AddStep("subgraph", sideEffectKey);
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the sum step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Sum<E2> ()
{
Bytecode.AddStep("sum");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the sum step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Sum<E2> (Scope scope)
{
Bytecode.AddStep("sum", scope);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Tail<E2> ()
{
Bytecode.AddStep("tail");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Tail<E2> (Scope scope)
{
Bytecode.AddStep("tail", scope);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Tail<E2> (Scope scope, long limit)
{
Bytecode.AddStep("tail", scope, limit);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Tail<E2> (long limit)
{
Bytecode.AddStep("tail", limit);
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the timeLimit step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> TimeLimit (long timeLimit)
{
Bytecode.AddStep("timeLimit", timeLimit);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the times step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Times (int maxLoops)
{
Bytecode.AddStep("times", maxLoops);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> To (Direction direction, params string[] edgeLabels)
{
var args = new List<object>(1 + edgeLabels.Length) {direction};
args.AddRange(edgeLabels);
Bytecode.AddStep("to", args.ToArray());
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> To (string toStepLabel)
{
Bytecode.AddStep("to", toStepLabel);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> To (ITraversal toVertex)
{
Bytecode.AddStep("to", toVertex);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> To (Vertex toVertex)
{
Bytecode.AddStep("to", toVertex);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the toE step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Edge> ToE (Direction direction, params string[] edgeLabels)
{
var args = new List<object>(1 + edgeLabels.Length) {direction};
args.AddRange(edgeLabels);
Bytecode.AddStep("toE", args.ToArray());
return Wrap<S, Edge>(this);
}
/// <summary>
/// Adds the toV step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, Vertex> ToV (Direction direction)
{
Bytecode.AddStep("toV", direction);
return Wrap<S, Vertex>(this);
}
/// <summary>
/// Adds the tree step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Tree<E2> ()
{
Bytecode.AddStep("tree");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the tree step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Tree (string sideEffectKey)
{
Bytecode.AddStep("tree", sideEffectKey);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the unfold step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Unfold<E2> ()
{
Bytecode.AddStep("unfold");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the union step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Union<E2> (params ITraversal[] unionTraversals)
{
var args = new List<object>(0 + unionTraversals.Length) {};
args.AddRange(unionTraversals);
Bytecode.AddStep("union", args.ToArray());
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the until step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Until (IPredicate untilPredicate)
{
Bytecode.AddStep("until", untilPredicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the until step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Until (ITraversal untilTraversal)
{
Bytecode.AddStep("until", untilTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the value step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Value<E2> ()
{
Bytecode.AddStep("value");
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the valueMap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<TKey, TValue>> ValueMap<TKey, TValue> (params string[] propertyKeys)
{
var args = new List<object>(0 + propertyKeys.Length) {};
args.AddRange(propertyKeys);
Bytecode.AddStep("valueMap", args.ToArray());
return Wrap<S, IDictionary<TKey, TValue>>(this);
}
/// <summary>
/// Adds the valueMap step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, IDictionary<TKey, TValue>> ValueMap<TKey, TValue> (bool includeTokens, params string[] propertyKeys)
{
var args = new List<object>(1 + propertyKeys.Length) {includeTokens};
args.AddRange(propertyKeys);
Bytecode.AddStep("valueMap", args.ToArray());
return Wrap<S, IDictionary<TKey, TValue>>(this);
}
/// <summary>
/// Adds the values step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E2> Values<E2> (params string[] propertyKeys)
{
var args = new List<object>(0 + propertyKeys.Length) {};
args.AddRange(propertyKeys);
Bytecode.AddStep("values", args.ToArray());
return Wrap<S, E2>(this);
}
/// <summary>
/// Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Where (P predicate)
{
Bytecode.AddStep("where", predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Where (string startKey, P predicate)
{
Bytecode.AddStep("where", startKey, predicate);
return Wrap<S, E>(this);
}
/// <summary>
/// Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
/// </summary>
public GraphTraversal<S, E> Where (ITraversal whereTraversal)
{
Bytecode.AddStep("where", whereTraversal);
return Wrap<S, E>(this);
}
/// <summary>
/// Make a copy of a traversal that is reset for iteration.
/// </summary>
public GraphTraversal<S, E> Clone()
{
return new GraphTraversal<S, E>(TraversalStrategies, new Bytecode(Bytecode));
}
}
}