Package 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 | Description
    --- | --- | ---
    `protected class` | `AbstractDestination.AbstractBackChannelConduit` | Backchannel conduit.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Bus` | `bus` |
    `protected EndpointInfo` | `endpointInfo` |
    `protected org.apache.cxf.ws.addressing.EndpointReferenceType` | `reference` |

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

      `incomingObserver`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractDestination​(Bus b, org.apache.cxf.ws.addressing.EndpointReferenceType ref, EndpointInfo ei)` |
    `AbstractDestination​(org.apache.cxf.ws.addressing.EndpointReferenceType ref, EndpointInfo ei)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.apache.cxf.ws.addressing.EndpointReferenceType` | `getAddress()` |
    `Conduit` | `getBackChannel​(Message inMessage)` | Retrieve 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. stop accepting incoming messages.

    - ### 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 org.apache.cxf.ws.addressing.EndpointReferenceType reference

    - #### endpointInfo

          protected final EndpointInfo endpointInfo

    - #### bus

          protected final Bus bus

  - ### Constructor Detail

    - #### AbstractDestination

          public AbstractDestination​(org.apache.cxf.ws.addressing.EndpointReferenceType ref,
                                     EndpointInfo ei)

    - #### AbstractDestination

          public AbstractDestination​(Bus b,
                                     org.apache.cxf.ws.addressing.EndpointReferenceType ref,
                                     EndpointInfo ei)

  - ### Method Detail

    - #### getAddress

          public org.apache.cxf.ws.addressing.EndpointReferenceType getAddress()

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

    - #### getBackChannel

          public Conduit getBackChannel​(Message inMessage)
                                 throws IOException

      Retrieve 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)
      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.