org.apache.avalon.excalibur.logger.util
Class AvalonTee

java.lang.Object
  extended by org.apache.avalon.excalibur.logger.util.AvalonTee
All Implemented Interfaces:
org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.activity.Startable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.logger.LogEnabled
Direct Known Subclasses:
LoggerManagerTee

public class AvalonTee
extends java.lang.Object
implements org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.activity.Startable, org.apache.avalon.framework.activity.Disposable

This class broadcasts Avalon lifestyle events to several destination objects, somewhat like Unix 'tee' command directing its input both to file and to its output. The current implementation is incomplete and handles only LogEnabled, Contextutalizable, Configurable and Disposable interfaces.

Since:
4.0
Version:
CVS $Revision: 1.4 $ $Date: 2004/03/10 13:54:51 $
Author:
Avalon Development Team

Field Summary
private  int m_len
          The number of these objects.
private  java.util.ArrayList m_listeners
           
private  boolean m_readOnly
           
 
Constructor Summary
AvalonTee()
           
 
Method Summary
 void addTee(java.lang.Object obj)
          Adds an object to the list of objects receiving events.
 void configure(org.apache.avalon.framework.configuration.Configuration config)
           
 void contextualize(org.apache.avalon.framework.context.Context context)
           
 void dispose()
           
 void enableLogging(org.apache.avalon.framework.logger.Logger logger)
           
 void makeReadOnly()
          Disallow adding more tees.
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_listeners

private java.util.ArrayList m_listeners

m_len

private int m_len
The number of these objects. This variable is here is to save a line of code in every reactor method rather then to optimize speed.


m_readOnly

private boolean m_readOnly
Constructor Detail

AvalonTee

public AvalonTee()
Method Detail

makeReadOnly

public void makeReadOnly()
Disallow adding more tees.


addTee

public void addTee(java.lang.Object obj)
Adds an object to the list of objects receiving events.

Parameters:
obj - the object to add; can not be null.

enableLogging

public void enableLogging(org.apache.avalon.framework.logger.Logger logger)
Specified by:
enableLogging in interface org.apache.avalon.framework.logger.LogEnabled

contextualize

public void contextualize(org.apache.avalon.framework.context.Context context)
                   throws org.apache.avalon.framework.context.ContextException
Specified by:
contextualize in interface org.apache.avalon.framework.context.Contextualizable
Throws:
org.apache.avalon.framework.context.ContextException

configure

public void configure(org.apache.avalon.framework.configuration.Configuration config)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Throws:
org.apache.avalon.framework.configuration.ConfigurationException

start

public void start()
           throws java.lang.Exception
Specified by:
start in interface org.apache.avalon.framework.activity.Startable
Throws:
java.lang.Exception

stop

public void stop()
          throws java.lang.Exception
Specified by:
stop in interface org.apache.avalon.framework.activity.Startable
Throws:
java.lang.Exception

dispose

public void dispose()
Specified by:
dispose in interface org.apache.avalon.framework.activity.Disposable