# Interface PathComponent<A extends Attribute, R extends Relationship>

public interface PathComponent<A extends Attribute, R extends Relationship>
A component in a path chain.

Since:
  3.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterable<PathComponent<A,R>>`
  `getAliasedPath()`
  Returns an aliased path or null if this component is not an alias.
  `A`
  `getAttribute()`
  `JoinType`
  `getJoinType()`
  Returns a joint type of this path component in the expression.
  `String`
  `getName()`
  `R`
  `getRelationship()`
  `boolean`
  `isAlias()`
  Returns true if this component is an alias for a different path.
  `boolean`
  `isLast()`

- ## Method Details

  - ### getAttribute

    A getAttribute()

  - ### getRelationship

    R getRelationship()

  - ### getName

    String getName()

  - ### getJoinType

    JoinType getJoinType()
    Returns a joint type of this path component in the expression. Attributes always return undefined type, while relationships may be outer or inner joins.

  - ### isLast

    boolean isLast()

  - ### isAlias

    boolean isAlias()
    Returns true if this component is an alias for a different path. Only the first path component can be an alias. Aliased path can be obtained by calling `getAliasedPath()`.

  - ### getAliasedPath

    Iterable<PathComponent<A,R>> getAliasedPath()
    Returns an aliased path or null if this component is not an alias.