Class ObservableConnectionTransmitterImpl<DATA extends Serializable,​CON>

  • Type Parameters:
    DATA - The type of the datagram to be operated with.
    CON - The type of the connection to be used.
    All Implemented Interfaces:
    Flushable, org.refcodes.component.Closable, org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.ClosedAccessor, org.refcodes.component.Component, org.refcodes.component.ConnectableComponent, org.refcodes.component.ConnectableComponent.ConnectableAutomaton, org.refcodes.component.ConnectionComponent<CON>, org.refcodes.component.ConnectionComponent.ConnectionAutomaton<CON>, org.refcodes.component.ConnectionOpenable<CON>, org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<CON>, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.component.Destroyable, org.refcodes.component.Flushable, org.refcodes.component.OpenedAccessor, org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON>, org.refcodes.io.DatagramSource<DATA>, org.refcodes.io.DatagramsSource<DATA>, org.refcodes.io.DatagramsTransmitter<DATA>, org.refcodes.io.DatagramTransmitter<DATA>, ObservableConnectionTransmitter<DATA,​CON>, org.refcodes.io.Transmittable, org.refcodes.mixin.Loggable, org.refcodes.observer.Observable<org.refcodes.component.ext.observer.ConnectionObserver>

    public class ObservableConnectionTransmitterImpl<DATA extends Serializable,​CON>
    extends Object
    implements ObservableConnectionTransmitter<DATA,​CON>, org.refcodes.mixin.Loggable
    The ObservableConnectionTransmitterImpl implements the ObservableConnectionTransmitter for wrapping and extending a ConnectionDatagramsTransmitter with observable functionality.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.refcodes.component.Closable

        org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.ClosedAccessor

        org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
      • Nested classes/interfaces inherited from interface org.refcodes.component.ConnectableComponent

        org.refcodes.component.ConnectableComponent.ConnectableAutomaton
      • Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionComponent

        org.refcodes.component.ConnectionComponent.ConnectionAutomaton<CON extends Object>, org.refcodes.component.ConnectionComponent.ConnectionComponentBuilder<CON extends Object,​B extends org.refcodes.component.ConnectionComponent.ConnectionComponentBuilder<CON,​B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionOpenable

        org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<CON extends Object>, org.refcodes.component.ConnectionOpenable.ConnectionOpenBuilder<CON extends Object,​B extends org.refcodes.component.ConnectionOpenable.ConnectionOpenBuilder<CON,​B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor

        org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
      • Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable

        org.refcodes.component.Destroyable.DestroyAutomaton
      • Nested classes/interfaces inherited from interface org.refcodes.component.Flushable

        org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor

        org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
    • Field Summary

      • Fields inherited from interface org.refcodes.mixin.Loggable

        RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      void destroy()
      void flush()
      org.refcodes.component.ConnectionStatus getConnectionStatus()
      boolean hasObserverSubscription​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
      boolean isClosable()
      boolean isClosed()
      boolean isOpenable​(CON aConnection)
      boolean isOpened()
      void open​(CON aConnection)
      boolean subscribeObserver​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
      void transmit​(DATA aDatagram)
      boolean unsubscribeObserver​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
      • Methods inherited from interface org.refcodes.component.Closable

        closeIn, closeQuietly, closeUnchecked
      • Methods inherited from interface org.refcodes.component.ConnectionOpenable

        openUnchecked
      • Methods inherited from interface org.refcodes.io.DatagramsSource

        transmitAll
      • Methods inherited from interface org.refcodes.io.DatagramsTransmitter

        transmit
      • Methods inherited from interface org.refcodes.component.Flushable

        flushUnchecked, isFlushable
      • Methods inherited from interface org.refcodes.mixin.Loggable

        alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
    • Constructor Detail

      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   Object aSource)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aSource - The source instance to be used when firing events in case the source is to be different from this class' instance.
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   org.refcodes.mixin.EventMetaData aEventMetaData)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aEventMetaData - The EventMetaData to be used when firing events in case the EventMetaData is to be different from the auto-generated EventMetaData.
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   org.refcodes.mixin.EventMetaData aEventMetaData,
                                                   Object aSource)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aEventMetaData - The EventMetaData to be used when firing events in case the EventMetaData is to be different from the auto-generated EventMetaData.
        aSource - The source instance to be used when firing events in case the source is to be different from this class' instance.
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   ExecutorService aExecutorService,
                                                   org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aExecutorService - The executor service to be used when firing GenericActionEvent instances in multiple threads (if null then a default one is used).
        aExecutionStrategy - The ExecutionStrategy to be used when firing GenericActionEvent instance (if null then the default ExecutionStrategy.SEQUENTIAL is used).
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   Object aSource,
                                                   ExecutorService aExecutorService,
                                                   org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aSource - The source instance to be used when firing events in case the source is to be different from this class' instance.
        aExecutorService - The executor service to be used when firing GenericActionEvent instances in multiple threads (if null then a default one is used).
        aExecutionStrategy - The ExecutionStrategy to be used when firing GenericActionEvent instance (if null then the default ExecutionStrategy.SEQUENTIAL is used).
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   org.refcodes.mixin.EventMetaData aEventMetaData,
                                                   ExecutorService aExecutorService,
                                                   org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aEventMetaData - The EventMetaData to be used when firing events in case the EventMetaData is to be different from the auto-generated EventMetaData.
        aExecutorService - The executor service to be used when firing GenericActionEvent instances in multiple threads (if null then a default one is used).
        aExecutionStrategy - The ExecutionStrategy to be used when firing GenericActionEvent instance (if null then the default ExecutionStrategy.SEQUENTIAL is used).
      • ObservableConnectionTransmitterImpl

        public ObservableConnectionTransmitterImpl​(org.refcodes.io.ConnectionDatagramsTransmitter<DATA,​CON> aConnectionSender,
                                                   org.refcodes.mixin.EventMetaData aEventMetaData,
                                                   Object aSource,
                                                   ExecutorService aExecutorService,
                                                   org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
        Constructs a ObservableConnectionTransmitterImpl with the given attributes.
        Parameters:
        aConnectionSender - The ConnectionDatagramsTransmitter to which the connection method calls are to be delegated to.
        aEventMetaData - The EventMetaData to be used when firing events in case the EventMetaData is to be different from the auto-generated EventMetaData.
        aSource - The source instance to be used when firing events in case the source is to be different from this class' instance.
        aExecutorService - The executor service to be used when firing GenericActionEvent instances in multiple threads (if null then a default one is used).
        aExecutionStrategy - The ExecutionStrategy to be used when firing GenericActionEvent instance (if null then the default ExecutionStrategy.SEQUENTIAL is used).
    • Method Detail

      • isClosed

        public boolean isClosed()
        Specified by:
        isClosed in interface org.refcodes.component.ClosedAccessor
      • isOpened

        public boolean isOpened()
        Specified by:
        isOpened in interface org.refcodes.component.ConnectionStatusAccessor
        Specified by:
        isOpened in interface org.refcodes.component.OpenedAccessor
      • getConnectionStatus

        public org.refcodes.component.ConnectionStatus getConnectionStatus()
        Specified by:
        getConnectionStatus in interface org.refcodes.component.ConnectionStatusAccessor
      • flush

        public void flush()
                   throws IOException
        Specified by:
        flush in interface org.refcodes.io.DatagramTransmitter<DATA extends Serializable>
        Specified by:
        flush in interface Flushable
        Specified by:
        flush in interface org.refcodes.component.Flushable
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        Specified by:
        close in interface org.refcodes.component.Closable
        Throws:
        IOException
      • isClosable

        public boolean isClosable()
        Specified by:
        isClosable in interface org.refcodes.component.Closable.CloseAutomaton
      • isOpenable

        public boolean isOpenable​(CON aConnection)
        Specified by:
        isOpenable in interface org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<DATA extends Serializable>
      • hasObserverSubscription

        public boolean hasObserverSubscription​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
        Specified by:
        hasObserverSubscription in interface org.refcodes.observer.Observable<DATA extends Serializable>
      • subscribeObserver

        public boolean subscribeObserver​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
        Specified by:
        subscribeObserver in interface org.refcodes.observer.Observable<DATA extends Serializable>
      • unsubscribeObserver

        public boolean unsubscribeObserver​(org.refcodes.component.ext.observer.ConnectionObserver aObserver)
        Specified by:
        unsubscribeObserver in interface org.refcodes.observer.Observable<DATA extends Serializable>
      • destroy

        public void destroy()
        Specified by:
        destroy in interface org.refcodes.component.Destroyable