我有两个基于同一ecore模型的EMF实例版本。我需要以以下格式准备一个从v1到v2更改的事物列表
public Comparison compare()
{
// Load the two input models
ResourceSet resourceSet1 = new ResourceSetImpl();
ResourceSet resourceSet2 = new ResourceSetImpl();
String xmi1 = "src/test/java/com/equifax/ic/provisioning/service/v1.xmi";
String xmi2 = "src/test/java/com/equifax/ic/provisioning/service/v2.xmi";
load(xmi1, resourceSet1);
load(xmi2, resourceSet2);
// Configure EMF Compare
EMFCompare comparator = EMFCompare.builder().build();
// Compare the two models
IComparisonScope scope = EMFCompare.createDefaultScope(resourceSet1, resourceSet2);
return comparator.compare(scope);
}
@Test
public void testCompare()
{
Comparison comparison = compare();
List<Diff> differences = comparison.getDifferences();
for(Diff d: differences)
{
System.err.println("d.getKind(): "+d.getKind());
System.err.println("d.getMatch(): " + d.getMatch());
System.err.println("State: " + d.getState());
}
assertSame(Integer.valueOf(12), Integer.valueOf(differences.size()));
}
d.getKind(): ADD
d.getMatch(): MatchSpec{left=BillableSystemEvent@1b5340c Application Processed, right=BillableSystemEvent@16c163f Application Processed, origin=<null>, #differences=2, #submatches=2}
State: UNRESOLVED
d.getKind(): DELETE
d.getMatch(): MatchSpec{left=BillableSystemEvent@1b5340c Application Processed, right=BillableSystemEvent@16c163f Application Processed, origin=<null>, #differences=2, #submatches=2}
State: UNRESOLVED
我不能说我真的理解您想要实现的一切,但据我所知,您对EMF Compare格式的差异并不真正感兴趣。相反,您正在尝试为差异生成一种不同的表示形式。
您可能对重新实现IDiffProcessor感兴趣。每次我们检测到变化时,都会通知Diff处理器。默认情况下,我们创建“diff”实例...没有什么可以阻止您生成DML语句。您可以在这里快速了解IDiffProcessor API。
我想在EMF Compare的匹配结果中隐藏一些树节点,因为它们只是对我们的用户没有意义的容器。 null 谢谢, 马蒂亚斯
我试图在一个独立的Java应用程序中使用EMF比较。在Eclipse foruns中,有人建议我使用Git中的版本。 我克隆了存储库。然后,我导入了一个工作区中的所有项目。我读到我只需要主EMF比较库,所以我将项目org.eclipse.EMF.Compare导出到一个可部署的插件和片段中,并将其放在默认eclipse目录的plugins文件夹中。 在我的项目中,我现在可以导入org.eclips
如何在Eclipse上签出和设置EMF比较?我找到了EMF Compare的网站贡献者指南:http://wiki.eclipse.org/emf_compare/contributor_guide 但他们没有足够的指示。我查看了master branch,git存储库中没有包含大量其他依赖项。例如番石榴、纸莎草和UML2。 我正在寻找对EMF进行调整比较,我需要在Eclipse上设置它,这样我就
我有一个基于emf的模型。在模型中,我有一个feature类,我可以向这些feature添加约束。例如,特性A“暗示”特性B。我正在尝试使用emf命令堆栈向特性添加约束。它将约束添加到特征中,但缺少属性。我的代码如下
[编辑]我检查了emf compare模块,结果发现emf compare只提供了“compare with”菜单中的“compare with ether”选项。正在比较两个文件。所以剩下的问题是如何使选项“compare with”>“Latest from Repository”与emf compare editor一起工作