EMF Сравнить программно для локальной истории файла UML

Я пытаюсь сравнить файл UML с его локальной историей. Можно ли сделать это программно?

1 ответ

Решение

Да, но вам нужно будет найти правильный пересмотр истории, чтобы сравнить с собой.

Увидеть org.eclipse.core.resources.IFile.getHistory(IProgressMonitor) для получения информации о том, как получить локальную историю данного файла. Затем вам нужно будет загрузить эти ревизии в качестве ресурсов EMF для использования EMF Compare.

Что-то вроде следующего должно помочь вам начать:

String uri = "platform:/resource/project/path/to/file.ext";
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri));
IFileState[] states = file.getHistory(new NullProgressMonitor());
if (states.length > 0) {
    IFileState lastFromHistory = states[0];
    ResourceSet set = new ResourceSetImpl();
    Resource res = set.createResource(URI.createURI(uri));
    res.load(lastFromHistory.getContents(), Collections.emptyMap());
}
Другие вопросы по тегам