原文:http://macrochen.iteye.com/blog/50323
关键字: EMF
·通过使用emf将xml,java,uml不同的数据模型表现形式关联起来。可以将emf当成一种“胶水”将三者结合起来
·使用emf的几个原因:第一个就是代码生成(uml也可以用来生成代码吧,不可能是说服我使用emf的理由);第二个就是可以作为一种meta data,这个应该属于建模的范畴,uml也应该有这个作用,不能成为说服我使用emf的理由;第三就是支持序序列化和反序列化,可以根据模型定义创建的实体生成xmi文件,以及从xmi文件得到模型实体定义,这个是我所需要的,所以我要学习emf,对于配置文件编辑了一通就是要导出为xml文件来保存嘛,当然现在有很多的工具包可以实现这个功能,从javabean导出xml文件,或者从xml到javabean;第四个就是作为xml,uml和java接口之间的桥梁,还有一个就是能生成用来编辑model的编辑器
·emf和uml之间的区别:实际上emf是uml的一个简单的子集,uml比emf包含的内容更多,比如,uml除了可以描述一个东西的结构之外还可以描述它的行为。
·EMF是MDA的一部分
·EMF Core Model不仅可以通过UML,XML Schema,RDB Schema以及annotated Java Interface来产生,而且可以是任何格式
·ECore Model是所有metamodel的meta
·Model Object继承EObject接口, EObject又继承Notifier接口
·对于没有加@generated的方法,在重新生成的时候,该方法将被保留。如果自定义方法跟EMF定义的方法冲突,那么自定义方法具有优先权。如果希望EMF能对方法进行重新生成,那么给该方法名加Gen后缀即可
·Generator Model是Core Model的一个装饰器,它封装了一些在生成相关model的信息,这些信息存储在.genmodel文件中
·将generator model和core model分开的原因是,这样做可以使metamodel信息更独立,更简单,不用对生成逻辑造成依赖,其缺点就是如果对core model进行了修改,那么会造成generator model没法跟core model同步,为了避免这个缺点,generator model class提供了一些方法用来在core model发生改变的时候能对generator model进行同步更新
·在emf中的Notification Observer称之为adapter,因为它不仅是对状态的侦测,同时也是被观察对象行为的一种扩展。
·要使用adapter对某个对象的行为进行扩展,需要使用adapter factory, adapter factory通常需要一个给定的扩展类型(extension type)来进行适配,这里的扩展类型指的是adpater所实现的某个接口,因此可以对adapter factory声称的adapter进行造型,如果需要adapt的对象已经存在该类型的adapater那么返回改adapter,否则会新建一个。
·被适配的eobject并不关心是否被适配,这个是adapter factory的职责
·EContentAdapter用于attach的EObject中包含的reference, resource发生变化时调用相关的通知方法
·ResourceSet是Resource Factory,如果在加载一个resource的时候,遇到里面的对象引用了位于其他持久存储文本中的对象(cross-document reference),resouceSet将通过代理对象去load引用的文档来完成加载过程,这个也称之为按需加载或者延迟加载
·对于集合类型的属性来说,设置changeable为false是无效的
·对于像那种属性值是通过其他属性计算得来的,可以将volatile设置为true,volatile类型的属性同时也是non-changeable类型的属性
·为了区别某个属性是否需要区别没有设置和禁止设置,需要使用使用unsetable来标记这个属性
·对于引用来说,如果containment标记为true,那么包含的子对象将和父对象位于同一资源文档中,containment referenece又称为by value aggregation association,这里的containment设置为true不仅包括容器对象而且还包括被包含的对象
·只有当reference 对象和父对象处于不同的resource document的时候,才会使用到proxy object。
·一个对象只可有一个container,如果它被添加到一个container中,那么它必须从另外一个container中移除
·当将resolveProxies 设置为false表示source和target位于同一resource中,不需要使用proxy对象,这样可以提高性能。
·如果设置为voltile,那么需要自己实现相应的get代码
·通过设置changeable为false可以避免生成set方法
·IEditingDomainItemProvider 用来提供command,比如添加、删除、修改
分享到:
相关推荐
### EMF自学笔记知识点详述 #### 一、EMF框架概述 EMF(Eclipse Modeling Framework)是Eclipse项目中的一个子项目,它提供了一套用于构建模型驱动的开发工具和应用程序的框架。EMF的主要目标是简化元数据驱动应用...
EMF开发笔记将详细介绍EMF的使用方法、模型驱动的开发机制、命令框架的使用等方面的内容。 Eclipse Forms是Eclipse的表单开发框架之一,它提供了一组高级的表单控件和工具,例如表单控件、表单验证机制等。Eclipse ...
1.6 EMF技术 1.7 GEF技术 1.8 本章小结 第2章 SWT/JFace概述 第3章 SWT编程基础 第4章 使用基本控件与对话框 第5章 容器与布局管理器 第6章 界面开发工具 第7章 高级控件使用 第8章 SWT/Jface的事件处理 第二篇 ...
本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...
### Eclipse插件开发知识点解析 #### 一、Eclipse平台简介 **1.1 Eclipse集成开发环境(IDE)** - **1.1.1 安装及使用Eclipse IDE** - Eclipse IDE是一款免费开源的集成开发环境,适用于Java、C/C++、PHP等多种...
【Eclipse插件开发学习笔记】是一本详细探讨Eclipse插件开发的教程,由张鹏等人编写。这本书深入浅出地介绍了如何利用Eclipse平台进行插件开发,旨在帮助开发者提升在Eclipse环境中定制和扩展功能的能力。通过阅读...
本学习笔记主要涵盖了Eclipse插件开发的第18章和第19章,即“备忘单(CheatSheet)”和“插件开发高级内容”。 第18章“备忘单(CheatSheet)”是Eclipse中一种非常实用的功能,它为用户提供了一步一步的操作指南,...
《Eclipse插件开发学习笔记22-24章》是针对Eclipse平台进行插件开发的深入学习资料,涵盖了GEF(Graphical Editing Framework)的介绍与实践,以及具体的插件开发实例。通过这三个章节的学习,开发者可以掌握Eclipse...
本系列学习笔记主要涵盖了Eclipse插件开发的第22至24章,旨在帮助开发者深入理解并掌握如何利用Eclipse平台构建自定义工具和功能。 首先,第22章“GEF介绍与实现”着重讲解了图形编辑框架(Graphical Editor ...
将从服务器获得的GPC_CEDV配置文件中的EMF、EDVC0、EDVC1、EDVR1、EDVR、EDVT0和EDVTC等信息写入电池的数据Flash中。 #### 六、放电学习 在完成以上步骤后,还需对电池进行放电学习,以进一步优化BMS的性能。这一...
### Java开发环境配置详解 #### 一、安装与配置JDK **1.1 下载JDK** 首先,从官方网站 `http://Java.sun.com/` 下载适合您操作系统的JDK版本。文中提到的是 `jdk-1_5_0_04-windows-i586-p.exe`,这是一个适用于...
综上所述,"Eclipse总结"涵盖了Eclipse的基本使用、源码开发、插件工具的定制,特别是EMF和GMF在模型驱动开发中的应用。学习和理解这些知识点,对于提升开发效率,理解和构建自己的Eclipse插件或图形化工具至关重要...
### dsPIC对于直流无刷BLDC无传感器电机控制的应用笔记 #### 重要知识点解析 **一、dsPIC30F在无传感器BLDC控制中的应用** - **dsPIC30F简介**: dsPIC30F是一款高性能混合信号数字信号控制器(DSC),专为实时控制...
这份"eclipsePluginStudyNoteSourceCode"压缩包提供了从第1章到第24章的Eclipse插件开发学习笔记源代码,涵盖了从基础到进阶的全方面知识。 在Eclipse插件开发中,你需要了解以下核心概念: 1. **插件体系结构**:...
5. "eclipse插件开发快速入门图文教程.pdf" 和 "Eclipse插件开发学习笔记.pdf" 可能是针对Eclipse插件开发的一般性教程,对于理解GEF和Draw2D的上下文非常有帮助。 6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包...
8. **BabelLanguagePack-modeling.ecp-zh_4.4.0**: Eclipse Modeling Framework (EMF) 和 Eclipse Core Projects (ECP) 的汉化包,它们支持模型驱动的开发和Eclipse核心功能的中文界面。 9. **BabelLanguagePack-...
这通常是通过监测电机端的反电动势(EMF)来实现的,反电动势在转子经过定子的线圈时产生,可以在没有通电的情况下测量。控制系统根据反电动势信号来确定何时切换电流,以保持电机平稳运转。 在无传感器BLDC控制中,...
DS1302.DSN可能是该项目的电路设计文件,DS1302.EMF可能是电路的仿真文件,而DS1302.txt可能包含了DS1302的驱动程序代码或使用说明。DS1302资料则很可能是包含芯片数据手册、应用笔记等相关技术文档,是理解和使用DS...
本应用笔记详细介绍了如何利用 ST7MC 在脉宽调制(PWM)导通阶段进行反电动势(Back EMF, BEMF)检测,以解决在无传感器的永磁同步电机(PMSM)或无刷直流(BLDC)电机驱动系统中出现的问题。传统的方法是在 PWM 的...
这个项目名为AN901,可能是某种技术指南或应用笔记,版本号为v500,旨在帮助开发者了解如何在没有电机传感器的情况下有效地控制BLDC电机,以提高效率和可靠性。 描述“dsPIC30F 在无传感器BLDC 控制中的应用”...