# Interface ArcProperty

All Superinterfaces:
  `PropertyDescriptor`

All Known Subinterfaces:
  `ToManyMapProperty, ToManyProperty, ToOneProperty`

All Known Implementing Classes:
  `BaseArcProperty, BaseToManyProperty, BaseToOneProperty`

public interface ArcProperty extends PropertyDescriptor
A Property that represents an "arc" connecting source node to the target node in the graph.

Since:
  1.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ArcProperty`
  `getComplimentaryReverseArc()`
  Returns a complementary reverse ArcProperty or null if no reverse arc exists.
  `String`
  `getComplimentaryReverseDbRelationshipPath()`
  Returns a path over reverse DbRelationships for this arc's ObjRelationship.
  `ObjRelationship`
  `getRelationship()`
  Returns a relationship associated with this arc.
  `ClassDescriptor`
  `getTargetDescriptor()`
  Returns a ClassDescriptor for the type of graph nodes pointed to by this arc property.
  `void`
  `invalidate(Object object)`
  Turns a property of an object into a fault.
  `boolean`
  `isFault(Object source)`
  Returns whether a target node connected to a given object is an unresolved fault.

  ### Methods inherited from interface PropertyDescriptor

  `equals, getName, injectValueHolder, readProperty, readPropertyDirectly, visit, writeProperty, writePropertyDirectly`

- ## Method Details

  - ### getRelationship

    ObjRelationship getRelationship()
    Returns a relationship associated with this arc.
    Since:
      3.0

  - ### getComplimentaryReverseDbRelationshipPath

    String getComplimentaryReverseDbRelationshipPath()
    Returns a path over reverse DbRelationships for this arc's ObjRelationship.
    Since:
      4.0

  - ### getComplimentaryReverseArc

    ArcProperty getComplimentaryReverseArc()
    Returns a complementary reverse ArcProperty or null if no reverse arc exists.

  - ### getTargetDescriptor

    ClassDescriptor getTargetDescriptor()
    Returns a ClassDescriptor for the type of graph nodes pointed to by this arc property. Note that considering that a target object may be a subclass of the class handled by the descriptor, users of this method may need to call `ClassDescriptor.getSubclassDescriptor(String)` before using the descriptor to access objects.

  - ### isFault

    boolean isFault(Object source)
    Returns whether a target node connected to a given object is an unresolved fault.
    Parameters:
      `source` - an object that is a source object of the relationship.

  - ### invalidate

    void invalidate(Object object)
    Turns a property of an object into a fault.
    Since:
      3.0