Package com.orchestranetworks.schema.relationships

# Interface ReverseRelationshipInterDataset

All Superinterfaces:
  `Relationship`, `ReverseRelationship`

public interface ReverseRelationshipInterDataset extends ReverseRelationship
Represents a reverse relationship in a resolved data model where the node that defines the foreign key constraint, the selection link or the association link is in another dataset.

Since:
  5.7.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterable<Adaptation>`
  `getOwnerDatasets(Adaptation aReferencedRecordOrDataset)`
  Returns the datasets that are an instance of the data model containing the node that defines the corresponding foreign key constraint, selection link or association link.
  `ReverseRelationshipResultsInterDataset`
  `getReferringRecords(Adaptation aReferencedRecord)`
  Returns the records in the repository that refers to the specified record through the corresponding foreign key constraint, selection link or association link.

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

  `isExplicit`

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

  `getExplicitRelationship, getReferringTableNode, getTableNode, isIntraDataset`

- ## Method Details

  - ### getOwnerDatasets

    Iterable<Adaptation> getOwnerDatasets(Adaptation aReferencedRecordOrDataset)
    Returns the datasets that are an instance of the data model containing the node that defines the corresponding foreign key constraint, selection link or association link.

    Permissions are applied if this reverse relationship has been retrieved using a specific `Session`. As a consequence, this method returns only the datasets that can be viewed by the end-user associated with the specified session.

    Throws:
      `IllegalArgumentException` - if the specified `Adaptation` is null.
      `IllegalArgumentException` - if the specified record is not in a dataset that is an instance of the data model containing the target table node of the associated relationship.
      `IllegalArgumentException` - if the specified record is not in the table that is targeted by the corresponding relationship.
      `IllegalArgumentException` - if the specified dataset is not an instance of the data model containing the target table node of the associated relationship.
    See Also:
      - `SchemaNode.getRelationships(Adaptation, com.orchestranetworks.service.Session)`
      - `SchemaNodeRelationships.getInterDatasetReverseRelationships()`

  - ### getReferringRecords

    ReverseRelationshipResultsInterDataset getReferringRecords(Adaptation aReferencedRecord) throws QueryPermissionException
    Returns the records in the repository that refers to the specified record through the corresponding foreign key constraint, selection link or association link.

    Permissions are applied if this reverse relationship has been retrieved using a specific `Session`. As a consequence:

    - the returned records will be filtered using the access rules on records if any;
    - a `QueryPermissionException` will be thrown on execution if at least one forbidden node is used in the request.
    Throws:
      `IllegalArgumentException` - if the specified `Adaptation` is null.
      `IllegalArgumentException` - if the specified `Adaptation` is not a record.
      `IllegalArgumentException` - if the specified record is not in a dataset that is an instance of the data model containing the target table node of the associated relationship.
      `IllegalArgumentException` - if the specified record is not in the table that is targeted by the corresponding relationship.
      `QueryPermissionException` - if a session is provided and at least one forbidden node is used in the request.
    See Also:
      - `SchemaNode.getRelationships(Adaptation, com.orchestranetworks.service.Session)`
      - `SchemaNodeRelationships.getInterDatasetReverseRelationships()`