package com.eucalyptus.component;
import org.apache.log4j.Logger;
public abstract class DispatcherFactory {
private static Logger LOG = Logger.getLogger( DispatcherFactory.class );
private static DispatcherFactory factory;
public static void setFactory( DispatcherFactory factory ) {
synchronized ( DispatcherFactory.class ) {
LOG.info( "Setting the dispatcher factory to: " + factory.getClass( ).getCanonicalName( ) );
DispatcherFactory.factory = factory;
}
}
public static Dispatcher build( Component parent, Service service ) {
return factory.buildChild( parent, service );
}
public abstract Dispatcher buildChild( Component parent, Service service );
public static void remove( Service service ) {
factory.removeChild( service );
}
public abstract void removeChild( Service service );
}