EMF-Ecore模型创建

2008-02-23 09:50:26来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


1 包定义

1.1 UML方式:

a) 定义:

i. 图:





ii. 生成代码:

publicinterface StPackage extends EPackage {

String eNAME = "st";

String eNS_URI = "http://st";

String eNS_PREFIX = "st";



}



1.2 Java方式:

a) 定义:

i. 代码:

public interface stPackage {

public String eName = "st";

public String eNS_URI = "http://st";

public String eNS_PREFIX = "st";

}

说明:interface声明中不能带“@model”标记,接口名称要以“Package”结尾。接

口可以声明以下三个字段eName,eNS_URI,eNS_PREFIX。





1.3 XML方式

a) 定义:

i. 代码:

<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema

targetNamespace=http://st

xmlns:st="http://st">

</xsd:schema>

说明:nsURI的值由targeNamespace指定。nsPrefix的值由targetNamespace导出。

name是targetNamespace的最后一段。



2 类定义

2.1 UML方式

a) 定义:

i. 图:



ii. 生成代码:

public class TeacherImpl extendsEObjectImpl implements Teacher {



}



b) 接口:

i. 说明:如果把类的stereotype设置为<<interface>>,则EMF将使生成的EClass的interface字段设为true,但在EMF 2.1.0的测试版中,EMF并不能识别出这个<<interface>>类型。



c) 抽象类:

i. 图:



ii. 生成代码:

public abstract class TeacherImplextends EObjectImpl implements Teacher {



}



d) 单继承:

i. 图:



ii. 生成代码:

public class JavaTeacherImpl extendsTeacherImpl implements JavaTeacher {



}





e) 多继承

i. 图:



ii. 生成代码:

public interface JavaTeacher extendsTeacher, Nothing, Java {

}



public class JavaTeacherImpl extendsTeacherImpl implements JavaTeacher {



}



2.2 Java方式:

a) 定义:

i. 代码:

/**

* @model

*/

public interfaceStudent{}

说明:需要使用“@model”标记。



b) 接口:

i. 代码:

/**

* @model interface="true"

* */

public interface Teacher{}

说明:通过声明interface属性,在生成代码当中将不会有TeacherImpl类生成。



c) 抽象类:

i. 代码:

/**

* @model abstract="true"

* */

public interface Teacher{}

说明:通过声明abstract属性,在生成代码中TeacherImpl将成为一抽象类。



d) 单继承:

i. 代码:

/**

* @model

* */

public interface JavaTeacher extendsTeacher{}



e) 多继承:

i. 代码:

/**

* @model

* */

public interface JavaTeacher extends Teacher,Java{}

说明:在多继承时,接口的实现类将会扩展排在extends中第一个位置的接口的实现类。上例中,生成代码中的JavaTeacherImpl将会extends TeacherImpl。



2.3 XML方式:

a) 定义:

i. 代码:

<xsd:complexType name="Teacher"/>

说明:类名由complexType中的name属性指定。



b) 接口:

i. 说明:XML没有提供用于定义接口的机制。



c) 抽象类:

i. 代码:

<xsd:complexTypename="Teacher" abstract="true"/>



d) 单继承:

i. 代码:

<xsd:complexTypename="Teacher"/>

<xsd:complexTypename="JavaTacher">

<xsd:complexContent>

<xsd:extension base="st:Teacher"/>

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[总结]J2EE综合应用

下一篇:JDOM 介绍及使用指南