package com.eucalyptus.ws.client;
import com.eucalyptus.component.Component;
import com.eucalyptus.component.Dispatcher;
import com.eucalyptus.component.DispatcherFactory;
import com.eucalyptus.component.Service;
public class DefaultDispatcherFactory extends DispatcherFactory {
static {
DispatcherFactory.setFactory( new DefaultDispatcherFactory( ) );
}
@Override
public void removeChild( Service service ) {
ServiceDispatcher.deregister( service.getDispatcher( ).getName( ) );
}
@Override
public Dispatcher buildChild( Component parent, Service service ) {
Dispatcher d = null;
if( service.getEndpoint( ).isLocal( ) ) {
d = new LocalDispatcher( parent.getPeer( ), service.getName( ), service.getUri( ) );
} else {
d = new RemoteDispatcher( parent.getPeer( ), service.getName( ), service.getUri( ) );
}
ServiceDispatcher.register( service.getName( ), d );
return d;
}
}