Class SaxonEventMulticaster

  • All Implemented Interfaces:
    TraceListener, java.util.EventListener

    public class SaxonEventMulticaster
    extends java.lang.Object
    implements TraceListener
    A class which implements efficient and thread-safe multi-cast event dispatching for the TraceListener evants. Grabbed from java.awt.AWTEventMulticaster
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.EventListener a  
      protected java.util.EventListener b  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected SaxonEventMulticaster​(java.util.EventListener a, java.util.EventListener b)
      Creates an event multicaster instance which chains listener-a with listener-b.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static TraceListener add​(TraceListener a, TraceListener b)
      Adds trace-listener-a with trace-listener-b and returns the resulting multicast listener.
      protected static java.util.EventListener addInternal​(java.util.EventListener a, java.util.EventListener b)
      Returns the resulting multicast listener from adding listener-a and listener-b together.
      void close()
      Called at end
      void enter​(NodeInfo element, Context context)
      Called when an element of the stylesheet gets processed
      void enterSource​(NodeHandler handler, Context context)
      Called when a node of the source tree gets processed
      void leave​(NodeInfo element, Context context)
      Called after an element of the stylesheet got processed
      void leaveSource​(NodeHandler handler, Context context)
      Called after a node of the source tree got processed
      void open()
      Called at start
      static TraceListener remove​(TraceListener l, TraceListener oldl)
      Removes the old trace-listener from trace-listener-l and returns the resulting multicast listener.
      protected java.util.EventListener remove​(java.util.EventListener oldl)
      Removes a listener from this multicaster and returns the resulting multicast listener.
      protected static java.util.EventListener removeInternal​(java.util.EventListener l, java.util.EventListener oldl)
      Returns the resulting multicast listener after removing the old listener from listener-l.
      void toplevel​(NodeInfo element)
      Called for all top level elements
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • a

        protected final java.util.EventListener a
      • b

        protected final java.util.EventListener b
    • Constructor Detail

      • SaxonEventMulticaster

        protected SaxonEventMulticaster​(java.util.EventListener a,
                                        java.util.EventListener b)
        Creates an event multicaster instance which chains listener-a with listener-b.
        Parameters:
        a - listener-a
        b - listener-b
    • Method Detail

      • remove

        protected java.util.EventListener remove​(java.util.EventListener oldl)
        Removes a listener from this multicaster and returns the resulting multicast listener.
        Parameters:
        oldl - the listener to be removed
      • open

        public void open()
        Called at start
        Specified by:
        open in interface TraceListener
      • close

        public void close()
        Called at end
        Specified by:
        close in interface TraceListener
      • enter

        public void enter​(NodeInfo element,
                          Context context)
        Called when an element of the stylesheet gets processed
        Specified by:
        enter in interface TraceListener
      • leave

        public void leave​(NodeInfo element,
                          Context context)
        Called after an element of the stylesheet got processed
        Specified by:
        leave in interface TraceListener
      • add

        public static TraceListener add​(TraceListener a,
                                        TraceListener b)
        Adds trace-listener-a with trace-listener-b and returns the resulting multicast listener.
        Parameters:
        a - trace-listener-a
        b - trace-listener-b
      • remove

        public static TraceListener remove​(TraceListener l,
                                           TraceListener oldl)
        Removes the old trace-listener from trace-listener-l and returns the resulting multicast listener.
        Parameters:
        l - trace-listener-l
        oldl - the trace-listener being removed
      • addInternal

        protected static java.util.EventListener addInternal​(java.util.EventListener a,
                                                             java.util.EventListener b)
        Returns the resulting multicast listener from adding listener-a and listener-b together. If listener-a is null, it returns listener-b; If listener-b is null, it returns listener-a If neither are null, then it creates and returns a new EventMulticaster instance which chains a with b.
        Parameters:
        a - event listener-a
        b - event listener-b
      • removeInternal

        protected static java.util.EventListener removeInternal​(java.util.EventListener l,
                                                                java.util.EventListener oldl)
        Returns the resulting multicast listener after removing the old listener from listener-l. If listener-l equals the old listener OR listener-l is null, returns null. Else if listener-l is an instance of SaxonEventMulticaster, then it removes the old listener from it. Else, returns listener l.
        Parameters:
        l - the listener being removed from
        oldl - the listener being removed