On Wednesday 14 of April 2010 14:46:50 Dusan Zatkovsky wrote:
> Bingo! Musim uznat, ze som sa tomu venoval tak 15 minut a mam to s
> javaparser skoro hotove!
>
> Diky diky.
Keby to niekoho zaujimalo, moze sa inspirovat:
File src = new File("src/main/java/test/App.java");
CompilationUnit u = JavaParser.parse(src);
new MethodVisitor().visit(u, null);
// toto sa bude prekladat
tr("tr string 1");
this.tr("tr string 2");
QApplication.translate("context1", "text1");
QApplication.translate("context2", "text2", 3);
// toto sa nebude prekladat
// QApplication.translate("context3", "text3", 3);
// toto sa tiez nebude prekladat
/* test
QApplication.translate("context4", "text4", 3);
*
*/
private static class MethodVisitor extends VoidVisitorAdapter {
private String className;
public void visit(ClassOrInterfaceDeclaration n, Object arg) {
this.className = n.getName();
super.visit(n, arg);
}
public void visit(MethodCallExpr n, Object arg) {
String name = n.getName();
Expression scope = n.getScope();
List args = n.getArgs();
if (name.equals("tr")) {
if (args.size() == 1) {
Translator.translate( className, args.get(0).toString());
}
} else if (name.equals("translate") && scope != null &&
scope.toString().equals("QApplication")) {
if (args.size() == 2) {
Translator.translate(args.get(0).toString(),
args.get(1).toString());
} else if (args.size() == 3) {
System.out.println(args.get(2));
Translator.translate(args.get(0).toString(),
args.get(1).toString(), new Integer(args.get(2).toString()).intValue());
}
}
super.visit(n, arg);
}
}
... ake jednoduche !
--
Dusan
... tykajte mi