View Javadoc

1   package org.codehaus.xfire.xmlbeans.generator;
2   
3   import java.io.File;
4   import java.io.FileWriter;
5   import java.io.InputStreamReader;
6   
7   import org.apache.velocity.VelocityContext;
8   import org.codehaus.xfire.xmlbeans.generator.WSDLInspector.Service;
9   
10  /***
11   * Generic strategy for creating a client stub.
12   * 
13   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
14   * @since Nov 2, 2004
15   */
16  public class ClientGenerationStrategy 
17      extends VelocityGenerationStrategy
18      implements GenerationStrategy
19  {
20      public void write( Service service, File outputDir, GeneratorTask task ) 
21          throws Exception
22      {
23          File dir = new File(outputDir + File.separator + task.getPackage().replace('.','/'));
24          
25          if ( !dir.exists() )
26              dir.mkdirs();
27  
28          String type = "Soap";
29          if ( service.isRest() )
30              type = "Rest";
31          String name = service.getName();
32          if ( task.getName() != null && !task.getName().equals("") )
33              name = task.getName();
34          
35          File stub = new File(dir, name + type + "Client.java" );
36          
37          if ( !stub.exists() || task.isOverwrite() )
38          {
39              FileWriter writer = new FileWriter(stub);
40              
41              VelocityContext context = new VelocityContext();
42              context.put("package", task.getPackage());
43              context.put("service", service);
44              
45              generateStub(context, writer, new InputStreamReader(getClass().getResourceAsStream("ClientStub.vm")));
46              writer.close();
47          }
48      }
49  
50  }