View Javadoc

1   package org.codehaus.xfire.java.wsdl;
2   
3   import java.util.Iterator;
4   import java.util.Set;
5   
6   import javax.wsdl.Message;
7   import javax.wsdl.Part;
8   import javax.wsdl.WSDLException;
9   
10  import org.codehaus.xfire.java.JavaService;
11  import org.codehaus.xfire.java.Operation;
12  import org.codehaus.xfire.java.type.Type;
13  
14  
15  /***
16   * Creates RPC/Literal style WSDL documents for a JavaService.
17   * 
18   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
19   */
20  public class RPCLiteralWSDL
21      extends AbstractWSDL
22  {
23      public RPCLiteralWSDL( JavaService service, Set transports ) throws WSDLException
24      {
25          super( service, transports );
26      }
27      
28  	/***
29  	 * @see org.codehaus.xfire.java.wsdl.AbstractWSDL#createInputParts(javax.wsdl.Message, org.codehaus.xfire.java.Operation)
30  	 */
31  	protected void createInputParts( Message req, Operation op )
32  	{
33          // add parameters as parts
34          for ( Iterator itr = op.getParameters().iterator(); itr.hasNext(); )
35          {
36              String param = (String) itr.next();
37              Class clazz = op.getParameterClass( param );
38              Type type = ((JavaService) getService()).getTypeMapping().getType( clazz );
39               
40              Part part = getDefinition().createPart();
41              part.setName( param );
42              part.setTypeName( createJavaxQName(type.getSchemaType()) );
43  
44              addDependency( type );
45  
46              req.setUndefined(false);
47              req.addPart( part );
48          }
49  	}
50  
51  	/***
52  	 * @see org.codehaus.xfire.java.wsdl.AbstractWSDL#createOutputParts(javax.wsdl.Message, org.codehaus.xfire.java.Operation)
53  	 */
54  	protected void createOutputParts( Message req, Operation op )
55  	{
56          Class clazz = op.getOutParameterClass();
57          
58          // response message part
59          Part part = getDefinition().createPart();
60  
61          Type type = ((JavaService) getService()).getTypeMapping().getType( clazz );
62          addDependency( type );
63          
64          part.setName( op.getOutParameterName() );
65          part.setTypeName( createJavaxQName(type.getSchemaType()) );
66          
67          req.addPart( part );
68  	}
69  }