Package com.orchestranetworks.schema.info

# Interface AssociationLink

All Superinterfaces:
  `SchemaNodeExplicitRelationship`

All Known Subinterfaces:
  `AssociationLinkByLinkTable`, `AssociationLinkByTableRefInverse`, `AssociationLinkByXPathLink`

public interface AssociationLink extends SchemaNodeExplicitRelationship
This interface contains the information for an association link (`osd:association` property).

Since:
  5.5.0
See Also:
  - Associations
  - `SchemaNode.getAssociationLink()`
  - `ExplicitRelationship`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RequestResult`
  `getAssociationResult(Adaptation aRecord)`
  Returns the result of the association link, in the context of the specified record.
  `String`
  `getConstraintPredicate()`
  Returns the XPath expression (property `constraint/xpath`) defined to restrict associated records.
  `AdaptationReference`
  `getDataSetReference()`
  Returns the reference of the dataset of this association, if an external dataset is defined in the data model (property `dataSet`); otherwise returns `null`.
  `HomeKey`
  `getDataSpaceReference()`
  Returns the reference of the dataspace of this association, if an external dataset in another dataspace is defined by the data model (property `dataSpace`); otherwise returns `null`.
  `int`
  `getMaxOccurs()`
  Returns the value of `maxOccurs/value`.
  `int`
  `getMinOccurs()`
  Returns the value of `minOccurs/value`.
  `Class<?>`
  `getRecordFormFactoryClass()`
  Returns the specific `UserServiceAssociationRecordFormFactory` `class` defined on this association node (property `recordForm osd:class`) or `null` if no `UserServiceAssociationRecordFormFactory` `class` has been defined.
  `AdaptationTable`
  `getTargetTable(Adaptation aRecordOrDataSet)`
  Returns the target table of this association.
  `String`
  `getXPathFilter()`
  Returns the XPath expression (property `xpathFilter`) defined to filter the result of this association.
  `boolean`
  `isConsistent(Adaptation aRecordOrDataSet)`
  Returns `true` if this association is consistent with the specified record or dataset.
  `boolean`
  `isLinkTable()`
  Returns `true` if this association is over a link table.
  `boolean`
  `isTableRefInverse()`
  Returns `true` if this association is the inverse of a foreign key.
  `boolean`
  `isXPathLink()`
  Returns `true` if this association is over an XPath predicate.

  ### Methods inherited from interface com.orchestranetworks.schema.relationships.SchemaNodeExplicitRelationship

  `getBreadcrumbProperties, getContainerHome, getContainerReference, getExplicitRelationship, getExplicitRelationship, getOwnerNode, getResult, getTableNode, getTableNode, isAssociationLink, isDynamic, isSelectionLink, isTableRefLink`

- ## Method Details

  - ### getAssociationResult

    RequestResult getAssociationResult(Adaptation aRecord)
    Returns the result of the association link, in the context of the specified record.
    See Also:
      - `getTargetTable(Adaptation)`
      - `ExplicitRelationship.getResult(Adaptation)`

  - ### getTargetTable

    AdaptationTable getTargetTable(Adaptation aRecordOrDataSet)
    Returns the target table of this association.

  - ### getDataSetReference

    AdaptationReference getDataSetReference()
    Returns the reference of the dataset of this association, if an external dataset is defined in the data model (property `dataSet`); otherwise returns `null`.

  - ### getDataSpaceReference

    HomeKey getDataSpaceReference()
    Returns the reference of the dataspace of this association, if an external dataset in another dataspace is defined by the data model (property `dataSpace`); otherwise returns `null`.

  - ### getMinOccurs

    int getMinOccurs()
    Returns the value of `minOccurs/value`.
    Since:
      5.5.1

  - ### getMaxOccurs

    int getMaxOccurs()
    Returns the value of `maxOccurs/value`. Returns -1 if this property is not defined.
    Since:
      5.5.1

  - ### getXPathFilter

    String getXPathFilter()
    Returns the XPath expression (property `xpathFilter`) defined to filter the result of this association.
    Since:
      5.5.1

  - ### getConstraintPredicate

    String getConstraintPredicate()
    Returns the XPath expression (property `constraint/xpath`) defined to restrict associated records.
    Since:
      5.5.1

  - ### isLinkTable

    boolean isLinkTable()
    Returns `true` if this association is over a link table.
    Since:
      5.5.1
    See Also:
      - `AssociationLinkByLinkTable`

  - ### isTableRefInverse

    boolean isTableRefInverse()
    Returns `true` if this association is the inverse of a foreign key.
    Since:
      5.5.1
    See Also:
      - `AssociationLinkByTableRefInverse`

  - ### isXPathLink

    boolean isXPathLink()
    Returns `true` if this association is over an XPath predicate.
    Since:
      5.8.1
    See Also:
      - `AssociationLinkByXPathLink`

  - ### getRecordFormFactoryClass

    Class<?> getRecordFormFactoryClass()
    Returns the specific `UserServiceAssociationRecordFormFactory` `class` defined on this association node (property `recordForm osd:class`) or `null` if no `UserServiceAssociationRecordFormFactory` `class` has been defined.
    Since:
      5.9.0

  - ### isConsistent

    boolean isConsistent(Adaptation aRecordOrDataSet)
    Returns `true` if this association is consistent with the specified record or dataset.

    An association element is inconsistent with a given record or dataset when its definition is based on a reverse foreign key or a link table and the foreign key to the source table does not target the specified dataset.

    Since:
      6.0.8