com.thinkaurelius.titan.core.schema

## Interface EdgeLabelMaker

- All Superinterfaces:
    RelationTypeMaker
  All Known Implementing Classes:
    StandardEdgeLabelMaker

      public interface EdgeLabelMaker
      extends RelationTypeMaker

  Used to define new `EdgeLabel`s. An edge label is defined by its name, `Multiplicity`, its directionality, and its signature - all of which can be specified in this builder.
  Author:
    Matthias Broecheler (me@matthiasb.com)

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `EdgeLabelMaker` | `directed()` Configures the label to be directed.
    `EdgeLabel` | `make()` Defines the `EdgeLabel` specified by this EdgeLabelMaker and returns the resulting label
    `EdgeLabelMaker` | `multiplicity(Multiplicity multiplicity)` Sets the multiplicity of this label.
    `EdgeLabelMaker` | `signature(RelationType... types)` Configures the signature of this relation type.
    `EdgeLabelMaker` | `unidirected()` Configures the label to be unidirected.

    - ### Methods inherited from interface com.thinkaurelius.titan.core.schema.RelationTypeMaker

      `getName`

- - ### Method Detail

    - #### multiplicity

          EdgeLabelMaker multiplicity(Multiplicity multiplicity)

      Sets the multiplicity of this label. The default multiplicity is `Multiplicity.MULTI`.
      Returns:
        this EdgeLabelMaker
      See Also:
        `Multiplicity`

    - #### directed

          EdgeLabelMaker directed()

      Configures the label to be directed.

      By default, the label is directed.
      Returns:
        this EdgeLabelMaker
      See Also:
        `EdgeLabel.isDirected()`

    - #### unidirected

          EdgeLabelMaker unidirected()

      Configures the label to be unidirected.

      By default, the type is directed.
      Returns:
        this EdgeLabelMaker
      See Also:
        `EdgeLabel.isUnidirected()`

    - #### signature

          EdgeLabelMaker signature(RelationType... types)

      Description copied from interface: `RelationTypeMaker`
      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.
      Specified by:
        `signature` in interface `RelationTypeMaker`
      Parameters:
        `types` - RelationTypes composing the signature for the configured relation type. The order is irrelevant.
      Returns:
        this RelationTypeMaker

    - #### make

          EdgeLabel make()

      Defines the `EdgeLabel` specified by this EdgeLabelMaker and returns the resulting label
      Specified by:
        `make` in interface `RelationTypeMaker`
      Returns:
        the created `EdgeLabel`

Copyright © 2012–2014. All rights reserved.