net.corda.flows

## Class TwoPartyDealFlow.Secondary<U>

- FlowLogic
- - net.corda.flows.TwoPartyDealFlow.Secondary<U>

- Direct Known Subclasses:
    TwoPartyDealFlow.Acceptor
  Enclosing class:
    TwoPartyDealFlow

      public static class TwoPartyDealFlow.Secondary<U>
      extends FlowLogic

  Abstracted bilateral deal flow participant that is recipient of initial communication.

  There's a good chance we can push at least some of this logic down into core flow logic and helper methods etc.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Secondary.Companion`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Secondary.Companion` | `Companion`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Secondary(ProgressTracker progressTracker)` Abstracted bilateral deal flow participant that is recipient of initial communication.
    `Secondary()` Abstracted bilateral deal flow participant that is recipient of initial communication.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `kotlin.Pair<net.corda.core.transactions.TransactionBuilder,java.util.List>` | `assembleSharedTX(TwoPartyDealFlow.Handshake<? extends U> handshake)`
    `SignedTransaction` | `call()` This is where you fill out your business logic. The returned object will usually be ignored, but can be helpful if this flow is meant to be used as a subflow.
    `Party` | `getOtherParty()`
    `ProgressTracker` | `getProgressTracker()` Override this to provide a `class ProgressTracker`. If one is provided and stepped, the framework will do something helpful with the progress reports. If this flow is invoked as a subflow of another, then the tracker will be made a child of the current step in the parent. If it's null, this flow doesn't track progress.
    `TwoPartyDealFlow.Handshake<U>` | `validateHandshake(TwoPartyDealFlow.Handshake<? extends U> handshake)`

    - ### Methods inherited from class net.corda.core.flows.FlowLogic

      `call, getCounterpartyMarker, getLogger, getProgressTracker, getRunId, getServiceHub, getStateMachine, receive, send, sendAndReceive, setStateMachine, subFlow, subFlow, track, waitForLedgerCommit`

- - ### Field Detail

    - #### Companion

          public static Secondary.Companion Companion

  - ### Constructor Detail

    - #### Secondary

          public Secondary(ProgressTracker progressTracker)

      Abstracted bilateral deal flow participant that is recipient of initial communication.

      There's a good chance we can push at least some of this logic down into core flow logic and helper methods etc.

      Parameters:
        `progressTracker` -

        Override this to provide a `class ProgressTracker`. If one is provided and stepped, the framework will do something helpful with the progress reports. If this flow is invoked as a subflow of another, then the tracker will be made a child of the current step in the parent. If it's null, this flow doesn't track progress.

        Note that this has to return a tracker before the flow is invoked. You can't change your mind half way through.

    - #### Secondary

          public Secondary()

      Abstracted bilateral deal flow participant that is recipient of initial communication.

      There's a good chance we can push at least some of this logic down into core flow logic and helper methods etc.

  - ### Method Detail

    - #### getOtherParty

          public Party getOtherParty()

    - #### call

          public SignedTransaction call()

      This is where you fill out your business logic. The returned object will usually be ignored, but can be helpful if this flow is meant to be used as a subflow.

    - #### validateHandshake

          public TwoPartyDealFlow.Handshake<U> validateHandshake(TwoPartyDealFlow.Handshake<? extends U> handshake)

    - #### assembleSharedTX

          public kotlin.Pair<net.corda.core.transactions.TransactionBuilder,java.util.List> assembleSharedTX(TwoPartyDealFlow.Handshake<? extends U> handshake)

    - #### getProgressTracker

          public ProgressTracker getProgressTracker()

      Override this to provide a `class ProgressTracker`. If one is provided and stepped, the framework will do something helpful with the progress reports. If this flow is invoked as a subflow of another, then the tracker will be made a child of the current step in the parent. If it's null, this flow doesn't track progress.

      Note that this has to return a tracker before the flow is invoked. You can't change your mind half way through.

      See Also:
        `class ProgressTracker`