com.thinkaurelius.titan.core.schema

## Interface RelationTypeMaker

- All Known Subinterfaces:
    EdgeLabelMaker, PropertyKeyMaker
  All Known Implementing Classes:
    StandardEdgeLabelMaker, StandardPropertyKeyMaker, StandardRelationTypeMaker

      public interface RelationTypeMaker

  RelationTypeMaker is a factory for `RelationType`s. RelationType can be configured to provide data verification, better storage efficiency, and higher performance. The RelationType defines the schema for all `TitanRelation`s of that type.

  There are two kinds of RelationTypes: `EdgeLabel` and `PropertyKey` which are defined via their builders `EdgeLabelMaker` and `PropertyKeyMaker` respectively. This interface just defines builder methods common to both of them.

  Author:
    Matthias Bröcheler (http://www.matthiasb.com)
  See Also:
    `RelationType`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Returns the name of this configured relation type.
    `RelationType` | `make()` Builds the configured relation type
    `RelationTypeMaker` | `signature(RelationType... types)` Configures the signature of this relation type.

- - ### Method Detail

    - #### getName

          String getName()

      Returns the name of this configured relation type.
      Returns:

    - #### signature

          RelationTypeMaker signature(RelationType... types)

      Configures the signature of this relation type.

      Specifying the signature of a type tells the graph database to expect that relations of this type always have or are likely to have an incident property or unidirected edge of the type included in the signature. This allows the graph database to store such relations more compactly and retrieve them more quickly.
      For instance, if all edges with label friend have a property with key createdOn, then specifying (createdOn) as the signature for label friend allows friend edges to be stored more efficiently.
      `RelationType`s used in the signature must be either property out-unique keys or out-unique unidirected edge labels.
      The signature is empty by default.
      Parameters:
        `types` - RelationTypes composing the signature for the configured relation type. The order is irrelevant.
      Returns:
        this RelationTypeMaker

    - #### make

          RelationType make()

      Builds the configured relation type
      Returns:
        the configured `RelationType`

Copyright © 2012–2014. All rights reserved.