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 ServerGenerationStrategy
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 File stub = new File(dir, service.getName() + ".java" );
29
30 if ( !stub.exists() || task.isOverwrite() )
31 {
32 FileWriter writer = new FileWriter(stub);
33
34 VelocityContext context = new VelocityContext();
35 context.put("package", task.getPackage());
36 context.put("service", service);
37
38 generateStub(context, writer, new InputStreamReader(getClass().getResourceAsStream("ServerIntfStub.vm")));
39 writer.close();
40 }
41 }
42
43 }