All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.atlas.groovy.TraversalStepType Maven / Gradle / Ivy

There is a newer version: 2.3.0
Show newest version
/**
 * 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.
 */
package org.apache.atlas.groovy;

/**
 * Types of graph traversal steps.  These are based on the traversal steps
 * described in the TinkerPop documentation at
 * http://tinkerpop.apache.org/docs/current/reference/#graph-traversal-steps.
 */
public enum TraversalStepType {
    /**
     * Indicates that the expression is not part of a graph traversal.
     */
    NONE,

    /**
     * Indicates that the expression is a
     * {@link org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource}.
     * This is not technically a graph traversal step.  This is the expression the traversal is started from ("g").
     */
    SOURCE,

    /**
     * A Start step adds vertices or edges to the traversal.  These include "V", "E", and "inject".
     */
    START,

    /**
     * An End step causes the traversal to be executed.  This includes steps such as "toList", "toSet", and "fill"
     */
    END,

    /**
     * Map steps map the current traverser value to exactly one new value.  These
     * steps include "map" and "select".  Here, we make a further distinction
     * based on the type of expression that things are being mapped to.
     * 

* MAP_TO_ELEMENT indicates that the traverser value is being mapped * to either a Vertex or an Edge. */ MAP_TO_ELEMENT, /** * Map steps map the current traverser value to exactly one new value. These * steps include "map" and "select". Here, we make a further distinction * based on the type of expression that things are being mapped to. *

* MAP_TO_VALUE indicates that the traverser value is being mapped * to something that is not a Vertex or an Edge. */ MAP_TO_VALUE, /** * FlatMap steps map the current value of the traverser to an iterator of objects that * are streamed to the next step. These are steps like "in, "out", "inE", and * so forth which map the current value of the traverser from some vertex or edge * to some other set of vertices or edges that is derived from the original set based * on the structure of the graph. This also includes "values", which maps a vertex or * edge to the set of values for a given property. Here, we make a further distinction * based on the type of expression that things are being mapped to. *

* FLAT_MAP_TO_ELEMENTS indicates that the traverser value is being mapped * to something that is a Vertex or an Edge (in, out, outE fall in this category). */ FLAT_MAP_TO_ELEMENTS, /** * FlatMap steps map the current value of the traverser to an iterator of objects that * are streamed to the next step. These are steps like "in, "out", "inE", and * so forth which map the current value of the traverser from some vertex or edge * to some other set of vertices or edges that is derived from the original set based * on the structure of the graph. This also includes "values", which maps a vertex or * edge to the set of values for a given property. Here, we make a further distinction * based on the type of expression that things are being mapped to. *

* FLAT_MAP_TO_VALUES indicates that the traverser value is being mapped * to something that not is a Vertex or an Edge (values falls in this category). */ FLAT_MAP_TO_VALUES, /** * Filter steps filter things out of the traversal. These include "has", "where", * "and", "or", and "filter". */ FILTER, /** * Side effect steps do not affect the traverser value, but do something * that affects the state of the traverser. These include things such as * "enablePath()", "as", and "by". */ SIDE_EFFECT, /** * Branch steps split the traverser, for example, "repeat", "branch", "choose", and "union". */ BRANCH, /** * Barrier steps in Gremlin force everything before them to be executed * before moving on to the steps after them. We also use this to indicate * steps that need to do some aggregation or processing that requires the * full query result to be present in order for the step to work correctly. * This includes "range", "group", and "order", and "cap" */ BARRIER, }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy