1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
package classe;
import java.io.File;
import java.io.*;
import org.antlr.stringtemplate.*;
import javacodegenst.*;
public class MaClasse {
public static void main (String [] args){
String nom="UneClasse";
StringTemplateGroup stcodeS=STGClass.main();
StringTemplate classService=stcodeS.getInstanceOf("class");
classService.setAttribute("package","classe"); // crée le package
classService.setAttribute("name",nom); // attribue le nom de la classe, donc du fichier .java
classService.setAttribute("ext",""); // ajoute le mot clé "Implements"
classService.setAttribute("nomS","Runable"); // ajoute Runable
classService.setAttribute("methods.{returnType,name,param,body}","" ,nom,"","");
StringTemplate classCorp=stcodeS.getInstanceOf("corps"); // crée le corps du programme
String s="String version="+"\"version 1.0 \"";
classCorp.setAttribute("statements", s+";\n"+"System.out.println("+"version"+");"+"\n"); // ajoute une instruction
classService.setAttribute("methods.{returnType,name,param,body}","void" ,"run","",classCorp); // crée la méthode run() du Thread
try {
String pack="classe";
nom=nom.substring(0,1).toUpperCase()+nom.substring(1,nom.length());
File f=new File("c:\\cwsjava\\"+pack);
f.mkdir();
f=new File("c:\\cwsjava\\"+pack+"\\"+nom+".java");
f.createNewFile();
FileWriter fw=new FileWriter(f);
fw.write(classService.toString()); // écrit le contenu dans le fichier physique créé
fw.close();
}
catch (IOException ex) {ex.printStackTrace(System.out);}
}
} |
Partager