1 package org.codehaus.xfire.java.wsdl;
2
3 import java.util.Set;
4
5 import javax.wsdl.WSDLException;
6
7 import org.codehaus.xfire.AbstractXFireComponent;
8 import org.codehaus.xfire.java.JavaService;
9 import org.codehaus.xfire.service.Service;
10 import org.codehaus.xfire.transport.TransportManager;
11 import org.codehaus.xfire.wsdl.WSDL;
12 import org.codehaus.xfire.wsdl.WSDLBuilder;
13
14 /***
15 * Create a WSDL document for a JavaService.
16 *
17 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
18 * @since Apr 7, 2004
19 */
20 public class JavaWSDLBuilder
21 extends AbstractXFireComponent
22 implements WSDLBuilder
23 {
24 private TransportManager manager;
25
26 public JavaWSDLBuilder( TransportManager manager )
27 {
28 this.manager = manager;
29 }
30
31 /***
32 * @param service
33 * @return
34 */
35 public WSDL createWSDL( Service s )
36 throws WSDLException
37 {
38 JavaService service = (JavaService) s;
39
40 Set transports = manager.getTransports( service.getName() );
41
42 if ( service.getStyle().equals("wrapped")
43 &&
44 service.getUse().equals("literal") )
45 {
46 return new WrappedWSDL( service, transports );
47 }
48 else if ( service.getStyle().equals("document")
49 &&
50 service.getUse().equals("literal") )
51 {
52 return new DocumentWSDL( service, transports );
53 }
54 else
55 {
56 throw new UnsupportedOperationException( "Service style/use not supported." );
57 }
58 }
59 }