0

J'utilise un code tel que cela dans notre plug-in NetBeans:

DataObject result = dTemplate.createFromTemplate(df, name, args); 

qui génère le fichier correctement. Cependant s'il y a un fichier avec le nom donné le modèle occupe un nouveau nom de fichier (comme reflété dans l'objet de résultat) mais la valeur ${name} fait toujours référence à l'ancien nom. Par exemple. si name = Hi et Hi.java existe déjà, alors Hi_1.java sera créé mais ${name} sera toujours Hi.

Aussi je suis un peu déconcerté quant à la source de l'extension .java. Mon code d'origine avait ceci:

DataObject result = dTemplate.createFromTemplate(df, name + ".java", args); 

Mais il se le .java est inutile, et je ne sais pas où je précise que c'est bien ce que je veux?

Répondre

0

Je ne suis pas sûr que ce soit le « droit chemin », mais c'est ce que j'ai jusqu'à présent qui semble fonctionner:

private String getProperName(DataFolder f, String name, int suffix) { 
    String actualName = name; 
    if(suffix > 0) { 
     actualName = actualName + "_" + suffix; 
    } 
    for(DataObject chld : f.getChildren()) { 
     if(chld.getName().equals(actualName)) { 
      suffix++; 
      return getProperName(f, name, suffix); 
     } 
    } 
    return actualName; 
} 

Puis dans le code:

String actualName = getProperName(df, name, 0);   
DataObject result = dTemplate.createFromTemplate(df, actualName, args); 

Ce Ainsi, le changement de nom ne se produit jamais et j'évite en quelque sorte le problème.