package jadex.commons.concurrent;
import java.util.logging.Logger;
/**
* The default listener for just printing out result information.
* Is used as fallback when no other listener is available.
*/
public abstract class DefaultResultListener implements IResultListener
{
//-------- attributes --------
/** The logger. */
protected Logger logger;
/** The static instance. */
private static IResultListener instance;
//-------- constructors --------
/**
* Create a new listener.
* @param logger The logger.
*/
public DefaultResultListener()
{
this.logger = Logger.getLogger("default-result-listener");
}
/**
* Create a new listener.
* @param logger The logger.
*/
public DefaultResultListener(Logger logger)
{
this.logger = logger;
}
/**
* Get the listener instance.
* @return The listener.
*/
public static IResultListener getInstance()
{
// Hack! Implement that logger can be passed
if(instance==null)
{
instance = new DefaultResultListener(Logger.getLogger("default"))
{
public void resultAvailable(Object source, Object result)
{
}
};
}
return instance;
}
//-------- methods --------
/**
* Called when the result is available.
* @param result The result.
* /
public void resultAvailable(Object source, Object result)
{
//logger.info(""+result);
}*/
/**
* Called when an exception occurred.
* @param exception The exception.
*/
public void exceptionOccurred(Object source, Exception exception)
{
// exception.printStackTrace();
logger.severe(source+" exception occurred: "+exception);
}
}