GMF:基于Type的连接

      这里介绍基于Type的连接的建立方法,仍然用上一篇基于Reference的连接中用到的例子School,有老师类和学生类,同时老师能够指导多名学生。这种指导关系在GMF编辑器中用连接来表示,基于Type的连接就是在ecore模型中为该连接创建一个类TeacherToStudent,ecore模型对应的ecore_diagram图形如下所示:
GMF:基于Type的连接_第1张图片
      与上一篇的不同在于Teacher中少了表示指导关系的Reference,而是在整个模型中加入了TeacherToStudent类,这个类有两个引用,分别指向Teacher和Student。生成school.genmodel,school.gmfgraph,school.gmftool的过程同前面一样,只是school.gmfmap中Link Mapping的设置有些不同:
    GMF:基于Type的连接_第2张图片
      不同点在于基于Reference的连接的Domain meta information只有最后一项Target Feature需要设置为代表该连接的Reference。而这里这四项都需要设置,containment feature是指模型中包含该类的feature,Element则是代表该连接的类,source和target feature分别是该类到源和目标的引用名字。
      生成的GMF编辑器中的操作是完全一样的,如下图: GMF:基于Type的连接_第3张图片
    这是查看保存semantic model的school文件,内容如下:
<? xml version = " 1.0 "  encoding = " UTF-8 " ?>
< School:School xmi:version = " 2.0 "  xmlns:xmi = " http://www.omg.org/XMI "  xmlns:School = " http://example.School " >
  
< teachers name = " ProfessorLi " />
  
< students name = " Sara " />
  
< students name = " Mike " />
  
< teacherToStudents teacher = " //@teachers.0 "  student = " //@students.0 " />
  
< teacherToStudents teacher = " //@teachers.0 "  student = " //@students.1 " />
</ School:School >

你可能感兴趣的:(GMF:基于Type的连接)