Package com.orchestranetworks.d3

# Interface D3Node

All Known Subinterfaces:
  `D3NodeAsMaster`, `D3NodeAsSlave`, `D3NodeAsSlaveOnStartup`

public interface D3Node
Represents the external view of the D3 engine and offers common administrative functionalities.

All methods are read-only and are used to retrieve the D3 node information.

Since:
  5.4.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VersionKey`
  `getBroadcastVersion(BranchKey aDataSpaceKey)`
  Returns the last broadcast snapshot for the specified dataspace key.
  `D3Slave`
  `getD3SlaveFromRepositoryId(String aRepositoryId)`
  Returns the registered replica for the specified identifier.
  `D3Slave`
  `getD3SlaveFromRepositoryLabel(String aRepositoryLabel)`
  Returns the registered replica for the specified label.
  `List<D3Slave>`
  `getRegisteredSlaves(BranchKey aDataSpaceKey)`
  Returns the list of the `D3Slave` subscribed to the dataspace specified in the parameter.
  `String`
  `getRepositoryId()`
  Returns the repository ID of the current node.
  `String`
  `getRepositoryLabel()`
  Returns the repository label of the current node.
  `boolean`
  `isMasterHome(AdaptationHome aHome)`
  Returns `true` if the parameter `aHome` is a D3 primary delivery dataspace or its snapshot, otherwise returns `false`.
  `boolean`
  `isSlaveHome(AdaptationHome aHome)`
  Returns `true` if the parameter `aHome` is a D3 replica delivery dataspace or its snapshot, otherwise returns `false`.

- ## Method Details

  - ### getBroadcastVersion

    VersionKey getBroadcastVersion(BranchKey aDataSpaceKey)
    Returns the last broadcast snapshot for the specified dataspace key. The following conditions should be valid:
    - Corresponds to an open delivery dataspace.
    - Registered as a primary or replica delivery dataspace.
    - Broadcasted at least once.

    Otherwise a `null` is returned.

    Parameters:
      `aDataSpaceKey` - D3 dataspace key
    Since:
      5.4.2

  - ### getRepositoryId

    String getRepositoryId()
    Returns the repository ID of the current node.
    Since:
      5.5.1

  - ### getRepositoryLabel

    String getRepositoryLabel()
    Returns the repository label of the current node.
    Since:
      5.5.1

  - ### getD3SlaveFromRepositoryId

    D3Slave getD3SlaveFromRepositoryId(String aRepositoryId)
    Returns the registered replica for the specified identifier.

    If unknown in the primary repository or if replica mode only, returns `null`.

    Parameters:
      `aRepositoryId` - remote replica repository ID.
    Throws:
      `NullPointerException` - if `aRepositoryId` is null.
    Since:
      5.5.1

  - ### getD3SlaveFromRepositoryLabel

    D3Slave getD3SlaveFromRepositoryLabel(String aRepositoryLabel)
    Returns the registered replica for the specified label.

    If unknown in the primary repository or if replica mode only, returns `null`.

    Parameters:
      `aRepositoryLabel` - remote replica repository label.
    Throws:
      `NullPointerException` - if `aRepositoryLabel` is null.
    Since:
      5.5.1

  - ### getRegisteredSlaves

    List<D3Slave> getRegisteredSlaves(BranchKey aDataSpaceKey)
    Returns the list of the `D3Slave` subscribed to the dataspace specified in the parameter.

    The returned list is empty if in replica mode only or if no replica registered on this node.

    Parameters:
      `aDataSpaceKey` - D3 dataspace key.
    Since:
      5.5.1

  - ### isMasterHome

    boolean isMasterHome(AdaptationHome aHome)
    Returns `true` if the parameter `aHome` is a D3 primary delivery dataspace or its snapshot, otherwise returns `false`.
    Parameters:
      `aHome` - Dataspace or snapshot home.
    Throws:
      `NullPointerException` - if `aHome` is null.
    Since:
      5.5.1

  - ### isSlaveHome

    boolean isSlaveHome(AdaptationHome aHome)
    Returns `true` if the parameter `aHome` is a D3 replica delivery dataspace or its snapshot, otherwise returns `false`.
    Parameters:
      `aHome` - Dataspace or snapshot home.
    Throws:
      `NullPointerException` - if `aHome` is null.
    Since:
      5.5.1