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

com.datastax.driver.dse.graph.Path Maven / Gradle / Ivy

/*
 *      Copyright (C) 2012-2016 DataStax Inc.
 *
 *      This software can be used solely with DataStax Enterprise. Please consult the license at
 *      http://www.datastax.com/terms/datastax-dse-driver-license-terms
 */
package com.datastax.driver.dse.graph;

import java.util.List;
import java.util.Set;

/**
 * A walk through a graph as defined by a traversal.
 * 

* Clients typically obtain instances of this class by calling {@link GraphNode#asPath()}, for example: *

 *     GraphNode n = dseSession.executeGraph("g.V().hasLabel('some_vertex').outE().inV().path()").one();
 *     Path path = n.asPath();
 * 
*/ public interface Path extends Iterable { /** * Returns the sets of labels of the steps traversed * by this path, or an empty list, if this path is empty. *

* The returned list is immutable. * * @return the sets of labels of the steps traversed * by this path. */ List> getLabels(); /** * Returns the objects traversed by this path, * or an empty list, if this path is empty. *

* The returned list is immutable. * * @return the objects traversed by this path. */ List getObjects(); /** * Returns the size of this path, that is, the number of steps * this path traversed. * * @return the size of this path. */ int size(); /** * Returns the object associated with the given step of this path. *

* The step index is zero-based, i.e. the first step has index {@code 0}. *

* If the index is out of bounds, this method returns {@code null}; * no exception will be thrown. * * @param index the zero-based step index to find the object for. * @return the object associated with the given step index. */ GraphNode getObject(int index); /** * Returns the first object with the given label in this path. *

* If the label is associated with more then one step, then this * method returns the object at the first step with that label. *

* If the label does not exist in this path, * this method returns {@code null}. * * @param label the label to find an object for. * @return the first object with the given label. */ GraphNode getObject(String label); /** * Returns the objects with the given label in this path. *

* If the label is unique, the returned list will contain only one element. *

* If the label is associated with more then one step, then the list * will contain as many elements as the number of times the label * appears in this path's steps, in order. *

* If the label does not exist in this path, an empty list is returned. *

* The returned list is immutable. * * @param label the label to find objects for. * @return the objects with the given label. */ List getObjects(String label); /** * Returns whether this path has at least one step * with the given label. * * @param label the label to search. * @return {@code true} if this path has at least one step * with the given label, {@code false} otherwise. */ boolean hasLabel(String label); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy