Package com.orchestranetworks.schema.businessObjects

# Interface DataModelBusinessObjectModels

public interface DataModelBusinessObjectModels
Holds the `business object models` defined in a data model.

Since:
  6.1.1
See Also:
  - `BusinessObjectModel`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<BusinessObjectModel>`
  `getBusinessObjectModels()`
  Returns all the business object models defined in the data model.
  `List<BusinessObjectModel>`
  `getBusinessObjectModels(Adaptation aDataset, Session aSession)`
  Returns all the business object models defined in the data model.
  `BusinessObjectModel`
  `getBusinessObjetModelForTable(SchemaNode aTableNode)`
  Returns the business object model associated to the specified table.
  `BusinessObjectModel`
  `getBusinessObjetModelForTable(SchemaNode aTableNode, Adaptation aDataset, Session aSession)`
  Returns the business object model associated to the specified table.
  `BusinessObjectModel`
  `lookupBusinessObjectModel(String aName)`
  Return the business object model associated to the specified name.
  `BusinessObjectModel`
  `lookupBusinessObjectModel(String aName, Adaptation aDataset, Session aSession)`
  Return the business object model associated to the specified name.

- ## Method Details

  - ### getBusinessObjetModelForTable

    BusinessObjectModel getBusinessObjetModelForTable(SchemaNode aTableNode, Adaptation aDataset, Session aSession)
    Returns the business object model associated to the specified table.

    Permissions are resolved using this method. As a result, this method returns `null` if the related business object's main table cannot be viewed by the end-user associated with the given session, in the context of the specified dataset. The business object model's relationships are also filtered. This prevents the end-user associated with the given session, in the context of the specified dataset, from viewing related data when they do not have permission to view the related datamodel. See `SchemaNodeRelationships.getExplicitRelationships()` for more information about the resolution of the permissions.

    Throws:
      `IllegalArgumentException` - if the specified `SchemaNode` is `null`.
      `IllegalArgumentException` - if the specified `SchemaNode` is not a table node.
      `IllegalArgumentException` - if the specified `Adaptation` is `null`.
      `IllegalStateException` - if the specified `Adaptation` is not a dataset.
      `IllegalStateException` - if the specified `Adaptation` has a severe error.
      `IllegalStateException` - if the specified dataset is not an instance of the data model containing this node.
      `IllegalArgumentException` - if the specified `Session` is `null`.

  - ### getBusinessObjetModelForTable

    BusinessObjectModel getBusinessObjetModelForTable(SchemaNode aTableNode)
    Returns the business object model associated to the specified table.

    The method `getBusinessObjetModelForTable(SchemaNode, Adaptation, Session)` can be used if the business object model associated to this table must be filtered according to the permissions defined for a specific end-user, in the context of a dataset which is an instance of the data model containing this node.

    See Also:
      - `getBusinessObjetModelForTable(SchemaNode, Adaptation, Session)`

  - ### getBusinessObjectModels

    List<BusinessObjectModel> getBusinessObjectModels(Adaptation aDataset, Session aSession)
    Returns all the business object models defined in the data model.

    Permissions are resolved using this method. As a result, a business object model is not included if its main table cannot be viewed by the end-user associated with the given session, in the context of the specified dataset. The business object model's relationships are also filtered. This prevents the end-user associated with the given session, in the context of the specified dataset, from viewing related data when they do not have permission to view the related datamodel. See `SchemaNodeRelationships.getExplicitRelationships()` for more information about the resolution of the permissions.

    Throws:
      `IllegalArgumentException` - if the specified `Adaptation` is `null`.
      `IllegalStateException` - if the specified `Adaptation` is not a dataset.
      `IllegalStateException` - if the specified `Adaptation` has a severe error.
      `IllegalStateException` - if the specified dataset is not an instance of the data model containing this node.
      `IllegalArgumentException` - if the specified `Session` is `null`.

  - ### getBusinessObjectModels

    List<BusinessObjectModel> getBusinessObjectModels()
    Returns all the business object models defined in the data model.

    The method `getBusinessObjectModels(Adaptation, Session)` can be used if the business object models must be filtered according to the permissions defined for a specific end-user, in the context of a dataset which is an instance of the data model containing this node.

    See Also:
      - `getBusinessObjectModels(Adaptation, Session)`

  - ### lookupBusinessObjectModel

    BusinessObjectModel lookupBusinessObjectModel(String aName, Adaptation aDataset, Session aSession)
    Return the business object model associated to the specified name.

    Permissions are resolved using this method. As a consequence, this method returns `null` if the main table of the related business object model associated cannot be viewed by the end-user associated with the given session and in the context of the specified dataset. The relationships of the business object model are filtered as well. That is, a relationship (including its child relationships) are not visible if the related data model relationship cannot be viewed by the end-user associated with the given session and in the context of the specified dataset. See `SchemaNodeRelationships.getExplicitRelationships()` for more information about the resolution of the permissions.

    Throws:
      `IllegalArgumentException` - if the specified name is `null`.
      `IllegalArgumentException` - if the specified `Adaptation` is `null`.
      `IllegalStateException` - if the specified `Adaptation` is not a dataset.
      `IllegalStateException` - if the specified `Adaptation` has a severe error.
      `IllegalStateException` - if the specified dataset is not an instance of the data model containing this node.
      `IllegalArgumentException` - if the specified `Session` is `null`.
    See Also:
      - `lookupBusinessObjectModel(String)`

  - ### lookupBusinessObjectModel

    BusinessObjectModel lookupBusinessObjectModel(String aName)
    Return the business object model associated to the specified name.

    The method `lookupBusinessObjectModel(String, Adaptation, Session)` can be used if the business object models must be filtered according to the permissions defined for a specific end-user, in the context of a dataset which is an instance of the data model containing this node.

    Throws:
      `IllegalArgumentException` - if the specified name is `null`.
    See Also:
      - `getBusinessObjetModelForTable(SchemaNode, Adaptation, Session)`