一种基于 EMF 模型的在 GEF 中判断创建连接线有效性的方法
2010-04-02 00:00:00 来源:WEB开发网查看原图(大图)
我们定义连接线代表的关联关系是:连接线发起端和目的端的模型分别对应的标签符合 Schema 中的定义。 假如现在有四个图形分别对应着模型 A、B1、B2 和 B3。 如果在它们之间建立连接线的时候,想让连接线目的端模型 B1 作为发起端模型 A 的子模型,即后台保存的 XMI 文档中,B1 对应的标签是作为子标签嵌套在 A 对应标签里的,这时就需要用Schema 验证该 XMI 文档的合法性。现在想在创建连接线的时候进行动态的验证,即如果连接线发现目的端和发起端对应的模型不符合 Schema 中的定义时,该连接线就不被创建。由于B3 不是 A 的元素,所以在 A 和 B3 之间创建连接线时该连接线就不能创建,如图5所示。
图 5. A 和 B3 不允许建立连接
图4 Schema 文件中复杂类型 A 对应的模型生成的 Java 类中有 interface AType 和 class ATypeImpl(此处为真实的类名)。当规定元素 B1 的最大出现次数为1的话,则在 interface AType 和 class ATypeImpl 中会有相应的 void setB1(B1Type) 和 B1 getB1( ) 方法;若元素B2 的最大出现次数不限的话,则在 interface AType 和 class ATypeImpl 中会有相应的 EList getB2( )方法。
另外,类型 A 里面包含了元素 sourceConn 和 targetConn。 在 interface AType 和 class ATypeImpl 中会有 EList getSourceConn( ) 和 EList getTargetConn( ) 方法。这两个方法是为了维护从 A 出发或者结束到 A 的连接线。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接