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