net.sf.saxon.trace

Class TraceEventMulticaster

Implemented Interfaces:
EventListener, TraceListener

public class TraceEventMulticaster
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 EventListener
a
protected EventListener
b

Constructor Summary

TraceEventMulticaster(EventListener a, 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 EventListener
addInternal(EventListener a, EventListener b)
Returns the resulting multicast listener from adding listener-a and listener-b together.
void
close()
Called at end
void
endCurrentItem(Item item)
Called when an item ceases to be the current item
void
enter(InstructionInfo element, XPathContext context)
Called when an element of the stylesheet gets processed
void
leave(InstructionInfo element)
Called after an element of the stylesheet got processed
void
open()
Called at start
protected EventListener
remove(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 EventListener
removeInternal(EventListener l, EventListener oldl)
Returns the resulting multicast listener after removing the old listener from listener-l.
void
startCurrentItem(Item item)
Called when an item becomes current

Field Details

a

protected final EventListener a

b

protected final EventListener b

Constructor Details

TraceEventMulticaster

protected TraceEventMulticaster(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

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

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

close

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

endCurrentItem

public void endCurrentItem(Item item)
Called when an item ceases to be the current item
Specified by:
endCurrentItem in interface TraceListener

enter

public void enter(InstructionInfo element,
                  XPathContext context)
Called when an element of the stylesheet gets processed
Specified by:
enter in interface TraceListener

leave

public void leave(InstructionInfo element)
Called after an element of the stylesheet got processed
Specified by:
leave in interface TraceListener

open

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

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

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

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

startCurrentItem

public void startCurrentItem(Item item)
Called when an item becomes current
Specified by:
startCurrentItem in interface TraceListener