Interface SchemaNodeRelationships


public interface SchemaNodeRelationships
Contains all the relationships held by a node in a resolved data model.
Since:
5.7.1
See Also:
  • Method Details

    • getNode

      SchemaNode getNode()
      Returns the node holding these relationships.
    • getExplicitRelationships

      Iterable<ExplicitRelationship> getExplicitRelationships()
      Returns the explicit relationships defined by the associated node.

      This method is equivalent to:

      SchemaNodeRelationships.getExplicitRelationships(false);
      See Also:
    • getExplicitRelationships

      Iterable<ExplicitRelationship> getExplicitRelationships(boolean includeMetadata)
      Returns the explicit relationships defined by the associated node. An explicit relationship is either a foreign key constraint, a selection link or an association link. This method returns all the explicit relationships defined under this node if it is a group or a table node.
      Permissions resolution

      Explicit relationships and their results are filtered according to the permissions defined for an end-user if this object has been retrieved using a specific session.

      An explicit relationship is not visible by an end-user if one of the following conditions is verified:

      • The dataset containing the field that defines the explicit relationship is not visible;
      • The field that defines the explicit relationship is not visible;
      • The target dataspace of the explicit relationship is not visible;
      • The target dataset of the explicit relationship is not visible;
      • The target table of the explicit relationship is not visible.

      Important:

      • Properties osd:defaultView=Hidden and osd:category=hidden defined on the nodes involved in the associated relationship are ignored during the resolution of the permissions. As a consequence, these properties must be handled, if needed, explicitly by the callers of this method.
      • In the context of an association by link table, the permissions defined on the link table are ignored. So an end-user can view the explicit relationship corresponding to an association even if not allowed to view the link table involved in the relationship. However, the permissions defined on the records of the link table are applied when computing the result of the explicit relationship corresponding to an association by link table. That is, an end-user will not be allowed to view the records in the target table of the association if he is not allowed to view the related records in the link table that are used to link the records of the source and target tables of the association.
      Since:
      6.1
      See Also:
    • getReverseRelationships

      Iterable<ReverseRelationship> getReverseRelationships()
      Returns the reverse relationships held by the associated node. This method returns all the reverse relationships held under this node if it is a group.
      Permissions resolution

      Reverse relationships and their results are filtered according to the permissions defined for an end-user if this object has been retrieved using a specific session.

      A reverse relationship is not visible by an end-user if one of the following condition is verified:

      • The target dataspace of the corresponding explicit relationship is not visible;
      • The target dataset of the corresponding explicit relationship is not visible;
      • The target table of the corresponding explicit relationship is not visible.
      • None of the datasets using the datamodel that contains the corresponding explicit relationship is visible.
      • The field that defines the corresponding explicit relationship is not visible in any of the datasets using the datamodel containing this field.

      Important:

      • Properties osd:defaultView=Hidden and osd:category=hidden defined on the nodes involved in the associated relationship are ignored during the resolution of the permissions. As a consequence, these properties must be handled, if needed, explicitly by the callers of this method.
      • In the context of an association by link table, the permissions defined on the link table are ignored. So an end-user can view the reverse relationship corresponding to an association even if it is not allowed to view the link table involved in the relationship. However, the permissions defined on the records of the link table are applied when computing the referring records from a reverse relationship of an association by link table. That is, an end-user won't be allowed to view the records in the target table of the association if he not allowed to view the related records in the link tables that are used to link the records of the source and target tables of the association.

      Throws:
      IllegalStateException - if the associated node is a field.
      See Also:
    • getIntraDatasetReverseRelationships

      Iterable<ReverseRelationshipIntraDataset> getIntraDatasetReverseRelationships()
      Returns the reverse relationships held by the associated node corresponding to a foreign key constraint, a selection link or an association link that targets a table in the same dataset. This method returns all the intra-dataset reverse relationships held under this node if it is a group.
      Permissions resolution

      Reverse relationships and their results are filtered according to the rules defined by the method getReverseRelationships().

      Throws:
      IllegalStateException - if the associated node is a field.
      See Also:
    • getInterDatasetReverseRelationships

      Iterable<ReverseRelationshipInterDataset> getInterDatasetReverseRelationships()
      Returns the reverse relationships held by the associated node corresponding to a foreign key constraint, a selection link or an association link that targets a table in another dataset. This method returns all the inter-dataset reverse relationships held under this node if it is a group.
      Permissions resolution

      Reverse relationships and their results are filtered according to the rules defined by the method getReverseRelationships().

      Throws:
      IllegalStateException - if the associated node is a field.
      See Also: