1 package jfun.yan.xfire; 2 3 import java.net.URL ; 4 import java.util.Map ; 5 6 import org.codehaus.xfire.service.Service; 7 import org.codehaus.xfire.service.binding.BindingProvider; 8 import org.codehaus.xfire.service.binding.ObjectServiceFactory; 9 import org.codehaus.xfire.transport.TransportManager; 10 11 18 public class DecoratingObjectServiceFactory extends ObjectServiceFactory{ 19 private final ServiceDecorator decorator; 20 21 25 public DecoratingObjectServiceFactory(ServiceDecorator decorator) { 26 this.decorator = decorator; 27 28 } 29 30 public DecoratingObjectServiceFactory(BindingProvider provider, 31 ServiceDecorator decorator) { 32 super(provider); 33 this.decorator = decorator; 34 } 35 36 public DecoratingObjectServiceFactory(TransportManager manager, BindingProvider provider, 37 ServiceDecorator decorator) { 38 super(manager, provider); 39 this.decorator = decorator; 40 } 41 42 public DecoratingObjectServiceFactory(TransportManager manager, 43 ServiceDecorator decorator) { 44 super(manager); 45 this.decorator = decorator; 46 } 47 public Service create(Class clazz, String name, String namespace, Map properties){ 48 return prepare(super.create(clazz, name, namespace, properties)); 49 } 50 51 public Service create(Class clazz, URL wsdlUrl) 52 throws Exception { 53 return prepare(super.create(clazz, wsdlUrl)); 54 } 55 56 public Service create(Class clazz){ 57 return prepare(super.create(clazz)); 58 } 59 60 private Service prepare(Service endpoint){ 61 return decorator.decorate(endpoint); 62 } 63 } 64 | Popular Tags |