`
youngerbaby
  • 浏览: 115103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EMF的一些总结(1)——关于Packages and Factories

阅读更多
Packages and Factories
package和factory类帮助你访问模型的metadata,或者创建模型的实例。
通过package可以轻松的获得模型的EClass对象,如:

EClass purchaseOrderClass = epo2Package.getPurchaseORder();
例外还有一种方法也可以通过package类对象获得model的EClass对象,如:
EClass purchaseOrderClass =
  (EClass)epo2Package.getEClassifier(
"PurchaseOrder");
可以通过类似的方法访问模型的属性、引用还有其他更多的信息。
tip: EEnum是EDataType的子类
获得package对象的方法:
1.通过加载外部.ecore文件,从加载的Resource对象中获取,如:
ResourceSet resourceSet = new ResourceSetImpl();
URI fileURI 
= URI.createURI("/ExtendedPO2.ecore");
Resource resource 
= resourceSet.getResource(fileURI, true);
EPackage epo2Package 
= (EPackage)resource.getContents().get(0);
2.通过package registry来访问,package registry提供了namespace URIs到EPackage的映射关系。如果是插件方式的开发,通过定义扩展点可以在插件加载的时候把package对象注册到registry中,如:
<extension point="org.eclipse.emf.ecore.generated_package">
  
<package
     uri 
= "http:///com/example/epo2.ecore"
     
class = "com.example.epo2.EPO2Package" />
</extension>
如果不是插件开发方式,可以功过构造函数来将package注册到Registry实例中,如:
protected EPackageImpl(String packageURI, EFactory factory) {
  
super();
  Registry.INSTANCE.put(packageURI, 
this);
  
}

注册后可以功过下面代码获得package对象:
EPackage.Registry.INSTANCE.getEPackage() 

分享到:
评论

相关推荐

    使用浮动窗口以及emf文件制作的迷宫——某学校的课设

    使用迷宫以及emf文件的生成加载技术制作的迷宫,其实就是根据http://www.comprg.com.cn/detail.asp?hw_id=7061上的说明做出来的工程。 程序中迷宫中的小人可以自由移动,胜利或失败之后还会有绚丽的提示。

    emf文件格式详解

    **微软EMF文件格式详解.pdf**:这份文档很可能是微软官方或第三方专家提供的关于EMF格式的详细指南。通常,它会涵盖EMF的基本结构、记录类型、图形操作、颜色管理、图元定义等内容。通过阅读这份文档,读者可以了解...

    微软emf文件格式详解

    1. **记录头**:定义了EMF文件的基本属性,如文件类型、版本号等。 2. **记录体**:包含了实际的绘图指令,这些指令按照顺序执行,以重现图像。 3. **对象表**:记录了所有使用的绘图对象,如笔、刷子等,以及它们的...

    EMF读取XML

    1. **EMF模型与XML的关系** - EMF模型是面向对象的,它定义了数据结构和业务规则,可以看作是XML数据的抽象表示。 - XML是一种标记语言,用于存储和传输结构化数据,它与EMF模型之间的映射使得XML数据能够被EMF...

    EMF文件提取文本,预览,打印

    1. **文本提取**:EMF文件可能包含文本信息,这些文本通常是以矢量形式存储的。文本提取过程是从EMF文件中识别并提取出可读的文本内容。这通常需要解析文件结构,找到包含文本的数据块,并将它们转化为人类可读的...

    SVG转EMF的示例代码

    本示例代码是关于如何使用Java将SVG转换为EMF,这在需要在Windows系统中处理矢量图形时非常有用,因为EMF是Windows系统广泛支持的格式。 SVG是一种基于XML的开放标准,用于描述2D图形。它支持复杂的形状、路径、...

    java开发工具EMF插件

    3. **业务流程建模**:在业务流程管理中,EMF可以支持BPMN(Business Process Model and Notation)或其他流程建模标准。 4. **配置管理**:EMF可用于系统配置文件的管理和版本控制,确保配置的一致性和可追踪性。 ...

    EMF 自学笔记5

    这通常是通过定义转换规则来实现的,EMF提供了一些转换框架,如ATL(Atlas Transformation Language)和QVT(Query/View/Transformation)。 此外,EMF还支持模型的序列化和反序列化,即将模型实例转换为XML或其他...

    EMF XSD SDK

    6. **Persistence and Transformation**:EMF支持多种持久化策略,如Eclipse的Native XML存储,以及数据转换工具,如XSLT,方便数据在不同格式间转换。 在实际开发中,EMF XSD SDK可以帮助开发者快速构建基于XML的...

    emf文件和wmf的转换

    1. **记录解析**:EMF和WMF的记录结构不同,转换时需要逐个解析并重新构造。 2. **颜色和图形处理**:EMF支持的颜色模型和图形操作可能比WMF更复杂,转换时需保持视觉效果的一致性。 3. **坐标系统**:EMF和WMF可能...

    将EMF图片格式转换成PNG

    EMF (Enhanced Metafile) 是Windows操作系统中用于存储矢量图形和光栅图像的文件格式,它在处理复杂的图形和图像是非常有效。而PNG(Portable Network Graphics)则是一种无损压缩的位图格式,广泛应用于网页设计、...

    emf教程入门和插件

    1. **EMF基础** EMF基于MDE(Model Driven Engineering)理念,允许开发者创建、编辑和管理模型。模型是业务逻辑的一种抽象表示,可以用来生成代码、文档和其他工程制品。EMF提供了元数据模型(EMD,EMF Meta-Data...

    emf转bmp代码

    1. **理解EMF和BMP格式**:首先,开发者需要理解EMF和BMP文件的结构。EMF包含一系列图形命令,而BMP则是一个二维像素阵列,包含颜色信息。 2. **读取EMF文件**:使用Windows API函数,如`PlayMetaFile()`,可以读取...

    emf eclipse

    1. "使用 EMF 进行元建模:生成具体、可重用的 Java 代码片段" 这篇文档可能详细讲解了如何使用EMF的代码生成功能,将元模型转换为可执行的Java代码,实现模型到代码的映射,提高代码的标准化和可维护性。...

    emf-runtime-2.7.2

    1. **元模型(Metamodel)定义**:EMF允许开发者使用Ecore语言定义元模型,这是对数据模型的一种抽象描述。 2. **代码生成**:基于元模型,EMF可以自动生成Java类和其他相关代码,这些代码可以直接在应用程序中使用...

    eclipse emf&gef

    1. **定义模型**:首先使用EMF定义模型。 2. **创建视图**:使用GEF创建一个图形化的视图来显示模型。 3. **实现交互**:通过GEF提供的工具实现实时的编辑功能。 #### 四、总结 Eclipse EMF与GEF是两个非常强大的...

    EMF模型文件对比/比较(emf.compare)

    EMF(Eclipse Modeling Framework)模型文件对比/比较(emf.compare)是针对基于EMF构建的模型文件进行差异分析的工具。EMF是Eclipse项目中的一个子项目,它提供了一种创建、操作和共享复杂的领域特定语言(DSL)...

    eclipse的emf插件

    1. **数据模型**:EMF允许开发者定义自己的数据模型,这些模型可以是XML Schema、UML或其他形式的元数据。模型定义了数据结构,包括类、属性、关系等。 2. **代码生成**:一旦模型创建完成,EMF可以自动生成Java源...

    emf-runtime-2.6.1

    1. **模型定义**:通过扩展XML Schema Definition (XSD) 或者ECORE(EMF的元数据模型)来定义模型结构。ECORE是一种元元模型,用于描述任何概念模型,它是EMF的基础。 2. **代码生成**:根据模型定义自动生成Java类...

Global site tag (gtag.js) - Google Analytics