如果更改的资源是Ecore模型,那么需要刷新ModelNavigator以反映这些更改。
利用一个标准的Ecore模型,您希望创建一个完全的EMF模型,以便在运用EMF的开发过程中充分利用它。
它同样会生成以一个EMFEcore元模型;生成的解析器会实例化从语言的句子中得到的元模型。
在项目的“ecore”文件夹中汇创建一个mysql.ecore文件及mysql.genmodel文件。
注意:在EMF的最新版本(V2.5+)中,具体模型的文件扩展名必须被设为.ecore,而不是.ecorex;
从文件系统中加载ecore文件,它将自动填充Generator的模型名。
我们看到了如何扩展Ecore元模型,将合成的Java方法中的编程式行为概念化。
在本文的例子中,可将它转换为拥有一组子包的Ecore模型。
Jazz组件可以声明新的项类型,这些项类型在UML中指定为类。
在本文最后,我们将拥有一个查看器插件,用于浏览Ecore模型(见图1右侧)。
这有助于区别扩展了的模型与‘初级的’Ecore模型。
要重新创建ecorex.ecore模型,首先在包元素ecorex上右键单击并选择NewChildEClass。
在利用适当的Browse按钮之前,定位从RSA中导出的Ecore文件。
后续小节将讨论如何构建这些编程模型元素;完成后的文件My.ecore可以在参考资料部分找到。
我们现在设计了一个扩展的元模型,并用其描述了一个具体的模型My.ecore(请参见上述的EMFV2.5+文件名称说明)。
对于我们的插件,我们只关注已更改的资源是拥有Ecore扩展的IResource文件的情形。
MTF包含一些对文件和EMF资源提供默认支持的扩展包,ecore和ws就是其中两个。
前三个import语句分别声明UML2模型、ModelerXML模式和EMFEcore模型。
我们需要运行对象并在新视图中显示Ecore模型以确保ModelNavigator可以正常工作。
为genmodel文件选择ecore目录,然后点击Next。
根据需要对Ecore对象划分子类,在EcoreX模型中继续定义其他EClass。
目录中创建了两个文件,forum.ecd和forum.ecore。
在“model”文件夹之下添加两个文件夹,并将它们命名为ecore及schema。
RSA允许您导出一个其他模型格式的RSA模型,比如Ecore或者UML2模型。
存储外部性对象的数据结构可以使用EMF核心模型来定义。
如果我按上面介绍的方法重新运行此项目,我们将发现现在可以浏览Ecore和GeneratorEMF模型(见图8)。
使用图1和EcoreX.ecore文件了解要为哪个EClass创建什么属性。
图5是classictalk核心模型的一个屏幕截图。
但是,当我们真正地在编辑器中打开Ecore文件并开始进行更改时会出现什么情况?