nz.ac.waikato.modeljunit
Class ListenerFactory

java.lang.Object
  extended by nz.ac.waikato.modeljunit.ListenerFactory

public class ListenerFactory
extends java.lang.Object

This singleton object defines all the pre-defined model listeners (and coverage metrics). Each new Model object uses this object to create listeners that are requested via name. So you can make new pre-defined listeners available to all Models simply by adding them this object. You can also override the class of one of the existing pre-defined listeners -- that new class will be used when the next instance of that kind of listener is created.

Author:
marku

Constructor Summary
protected ListenerFactory()
           
 
Method Summary
static ListenerFactory getFactory()
          Returns the singleton instance of this factory class.
 ModelListener getListener(java.lang.String name)
          Gets a pre-defined listener, or null if one is not known.
 java.lang.Class<? extends ModelListener> getListenerClass(java.lang.String name)
          Returns the class that will be used to create the given kind of listeners, or null if unknown.
 java.util.Set<java.lang.String> getNames()
          Returns all the known names of predefined listeners.
 java.lang.Class<? extends ModelListener> putListener(java.lang.String name, java.lang.Class<? extends ModelListener> clazz)
          Defines a new kind of pre-defined listener.
 java.lang.Class<? extends ModelListener> removeListener(java.lang.String name)
          Remove the listener class associated with name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ListenerFactory

protected ListenerFactory()
Method Detail

getFactory

public static ListenerFactory getFactory()
Returns the singleton instance of this factory class.


getListener

public ModelListener getListener(java.lang.String name)
Gets a pre-defined listener, or null if one is not known. The names used as parameters to this method are not the Java class names, but the informal lowercase name of the resulting Listener object. For example, requesting "transition coverage" will return an instance of class TransitionCoverage (by default).

Parameters:
name - The non-null name of a listener.
Returns:
A fresh instance of the requested kind of listener.

getListenerClass

public java.lang.Class<? extends ModelListener> getListenerClass(java.lang.String name)
Returns the class that will be used to create the given kind of listeners, or null if unknown. For example, this can be useful for a tool that wants to create metrics for a HistoryCoverage wrapper.

Parameters:
name - The non-null name of a listener.
Returns:
The appropriate subclass of ModelListener, or null.

putListener

public java.lang.Class<? extends ModelListener> putListener(java.lang.String name,
                                                            java.lang.Class<? extends ModelListener> clazz)
Defines a new kind of pre-defined listener.

Parameters:
name - The name used to refer to this class of listener. This should usually be the same as the name of the listener instances.
clazz - Which listener should be created by each getListener call.
Returns:
The previous listener class (or null if none).

removeListener

public java.lang.Class<? extends ModelListener> removeListener(java.lang.String name)
Remove the listener class associated with name.

Parameters:
name - The name of a predefined kind of listener.
Returns:
The removed class, or null.

getNames

public java.util.Set<java.lang.String> getNames()
Returns all the known names of predefined listeners.



Copyright © 2009 ModelJUnit Project. All Rights Reserved.