Class SaxonEventMulticaster

java.lang.Object
com.icl.saxon.trace.SaxonEventMulticaster
All Implemented Interfaces:
TraceListener, EventListener

public class SaxonEventMulticaster extends 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 Details

  • Constructor Details

    • SaxonEventMulticaster

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

    • remove

      protected EventListener remove(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
    • toplevel

      public void toplevel(NodeInfo element)
      Called for all top level elements
      Specified by:
      toplevel in interface TraceListener
    • enterSource

      public void enterSource(NodeHandler handler, Context context)
      Called when a node of the source tree gets processed
      Specified by:
      enterSource in interface TraceListener
    • leaveSource

      public void leaveSource(NodeHandler handler, Context context)
      Called after a node of the source tree got processed
      Specified by:
      leaveSource 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 EventListener addInternal(EventListener a, 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 EventListener removeInternal(EventListener l, 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