com.icl.saxon.trace
Class SaxonEventMulticaster

java.lang.Object
  extended bycom.icl.saxon.trace.SaxonEventMulticaster
All Implemented Interfaces:
java.util.EventListener, TraceListener

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
protected  java.util.EventListener a
           
protected  java.util.EventListener b
           
 
Constructor Summary
protected SaxonEventMulticaster(java.util.EventListener a, java.util.EventListener b)
          Creates an event multicaster instance which chains listener-a with listener-b.
 
Method Summary
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
protected  java.util.EventListener remove(java.util.EventListener oldl)
          Removes a listener from this multicaster and returns the resulting multicast listener.
static TraceListener remove(TraceListener l, TraceListener oldl)
          Removes the old trace-listener from trace-listener-l 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

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 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