Interface Relationship

All Superinterfaces:
ExposesPatternLengthAccessors<Relationship>, ExposesProperties<Relationship>, ExposesRelationships<RelationshipChain>, IdentifiableElement, Named, PatternElement, PropertyContainer, RelationshipPattern, Visitable
All Known Implementing Classes:
RelationshipBase

@API(status=STABLE, since="1.0") public interface Relationship extends RelationshipPattern, PropertyContainer, ExposesProperties<Relationship>, ExposesPatternLengthAccessors<Relationship>
Since:
1.0
Author:
Michael J. Simons, Philipp Tölle
  • Method Details

    • getLeft

      Node getLeft()
      Returns:
      the left-hand side of this relationship
    • getDetails

      @NotNull @Contract(pure=true) @NotNull Relationship.Details getDetails()
      The details containing the types, properties and cardinality.
      Returns:
      A wrapper around the details of this relationship.
    • getRight

      @NotNull @Contract(pure=true) @NotNull Node getRight()
      Returns:
      the right-hand side of this relationship
    • getQuantifier

      @Nullable @Contract(pure=true) QuantifiedPathPattern.Quantifier getQuantifier()
      Returns the quantifier of this relationship if any.
      Returns:
      the quantifier of this relationship if any
    • named

      @NotNull @Contract(pure=true) @NotNull Relationship named(String newSymbolicName)
      Creates a copy of this relationship with a new symbolic name.
      Specified by:
      named in interface RelationshipPattern
      Parameters:
      newSymbolicName - the new symbolic name.
      Returns:
      The new relationship.
    • named

      @NotNull @Contract(pure=true) @NotNull Relationship named(SymbolicName newSymbolicName)
      Creates a copy of this relationship with a new symbolic name.
      Specified by:
      named in interface RelationshipPattern
      Parameters:
      newSymbolicName - the new symbolic name.
      Returns:
      The new relationship.
    • inverse

      @NotNull @Contract(pure=true) @NotNull Relationship inverse()
      Creates a new relationship, inverting the direction but keeping the semantics intact ((a) --> (b) becomes (b) <-- (a)). A symbolic name will be removed from this relationship if any, as the it wouldn't be the same pattern to match against.
      Returns:
      the new relationship