Package com.orchestranetworks.workflow

# Class PublicationSpec

java.lang.Object
com.orchestranetworks.workflow.PublicationSpec

public final class PublicationSpec extends Object
Specifications for publishing a single workflow.

The `PublicationSpec` class encapsulates all the details required for publishing a workflow. It includes the workflow model identifier, a unique name for the publication, and the mode in which the publication is to be made (either NEW or UPDATE). The class also maintains a set of dependencies, which are essentially the sub-workflows that the main workflow depends on.

This class provides methods to validate the publication details and to collect its dependencies. It is designed to be used in conjunction with the `WorkflowRepository` class for various workflow operations.

Since:
  6.1.3

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `PublicationSpec.PublicationMode`
  Retrieves the mode of the publication.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PublicationSpec(AdaptationName adaptationName, String publicationName, PublicationSpec.PublicationMode publicationMode)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AdaptationName`
  `getAdaptationName()`
  Retrieves the identifier of the workflow model associated with this publication.
  `Set<String>`
  `getDependencies()`
  Retrieves the set of sub-workflows that this publication depends on.
  `PublicationSpec.PublicationMode`
  `getPublicationMode()`
  Returns the publication mode.
  `String`
  `getPublicationName()`
  Retrieves the name of the publication.

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### PublicationSpec

    public PublicationSpec(AdaptationName adaptationName, String publicationName, PublicationSpec.PublicationMode publicationMode)
    Constructor.
    Parameters:
      `adaptationName` - the workflow model identifier.
      `publicationName` - name to use for the publication. This name must be unique for a new publication.
      `publicationMode` - the publication mode.

- ## Method Details

  - ### getAdaptationName

    public AdaptationName getAdaptationName()
    Retrieves the identifier of the workflow model associated with this publication.

    This method returns an AdaptationName object that serves as the unique identifier for the workflow model that this publication is based on. This identifier is crucial for distinguishing which workflow models is used.

    Returns:
      An AdaptationName object representing the unique identifier of the workflow model for this publication.
    Since:
      6.1.3

  - ### getPublicationName

    public String getPublicationName()
    Retrieves the name of the publication.

    This method returns the name assigned to this publication, which serves as a unique identifier of a publication.

    Returns:
      A String representing the unique name of this publication.
    Since:
      6.1.3

  - ### getPublicationMode

    public PublicationSpec.PublicationMode getPublicationMode()
    Returns the publication mode.

  - ### getDependencies

    public Set<String> getDependencies()
    Retrieves the set of sub-workflows that this publication depends on.

    This method returns a set containing the names of all sub-workflows that this publication relies on. These sub-workflows are considered as dependencies for the main workflow represented by this publication.

    Returns:
      A Set of Strings representing the names of the sub-workflows that this publication depends on.
    Since:
      6.1.3