KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xfire > DecoratingObjectServiceFactory


1 package jfun.yan.xfire;
2
3 import java.net.URL JavaDoc;
4 import java.util.Map JavaDoc;
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 /**
12  * This implementation uses a ServiceDecorator to decorate Service
13  * object is creates before this service object is returned.
14  * <p>
15  * @author Ben Yu
16  * Feb 2, 2006 6:23:06 PM
17  */

18 public class DecoratingObjectServiceFactory extends ObjectServiceFactory{
19   private final ServiceDecorator decorator;
20
21   /**
22    * Create a DecoratingObjectServiceFactory object.
23    * @param decorator the Decorator object.
24    */

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 JavaDoc clazz, String JavaDoc name, String JavaDoc namespace, Map JavaDoc properties){
48       return prepare(super.create(clazz, name, namespace, properties));
49   }
50
51   public Service create(Class JavaDoc clazz, URL JavaDoc wsdlUrl)
52       throws Exception JavaDoc{
53       return prepare(super.create(clazz, wsdlUrl));
54   }
55
56   public Service create(Class JavaDoc 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