EMF 以编程方式比较 uml 文件的本地历史记录
EMF Compare programatically for local history of uml file
我正在尝试将 uml 文件与其本地历史进行比较。是否可以通过编程方式进行?
是的,但是你必须找到合适的历史版本来与你自己进行比较。
有关如何检索给定文件的本地历史记录的信息,请参阅 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());
}
我正在尝试将 uml 文件与其本地历史进行比较。是否可以通过编程方式进行?
是的,但是你必须找到合适的历史版本来与你自己进行比较。
有关如何检索给定文件的本地历史记录的信息,请参阅 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());
}