Class Subscription


  • public class Subscription
    extends java.lang.Object
    A subscription is a thread-safe container that manages exactly one message handler of all registered message listeners of the same class, i.e. all subscribed instances (excluding subclasses) of a SingleMessageHandler.class will be referenced in the subscription created for SingleMessageHandler.class. There will be as many unique subscription objects per message listener class as there are message handlers defined in the message listeners class hierarchy. The subscription provides functionality for message publication by means of delegation to the respective message dispatcher.
    • Field Detail

      • id

        private final java.util.UUID id
      • listeners

        protected final java.util.Collection<java.lang.Object> listeners
      • onSubscription

        private final java.util.concurrent.CopyOnWriteArrayList<java.lang.Runnable> onSubscription
      • SubscriptionByPriorityDesc

        public static final java.util.Comparator<Subscription> SubscriptionByPriorityDesc
    • Method Detail

      • belongsTo

        public boolean belongsTo​(java.lang.Class listener)
        Check whether this subscription manages a message handler of the given listener class.
      • contains

        public boolean contains​(java.lang.Object listener)
        Check whether this subscriptions manages the given listener instance.
      • handlesMessageType

        public boolean handlesMessageType​(java.lang.Class<?> messageType)
        Check whether this subscription manages a specific message type.
      • getHandledMessageTypes

        public java.lang.Class[] getHandledMessageTypes()
      • publish

        public void publish​(MessagePublication publication,
                            java.lang.Object message)
      • getPriority

        public int getPriority()
      • subscribe

        public void subscribe​(java.lang.Object o)
      • unsubscribe

        public boolean unsubscribe​(java.lang.Object existingListener)
      • size

        public int size()