com.thinkaurelius.titan.core

## Interface BaseVertexQuery<Q extends BaseVertexQuery<Q>>

- All Known Subinterfaces:
    OLAPQueryBuilder<S,M,Q>, TitanMultiVertexQuery<Q>, TitanVertexQuery<Q>
  All Known Implementing Classes:
    BaseVertexCentricQueryBuilder, BasicVertexCentricQueryBuilder, MultiVertexCentricQueryBuilder, VertexCentricQueryBuilder

      public interface BaseVertexQuery<Q extends BaseVertexQuery<Q>>

  BaseVertexQuery constructs and executes a query over incident edges or properties from the perspective of a vertex.

  A VertexQuery extends Blueprint's `Query` by some Titan specific convenience methods for querying for incident edges or properties. Using VertexQuery proceeds in two steps: 1) Define the query by specifying what to retrieve and 2) execute the query for the elements to retrieve.

  This is the base interface for the specific implementations of a VertexQuery. Calling `TitanVertex.query()` returns a `TitanVertexQuery` for querying a single vertex. Calling `TitanTransaction.multiQuery(java.util.Collection)` returns a `TitanMultiVertexQuery` to execute the same query against multiple vertices at the same time which is typically faster.
  Author:
    Matthias Bröcheler (http://www.matthiasb.com)
  See Also:
    `TitanVertexQuery`, `TitanMultiVertexQuery`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Q` | `adjacent(TitanVertex vertex)` Restricts this query to only those edges that point to the given vertex.
    `QueryDescription` | `describeForEdges()` Returns a description of this query for edges as a `QueryDescription` object.
    `QueryDescription` | `describeForProperties()` Returns a description of this query for properties as a `QueryDescription` object.
    `Q` | `direction(com.tinkerpop.blueprints.Direction d)` Query only for relations in the given direction.
    `Q` | `has(EdgeLabel label, TitanVertex vertex)` Query only for edges or properties that have a unidirected edge pointing to the given vertex It is expected that this label is unidirected (`EdgeLabel.isUnidirected()` and the query is restricted to edges or properties having an incident unidirectional edge pointing to the given vertex.
    `Q` | `has(PropertyKey key, Object value)` Query only for edges or properties that have an incident property matching the given value.
    `Q` | `has(PropertyKey key, com.tinkerpop.blueprints.Predicate predicate, Object value)` Query only for those edges or properties which have a property for the given key that satisfies the specified predicate relationship to the provided value.
    `Q` | `has(String key)` Query for edges or properties that have defined property with the given key
    `Q` | `has(String type, Object value)` Query only for edges or properties that have an incident property or unidirected edge matching the given value.
    `Q` | `has(String key, com.tinkerpop.blueprints.Predicate predicate, Object value)` Query only for those edges or properties which have a property for the given key that satisfies the specified predicate relationship to the provided value.
    `Q` | `hasNot(String key)` Query for edges or properties that DO NOT have a defined property with the given key
    `Q` | `hasNot(String key, Object value)` Identical to `has(String, Object)` but negates the condition, i.e.
    `<T extends Comparable<?>> Q` | `interval(PropertyKey key, T start, T end)` Query for those edges or properties that have a property for the given key whose values lies in the interval by [start,end).
    `<T extends Comparable<?>> Q` | `interval(String key, T start, T end)` Query for those edges or properties that have a property for the given key whose values lies in the interval by [start,end).
    `Q` | `keys(String... keys)` Query for only those properties having one of the given property keys.
    `Q` | `labels(String... labels)` Query for only those edges matching one of the given edge labels.
    `Q` | `limit(int limit)` Sets the retrieval limit for this query.
    `Q` | `orderBy(PropertyKey key, Order order)` Orders the relation results of this query according to their property for the given key in the given order (increasing/decreasing).
    `Q` | `orderBy(String key, Order order)` Orders the relation results of this query according to their property for the given key in the given order (increasing/decreasing).
    `Q` | `types(RelationType... type)` Query for only those relations matching one of the given relation types.

- - ### Method Detail

    - #### adjacent

          Q adjacent(TitanVertex vertex)

      Restricts this query to only those edges that point to the given vertex.
      Parameters:
        `vertex` -
      Returns:
        this query builder

    - #### types

          Q types(RelationType... type)

      Query for only those relations matching one of the given relation types. By default, a query includes all relations in the result set.
      Parameters:
        `type` - relation types to query for
      Returns:
        this query

    - #### labels

          Q labels(String... labels)

      Query for only those edges matching one of the given edge labels. By default, an edge query includes all edges in the result set.
      Parameters:
        `labels` - edge labels to query for
      Returns:
        this query

    - #### keys

          Q keys(String... keys)

      Query for only those properties having one of the given property keys. By default, a query includes all properties in the result set.
      Parameters:
        `keys` - property keys to query for
      Returns:
        this query

    - #### direction

          Q direction(com.tinkerpop.blueprints.Direction d)

      Query only for relations in the given direction. By default, both directions are queried.
      Parameters:
        `d` - Direction to query for
      Returns:
        this query

    - #### has

          Q has(PropertyKey key,
              Object value)

      Query only for edges or properties that have an incident property matching the given value.

      Parameters:
        `key` - key
        `value` - Value for the property of the given key to match
      Returns:
        this query

    - #### has

          Q has(EdgeLabel label,
              TitanVertex vertex)

      Query only for edges or properties that have a unidirected edge pointing to the given vertex

      It is expected that this label is unidirected (`EdgeLabel.isUnidirected()` and the query is restricted to edges or properties having an incident unidirectional edge pointing to the given vertex.
      Parameters:
        `label` - Label
        `vertex` - Vertex to point unidirectional edge to
      Returns:
        this query

    - #### has

          Q has(String key)

      Query for edges or properties that have defined property with the given key
      Parameters:
        `key` -
      Returns:
        this query

    - #### hasNot

          Q hasNot(String key)

      Query for edges or properties that DO NOT have a defined property with the given key
      Parameters:
        `key` -
      Returns:
        this query

    - #### has

          Q has(String type,
              Object value)

      Query only for edges or properties that have an incident property or unidirected edge matching the given value.

      If type is a property key, then the query is restricted to edges or properties having an incident property matching this key-value pair. If type is an edge label, then it is expected that this label is unidirected (`EdgeLabel.isUnidirected()` and the query is restricted to edges or properties having an incident unidirectional edge pointing to the value which is expected to be a `TitanVertex`.
      Parameters:
        `type` - TitanType name
        `value` - Value for the property of the given key to match, or vertex to point unidirectional edge to
      Returns:
        this query

    - #### hasNot

          Q hasNot(String key,
                 Object value)

      Identical to `has(String, Object)` but negates the condition, i.e. matches those edges or properties that DO NOT satisfy this property condition.
      Parameters:
        `key` -
        `value` -
      Returns:

    - #### has

          Q has(PropertyKey key,
              com.tinkerpop.blueprints.Predicate predicate,
              Object value)

      Query only for those edges or properties which have a property for the given key that satisfies the specified predicate relationship to the provided value.
      Parameters:
        `key` - property key
        `predicate` - boolean relationship to satisfy with the given value
        `value` - value
      Returns:

    - #### has

          Q has(String key,
              com.tinkerpop.blueprints.Predicate predicate,
              Object value)

      Query only for those edges or properties which have a property for the given key that satisfies the specified predicate relationship to the provided value.
      Parameters:
        `key` - property key
        `predicate` - boolean relationship to satisfy with the given value
        `value` - value
      Returns:

    - #### interval

          <T extends Comparable<?>> Q interval(String key,
                                             T start,
                                             T end)

      Query for those edges or properties that have a property for the given key whose values lies in the interval by [start,end).
      Parameters:
        `key` - property key
        `start` - value defining the start of the interval (inclusive)
        `end` - value defining the end of the interval (exclusive)
      Returns:
        this query

    - #### interval

          <T extends Comparable<?>> Q interval(PropertyKey key,
                                             T start,
                                             T end)

      Query for those edges or properties that have a property for the given key whose values lies in the interval by [start,end).
      Parameters:
        `key` - property key
        `start` - value defining the start of the interval (inclusive)
        `end` - value defining the end of the interval (exclusive)
      Returns:
        this query

    - #### limit

          Q limit(int limit)

      Sets the retrieval limit for this query.

      When setting a limit, executing this query will only retrieve the specified number of relations. Note, that this also applies to counts.
      Parameters:
        `limit` - maximum number of relations to retrieve for this query
      Returns:
        this query

    - #### orderBy

          Q orderBy(String key,
                  Order order)

      Orders the relation results of this query according to their property for the given key in the given order (increasing/decreasing). Note, that the ordering always applies to the incident relations (edges/properties) and NOT to the adjacent vertices even if only vertices are being returned.
      Parameters:
        `key` - The key of the properties on which to order
        `order` - the ordering direction
      Returns:

    - #### orderBy

          Q orderBy(PropertyKey key,
                  Order order)

      Orders the relation results of this query according to their property for the given key in the given order (increasing/decreasing). Note, that the ordering always applies to the incident relations (edges/properties) and NOT to the adjacent vertices even if only vertices are being returned.
      Parameters:
        `key` - The key of the properties on which to order
        `order` - the ordering direction
      Returns:

    - #### describeForEdges

          QueryDescription describeForEdges()

      Returns a description of this query for edges as a `QueryDescription` object. This can be used to inspect the query plan for this query. Note, that calling this method does not actually execute the query but only optimizes it and constructs a query plan.
      Returns:
        A description of this query for edges

    - #### describeForProperties

          QueryDescription describeForProperties()

      Returns a description of this query for properties as a `QueryDescription` object. This can be used to inspect the query plan for this query. Note, that calling this method does not actually execute the query but only optimizes it and constructs a query plan.
      Returns:
        A description of this query for properties

Copyright © 2012–2014. All rights reserved.