package com.tinkerpop.blueprints;
/**
* A VertexQuery object defines a collection of filters and modifiers that are used to intelligently select edges from a vertex.
*
* @author Matthias Brocheler (http://matthiasb.com)
* @author Marko A. Rodriguez (http://markorodriguez.com)
* @author Luca Garulli (http://www.orientechnologies.com)
* @author Daniel Kuppitz (daniel.kuppitz@shoproach.com)
*/
public interface VertexQuery extends Query {
/**
* The direction of the edges to retrieve.
*
* @param direction whether to retrieve the incoming, outgoing, or both directions
* @return the modified query object
*/
public VertexQuery direction(Direction direction);
/**
* Filter out the edge if its label is not in set of provided labels.
*
* @param labels the labels to check against
* @return the modified query object
*/
public VertexQuery labels(String... labels);
/**
* Execute the query and return the number of edges that are unfiltered.
*
* @return the number of unfiltered edges
*/
public long count();
/**
* Return the raw ids of the vertices on the other end of the edges.
*
* @return the raw ids of the vertices on the other end of the edges
*/
public Object vertexIds();
@Override
public VertexQuery has(String key);
@Override
public VertexQuery hasNot(String key);
@Override
public VertexQuery has(String key, Object value);
@Override
public VertexQuery hasNot(String key, Object value);
@Override
public VertexQuery has(String key, Predicate predicate, Object value);
@Override
@Deprecated
public <T extends Comparable<T>> VertexQuery has(String key, T value, Compare compare);
@Override
public <T extends Comparable<?>> VertexQuery interval(String key, T startValue, T endValue);
@Override
public VertexQuery limit(int limit);
}