Package com.orchestranetworks.schema.businessObjects

# Interface BusinessObjectModel

public interface BusinessObjectModel
Represents the definition of a business object in the context of a data model.

Since:
  6.1.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `UserMessage`
  `getDescription()`
  Returns the localized description of this business object model.
  `UserMessage`
  `getLabel()`
  Returns the localized label of this business object model.
  `List<BusinessObjectModelRelationship>`
  `getLightRelationshipsChildren()`
  Returns the relationships defined in the business object model's main table.
  `String`
  `getName()`
  Returns the name of this business object model.
  `List<BusinessObjectModelRelationship>`
  `getStrongRelationshipsChildren()`
  Retrieves the relationships defined in this business object model.
  `SchemaNode`
  `getTableNode()`
  Returns the main table of this business object model.
  `MainEntity`
  `initForRead(Adaptation aRecord, Session aSessionOrNull)`
  Creates a read only facade from the specified record of the main table of this business object model.

- ## Method Details

  - ### getName

    String getName()
    Returns the name of this business object model. This name is unique in the context of the associated data model. This method never returns `null`.

  - ### getTableNode

    SchemaNode getTableNode()
    Returns the main table of this business object model. This method never returns `null`.
    See Also:
      - `DataModelBusinessObjectModels.getBusinessObjetModelForTable(SchemaNode)`

  - ### getStrongRelationshipsChildren

    List<BusinessObjectModelRelationship> getStrongRelationshipsChildren()
    Retrieves the relationships defined in this business object model. These are considered 'strong' relationships. This implies a tight bond in the lifecycle of related records. This means that changes to one record can cascade to the records linked by this strong relationship.
    See Also:
      - `BusinessObjectModelRelationship.isStrongRelationship()`
      - `getLightRelationshipsChildren()`

  - ### getLightRelationshipsChildren

    List<BusinessObjectModelRelationship> getLightRelationshipsChildren()
    Returns the relationships defined in the business object model's main table. These are considered 'light' relationships that are not explicitly defined in the business object model. Light relationships link associated tables that do not define the business object model's structure.
    See Also:
      - `BusinessObjectModelRelationship.isStrongRelationship()`
      - `getStrongRelationshipsChildren()`

  - ### getLabel

    UserMessage getLabel()
    Returns the localized label of this business object model.
    Returns:
      `null` if no localized label is defined in the data model.

  - ### getDescription

    UserMessage getDescription()
    Returns the localized description of this business object model.
    Returns:
      `null` if no localized description is defined in the data model.

  - ### initForRead

    MainEntity initForRead(Adaptation aRecord, Session aSessionOrNull)
    Creates a read only facade from the specified record of the main table of this business object model.
    Throws:
      `IllegalArgumentException` - if the specified record is `null`.
      `IllegalArgumentException` - if the specified record is does not belong to the main table of this business object model.
    See Also:
      - `MainEntity`