org.apache.cxf.transport

## Class AbstractDestination

- java.lang.Object
- - org.apache.cxf.transport.AbstractObservable
  - - org.apache.cxf.transport.AbstractDestination

- All Implemented Interfaces:
    Destination, DestinationWithEndpoint, Observable
  Direct Known Subclasses:
    AbstractMultiplexDestination

      public abstract class AbstractDestination
      extends AbstractObservable
      implements Destination, DestinationWithEndpoint

  Abstract base class factoring out common Destination logic, allowing non-decoupled transports to be written without any regard for the decoupled back-channel or partial response logic.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `AbstractDestination.AbstractBackChannelConduit` Backchannel conduit.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Bus` | `bus`
    `protected EndpointInfo` | `endpointInfo`
    `protected EndpointReferenceType` | `reference`

    - ### Fields inherited from class org.apache.cxf.transport.AbstractObservable

      `incomingObserver`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractDestination(Bus b, EndpointReferenceType ref, EndpointInfo ei)`
    `AbstractDestination(EndpointReferenceType ref, EndpointInfo ei)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `EndpointReferenceType` | `getAddress()`
    `Conduit` | `getBackChannel(Message inMessage, Message partialResponse, EndpointReferenceType address)` Retreive a back-channel Conduit, which must be policy-compatible with the current Message and associated Destination.
    `EndpointInfo` | `getEndpointInfo()` Return the ServiceModel endpoint description for this destination.
    `protected abstract Conduit` | `getInbuiltBackChannel(Message inMessage)`
    `void` | `shutdown()` Shutdown the Destination, i.e.

    - ### Methods inherited from class org.apache.cxf.transport.AbstractObservable

      `activate, deactivate, getLogger, getMessageObserver, getTargetReference, getTargetReference, setMessageObserver`

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

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

    - ### Methods inherited from interface org.apache.cxf.transport.Destination

      `getMessageObserver`

    - ### Methods inherited from interface org.apache.cxf.transport.Observable

      `setMessageObserver`

- - ### Field Detail

    - #### reference

          protected final EndpointReferenceType reference

    - #### endpointInfo

          protected final EndpointInfo endpointInfo

    - #### bus

          protected final Bus bus

  - ### Constructor Detail

    - #### AbstractDestination

          public AbstractDestination(EndpointReferenceType ref,
                             EndpointInfo ei)

    - #### AbstractDestination

          public AbstractDestination(Bus b,
                             EndpointReferenceType ref,
                             EndpointInfo ei)

  - ### Method Detail

    - #### getAddress

          public EndpointReferenceType getAddress()

      Specified by:
        `getAddress` in interface `Destination`
      Returns:
        the reference associated with this Destination

    - #### getBackChannel

          public Conduit getBackChannel(Message inMessage,
                               Message partialResponse,
                               EndpointReferenceType address)
                                 throws IOException

      Retreive a back-channel Conduit, which must be policy-compatible with the current Message and associated Destination. For example compatible Quality of Protection must be asserted on the back-channel. This would generally only be an issue if the back-channel is decoupled.
      Specified by:
        `getBackChannel` in interface `Destination`
      Parameters:
        `inMessage` - the current inbound message (null to indicate a disassociated back-channel)
        `partialResponse` - in the decoupled case, this is expected to be the outbound Message to be sent over the in-built back-channel.
        `address` - the backchannel address (null to indicate anonymous)
      Returns:
        a suitable Conduit
      Throws:
        `IOException`

    - #### shutdown

          public void shutdown()

      Shutdown the Destination, i.e. stop accepting incoming messages.
      Specified by:
        `shutdown` in interface `Destination`

    - #### getInbuiltBackChannel

          protected abstract Conduit getInbuiltBackChannel(Message inMessage)

      Parameters:
        `inMessage` - the incoming message
      Returns:
        the inbuilt backchannel

    - #### getEndpointInfo

          public EndpointInfo getEndpointInfo()

      Return the ServiceModel endpoint description for this destination.
      Specified by:
        `getEndpointInfo` in interface `DestinationWithEndpoint`
      Returns:
        the endpoint description.

Apache CXF