View Javadoc

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  }