package squill.generate; import java.io.File; import static java.lang.String.format; import static squill.util.FileUtil.javaFile; import static squill.util.FileUtil.path; import static squill.util.FileUtil.writeFile; import java.util.Map; import java.util.HashMap; public class VelocityTupleGenerator { private final String path; private final String packageName; private final int count; private final VelocityGenerator velocityGenerator; public VelocityTupleGenerator() { this("src", "squill.api.tuple", 10); } public VelocityTupleGenerator(final String path, String packageName, final int count) { this.path = path; this.packageName = packageName; this.count = count; velocityGenerator = new VelocityGenerator(); } public static void main(final String[] args) { final VelocityTupleGenerator generator; if (args == null || args.length == 0) generator = new VelocityTupleGenerator(); else generator = new VelocityTupleGenerator(args[0], args[1], Integer.parseInt(args[2])); generator.generate(); } public void generate() { for (int i = 1; i <= count; i++) { final String fileContents = generate(i); writeFile(fileContents, fileName(i)); } } public File fileName(final int i) { return javaFile(path, packageName,"Tuple"+i); } public String generate(final int i) { final Map<String,Object> inputs = new HashMap<String, Object>(); inputs.put("i",i); inputs.put("pkg", packageName); return velocityGenerator.generate(path(getClass())+"Tuple", inputs); } }