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 }