Эквивалентный метод 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 с разрешением пути к файлу. В любом случае это большой шаг.