Eclipse ε模型迁移(Flock)-完整副本

Eclipse ε模型迁移(Flock)-完整副本,eclipse,model,migration,flock,epsilon,Eclipse,Model,Migration,Flock,Epsilon,Epsilon Model Migration Language()的网页中有“完整副本”原语的描述。我想用它以最简单的方式复制一个模型,用另一个名称生成一个新模型(但本质上是第一个模型的完整副本)。你能给我看一些代码吗?这是我第一次和Epsilon在一起。谢谢。下面是一个演示从Java运行Flock迁移基于EMF的树模型的简单示例。完整的Maven项目正在进行中 package org.eclipse.epsilon.examples.standalone.flock; 导入java.nio.

Epsilon Model Migration Language()的网页中有“完整副本”原语的描述。我想用它以最简单的方式复制一个模型,用另一个名称生成一个新模型(但本质上是第一个模型的完整副本)。你能给我看一些代码吗?这是我第一次和Epsilon在一起。谢谢。

下面是一个演示从Java运行Flock迁移基于EMF的树模型的简单示例。完整的Maven项目正在进行中

package org.eclipse.epsilon.examples.standalone.flock;
导入java.nio.file.Path;
导入java.nio.file.path;
导入org.eclipse.epsilon.emc.emf.EmfModel;
导入org.eclipse.epsilon.flock.FlockModule;
公共类标准示例{
公共静态void main(字符串[]args)引发异常{
Path root=Path.get(FlockStandaloneExample.class.getResource(“”.toURI()),
modelsRoot=root.getParent().resolve(“模型”);
//建立原始模型
EmfModel original=新EmfModel();
原始设置名称(“来源”);
原始.setReadOnLoad(真);
原件。设置存储处置(假);
原始.setMetamodelFile(modelsRoot.resolve(“Tree.ecore”).toabsolutionPath().toString());
原始的.setModelFile(modelsRoot.resolve(“Tree.xmi”).toabsolutionPath().toString());
original.load();
//设置迁移的模型
EmfModel migrated=新EmfModel();
迁移。设置名称(“迁移”);
migrated.setReadOnLoad(false);
迁移。设置存储处置(true);
迁移的.setMetamodelFile(modelsRoot.resolve(“Tree.ecore”).toabsolutionPath().toString());
迁移的.setModelFile(modelsRoot.resolve(“Tree.migrated.xmi”).toabsolutionPath().toString().replace(“/target/classes/”,“/src/”));
mograted.load();
//运行迁移转换
FlockModule=新的FlockModule();
module.parse(root.resolve(“tree2tree.mig”);
module.getContext().getModelRepository().addModel(原始);
module.getContext().getModelRepository().addModel(已迁移);
module.getContext().setOriginalModel(原始);
module.getContext().setMigratedModel(已迁移);
module.execute();
//保存迁移的模型
module.getContext().getModelRepository().dispose();
}
}

我可以只使用Epsilon Flock代码做同样的事情吗(避免使用java)?是的,你可以使用or。嗨@Dimitris,我在youtube教程中尝试了你提供的过程,效果很好。我还有一个问题:每次运行迁移策略时,我都会找到原始模型的一个新副本,因此,如果运行“n”,我将在目标模型中找到“n”个副本。即使我多次运行迁移策略,我也只需要一个副本,这可能吗?您应该在Flock run配置的目标模型的配置对话框中取消选中“加载时读取”选项。