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);

Таким образом, переименование никогда не происходит, и я как бы избегаю проблемы.

Другие вопросы по тегам