Эквивалентный метод fetchCompleteState в RTC Java Java API

Есть ли эквивалентный метод для fetchCompleteState на versionableManager для извлечения данных исторических файлов? У меня проблемы с получением имени файла, добавленного в предыдущие списки изменений. Вот пример:

Changelist 1:     
add file: src/newFile.java

Changelist 2:     
modify file: src/newFile.java

Changelist 3:     
rename file: src/newFile.java -> src/newFile_rename.java

И теперь, когда я пытаюсь получить имя файла или путь к файлу файла в списке изменений 1, используя следующий код:

// change is IChange, versionableManager is IVersionableManager     
// method getFilePath retrieve file path using ancestors     
file = versionableManager.fetchCompleteState(change.afterState(), monitor);     
if (file instanceof IFolder) {         
    IFolder folder = (IFolder) file;         
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);
    fileName = folder.getName();      
} else {
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);    
    fileName = ((FileItem) file).getName();     
}

Я получаю имя и путь к переименованному файлу. Как получить старое имя и путь?

1 ответ

Решение

Ок нашел решение:

IFileItemHandle fileItemHandle = (IFileItemHandle) IFileItem.ITEM_TYPE.createItemHandle(change.afterState().getItemId(), change.afterState().getStateId());
file = versionableManager.fetchCompleteState(fileItemHandle, monitor);

if (file instanceof IFolder) {         
    IFolder folder = (IFolder) file;         
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);
    fileName = folder.getName();      
} else {
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);    
    fileName = ((FileItem) file).getName();     
}

Но все еще есть isses с разрешением пути к файлу. В любом случае это большой шаг.

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