NetBeans createFromTemplate передает неправильное значение в ${name}
Я использую такой код в нашем плагине NetBeans:
DataObject result = dTemplate.createFromTemplate(df, name, args);
Который генерирует файл правильно. Однако если существует файл с заданным именем, шаблон занимает новое имя файла (как отражено в объекте результата), но ${name}
значение по-прежнему относится к старому имени. Например, если имя = Hi
а также Hi.java
тогда уже существует Hi_1.java
будет создан, но ${name}
все еще будет Hi
,
Также я немного сбит с толку относительно источника .java
расширение. Мой оригинальный код имел это:
DataObject result = dTemplate.createFromTemplate(df, name + ".java", args);
Но оказывается, что.java не нужен, и я не уверен, где я укажу, что это действительно то, что я хочу?
1 ответ
Я не уверен, что это "правильный путь", но это то, что у меня так далеко, что, кажется, работает:
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;
}
Тогда в коде:
String actualName = getProperName(df, name, 0);
DataObject result = dTemplate.createFromTemplate(df, actualName, args);
Таким образом, переименование никогда не происходит, и я как бы избегаю проблемы.