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 }