Interface Link<T extends Link<T>>

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.String address()
      Returns the address that the Link instance will be subscribed to.
      Client client()  
      void close()
      Requests a close of the Link at the remote and waits until the Link has been fully closed or until the configured close timeout is exceeded.
      void close​(ErrorCondition error)
      Requests a close of the Link at the remote and waits until the Link has been fully closed or until the configured LinkOptions.closeTimeout() is exceeded.
      java.util.concurrent.Future<T> closeAsync()
      Requests a close of the Link link at the remote and returns a Future that will be completed once the link has been closed.
      java.util.concurrent.Future<T> closeAsync​(ErrorCondition error)
      Requests a close of the Link link at the remote and returns a Future that will be completed once the link has been closed.
      Connection connection()  
      java.lang.String[] desiredCapabilities()
      Returns the desired capabilities that the remote provided upon successfully opening the Link.
      void detach()
      Requests a detach of the Link at the remote and waits until the Link has been fully detached or until the configured LinkOptions.closeTimeout() is exceeded.
      void detach​(ErrorCondition error)
      Requests a detach of the Link at the remote and waits until the Link has been fully detached or until the configured LinkOptions.closeTimeout() is exceeded.
      java.util.concurrent.Future<T> detachAsync()
      Requests a detach of the Link link at the remote and returns a Future that will be completed once the link has been detached.
      java.util.concurrent.Future<T> detachAsync​(ErrorCondition error)
      Requests a detach of the Link link at the remote and returns a Future that will be completed once the link has been detached.
      java.lang.String[] offeredCapabilities()
      Returns the offered capabilities that the remote provided upon successfully opening the Link.
      java.util.concurrent.Future<T> openFuture()  
      java.util.Map<java.lang.String,​java.lang.Object> properties()
      Returns the properties that the remote provided upon successfully opening the Link.
      Session session()  
      Source source()
      Returns an immutable view of the remote Source object assigned to this link.
      Target target()
      Returns an immutable view of the remote Target object assigned to this sender link.
    • Method Detail

      • openFuture

        java.util.concurrent.Future<T> openFuture()
        Returns:
        a Future that will be completed when the remote opens this Link.
      • client

        Client client()
        Returns:
        the Client instance that holds this session's Link
      • close

        void close()
        Requests a close of the Link at the remote and waits until the Link has been fully closed or until the configured close timeout is exceeded.
        Specified by:
        close in interface java.lang.AutoCloseable
      • close

        void close​(ErrorCondition error)
        Requests a close of the Link at the remote and waits until the Link has been fully closed or until the configured LinkOptions.closeTimeout() is exceeded.
        Parameters:
        error - The ErrorCondition to transmit to the remote along with the close operation.
      • detach

        void detach()
        Requests a detach of the Link at the remote and waits until the Link has been fully detached or until the configured LinkOptions.closeTimeout() is exceeded.
      • detach

        void detach​(ErrorCondition error)
        Requests a detach of the Link at the remote and waits until the Link has been fully detached or until the configured LinkOptions.closeTimeout() is exceeded.
        Parameters:
        error - The ErrorCondition to transmit to the remote along with the detach operation.
      • closeAsync

        java.util.concurrent.Future<T> closeAsync()
        Requests a close of the Link link at the remote and returns a Future that will be completed once the link has been closed.
        Returns:
        a Future that will be completed when the remote closes this Link link.
      • closeAsync

        java.util.concurrent.Future<T> closeAsync​(ErrorCondition error)
        Requests a close of the Link link at the remote and returns a Future that will be completed once the link has been closed.
        Parameters:
        error - The ErrorCondition to transmit to the remote along with the close operation.
        Returns:
        a Future that will be completed when the remote closes this Link link.
      • detachAsync

        java.util.concurrent.Future<T> detachAsync()
        Requests a detach of the Link link at the remote and returns a Future that will be completed once the link has been detached.
        Returns:
        a Future that will be completed when the remote detaches this Link link.
      • detachAsync

        java.util.concurrent.Future<T> detachAsync​(ErrorCondition error)
        Requests a detach of the Link link at the remote and returns a Future that will be completed once the link has been detached.
        Parameters:
        error - The ErrorCondition to transmit to the remote along with the detach operation.
        Returns:
        a Future that will be completed when the remote detaches this Link link.
      • address

        java.lang.String address()
                          throws ClientException
        Returns the address that the Link instance will be subscribed to. This method can block based on the type of link and how it was configured.
        • If the link is a Sender and it was configured as an anonymous sender then this method returns null as the link has no address.
        • If a link was created with the dynamic node value enabled then the method will return the dynamically created address once the remote has attached its end of the opened link. Due to the need to await the remote peer to populate the dynamic address this method will block until the open of the link has completed.
        • If not a dynamic link then the address returned is the address passed to the original link creation method.
        Returns:
        the address that this Link is was assigned to.
        Throws:
        ClientException - if an error occurs while obtaining the Link address.
      • source

        Source source()
               throws ClientException
        Returns an immutable view of the remote Source object assigned to this link. If the attach has not completed yet this method will block to await the attach response which carries the remote Source.
        Returns:
        the remote Source node configuration.
        Throws:
        ClientException - if an error occurs while obtaining the Link remote Source.
      • target

        Target target()
               throws ClientException
        Returns an immutable view of the remote Target object assigned to this sender link. If the attach has not completed yet this method will block to await the attach response which carries the remote Target.
        Returns:
        the remote Target node configuration.
        Throws:
        ClientException - if an error occurs while obtaining the Link remote Target.
      • properties

        java.util.Map<java.lang.String,​java.lang.Object> properties()
                                                                   throws ClientException
        Returns the properties that the remote provided upon successfully opening the Link. If the attach has not completed yet this method will block to await the attach response which carries the remote properties. If the remote provides no properties this method will return null.
        Returns:
        any properties provided from the remote once the sender has successfully opened.
        Throws:
        ClientException - if an error occurs while obtaining the Link remote properties.
      • offeredCapabilities

        java.lang.String[] offeredCapabilities()
                                        throws ClientException
        Returns the offered capabilities that the remote provided upon successfully opening the Link. If the attach has not completed yet this method will block to await the attach response which carries the remote offered capabilities. If the remote provides no capabilities this method will return null.
        Returns:
        any capabilities provided from the remote once the sender has successfully opened.
        Throws:
        ClientException - if an error occurs while obtaining the Link remote offered capabilities.
      • desiredCapabilities

        java.lang.String[] desiredCapabilities()
                                        throws ClientException
        Returns the desired capabilities that the remote provided upon successfully opening the Link. If the attach has not completed yet this method will block to await the attach response which carries the remote desired capabilities. If the remote provides no capabilities this method will return null.
        Returns:
        any desired capabilities provided from the remote once the sender has successfully opened.
        Throws:
        ClientException - if an error occurs while obtaining the Link remote desired capabilities.