blob: 509474e85ab42789479d899f2f5ad38a8a83bf70 [file] [log] [blame]
/*
* Created on 14-Mar-2006
*
*/
package org.apache.test;
import java.util.Vector;
/**
* @author hawkeye
* Connection handlers handleconnections and have a common goal of ensuring that they are
* all closed when they need to be
*/
public abstract class ChildHandler extends org.apache.tools.ant.Task
{
protected Vector children;
protected ChildHandler()
{
// System.out.println( "Constructing "+this);
children=new Vector();
}
/**
* This method can be overridden to do specific things for the class but this superclass methodf
* should always be called
*
*/
protected void close()
{
// System.out.println( "Closing "+this);
try
{
if(children!=null)
{
for(int i=0; i<children.size(); i++)
{
ChildHandler child = (ChildHandler)children.remove(i);
try
{
child.close();
}
catch (Throwable exception)
{
// Swallow exceptions on close....
//System.out.println( "Exception in ChildHandler.close()...");
//exception.printStackTrace( );
}
}
}
children=null;
// System.out.println( "Closed "+this);
}
catch (Throwable exception)
{
System.out.println( "Exception in ChildHandler.close()...");
exception.printStackTrace( );
}
}
protected void addChild(ChildHandler handler)
{
children.add(handler);
}
public String toString()
{
String name = this.getClass().getName();
return name;
}
public void finalize()throws Throwable
{
// System.out.println( "Destroying: "+this);
super.finalize();
}
}