- 浏览: 2480341 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
一般我们在对EMF模型内容进行输出,这里需要进行一些定制,下面是我在项目中做的一些定制,第一个是要将EMF Model输出的xml中去掉一些名称空间的信息,第二个就是希望把某些信息由Attribute类型转换成Content类型,在得到的content类型的内容默认情况下会对<, >, &等字符进行转换,这个也可以进行控制。借鉴EMF开发指南的做法,其实很简单,这里要注意save和load使用的控制选项设置必须一致。
具体做法如下,
因为保存和加载xml是在XMLResourceImpl里面进行的,所以我们需要从该类继承,overriding 相应的load和save方法,然后在使用到XMLResourceImpl的地方改成使用我们的派生之类,在定制的子类中,我们做了如下实现:
具体做法如下,
因为保存和加载xml是在XMLResourceImpl里面进行的,所以我们需要从该类继承,overriding 相应的load和save方法,然后在使用到XMLResourceImpl的地方改成使用我们的派生之类,在定制的子类中,我们做了如下实现:
java 代码
- public void load(Map options) throws IOException {
- super.load(addOptions(options));
- }
- public void save(Map options) throws IOException {
- super.save(addOptions(options));
- }
- /**
- * 设置序列化/反序列化选项
- *
- * @param options
- */
- private Map addOptions(Map options) {
- // 这里的map只应创建一次
- XMLResource.XMLMap xmlMap = new XMLMapImpl();
- EPackage ePackage = Configuration.INSTANCE.getViewEPackage();
- XMLResource.XMLInfo info = new XMLInfoImpl();
- info.setXMLRepresentation(XMLResource.XMLInfo.CONTENT);
- // 将event的内容在attribute和content之间转换
- EClass eClass = (EClass) ePackage
- .getEClassifier(Configuration.EVENT_NAME);
- xmlMap.add(eClass
- .getEStructuralFeature(Configuration.EVENT_ATTRIBUTE_CONTENT),
- info);
- // 在生成的ddxml中去掉namespace声明
- xmlMap.setNoNamespacePackage(ePackage);
- if (options == Collections.EMPTY_MAP) {
- options = new HashMap();
- }
- options.put(XMLResource.OPTION_XML_MAP, xmlMap);
- // 避免对<,>,&等字符进行转换
- options.put(XMLResource.OPTION_SKIP_ESCAPE, Boolean.TRUE);
- return options;
- }
因为我们这里没有对特殊字符进行转换,所以我们需要在生成的content类型的内容加上<![CDATA, ]]>, 这个我们需要生成自己的XMLSaveImpl,然后overriding getContent(EObject o, EStructuralFeature[] features)这个方法:
java 代码
- protected String getContent(EObject o, EStructuralFeature[] features) {
- if (map == null)
- {
- return null;
- }
- for (int i = 0; i < features.length; i++)
- {
- EStructuralFeature feature = features[i];
- XMLResource.XMLInfo info = map.getInfo(feature);
- if (info != null && info.getXMLRepresentation() == XMLResource.XMLInfo.CONTENT)
- {
- Object value = helper.getValue(o, feature);
- String svalue = getDatatypeValue(value, feature, false);
- if (toDOM)
- {
- Node text = document.createTextNode(svalue);
- currentNode.appendChild(text);
- handler.recordValues(text, o, feature, value);
- }else {
- // 将内容前后加上<![CDATA and ]]>
- svalue = "<![CDATA[\n" +svalue + "\n]]>";
- }
- return svalue;
- }
- }
- return null;
- }
当然了还必须在前面自己的XMLResourceImpl类里面重载createXMLSave()方法:
java 代码
- protected XMLSave createXMLSave() {
- return new DoradoXMLSaveImpl(createXMLHelper());
- }
发表评论
-
Java程序员25个必备的Eclipse插件
2012-01-12 22:36 21945原文:http://www.fromdev.com/2012/ ... -
关于插件更新安装的错误
2007-12-21 20:12 2228在更新插件的时候出现这样的错误: Unable to comp ... -
最近做eclipse branding, features的一些经验
2007-12-16 01:24 4565知道eclipse的splash怎么做 ... -
GEF学习笔记
2007-12-07 20:20 4175GEF以前学习过, 而且还 ... -
SWT布局深入学习
2007-11-30 23:00 7959以下内容是学习"The Definitive Gui ... -
Eclipse Action 深入学习笔记(3)
2007-11-25 17:59 4117filter元素是用来指定当 ... -
Eclipse Action 深入学习笔记(2)
2007-11-25 17:14 5237Object Action 这种Action是跟弹出的上下文菜 ... -
Eclipse Action 深入学习笔记(1)
2007-11-25 17:07 7687以前做插件用到的ActionSet都只是依葫芦画瓢,没有真正理 ... -
JFace Text Editor完全掌握之终极指南(4)
2007-11-24 17:08 5690错误标识(Error Marking) Error Marki ... -
JFace Text Editor完全掌握之终极指南(3)
2007-11-24 16:56 5526内容大纲 之所以要给编 ... -
JFace Text Editor完全掌握之终极指南(2)
2007-11-24 16:53 6748最后一步就是实现各种功能 语法高亮 首先我们要实现的是语法高亮 ... -
JFace Text Editor完全掌握之终极指南(1)
2007-11-24 16:17 10012JFace Text Editor是JFace里面一个功能强大 ... -
最近的Eclipse plugin开发总结
2007-11-24 11:30 4951List控件没有提供addDblClickListener方法 ... -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
2007-11-24 11:22 4684在eclipse3.3中,JavaFileEditor ... -
Eclipse WTP Projects Facets实战指南(2)
2007-11-21 21:13 5277修饰工作 给facet在选择列表中添加图标 格式如下: xml ... -
Eclipse WTP Projects Facets实战指南(1)
2007-11-21 20:21 9603这个文章基本是"Building Project F ... -
也说关于WizardPage的动态生成
2007-11-05 14:26 5167在Eclipse中一个Wizard=Wiza ... -
关于多页编辑器中不同Editor之间的Redo&Undo冲突的解决
2007-09-03 15:17 4080在我们的插件工具的开 ... -
TextEditor原理分析笔记
2007-08-23 15:48 3391Editor的语法着色原理:Eclipse使用damage , ... -
最近的Eclipse开发总结
2007-08-23 15:46 2136java.lang.IllegalAccessError: t ...
相关推荐
2. **多记录结构**:EMF文件由一系列记录组成,每个记录代表一个图形操作,如画线、填充区域或设置颜色。 3. **设备独立性**:EMF格式不依赖于特定的显示器或打印机,因此可以在不同设备间保持一致性。 4. **颜色和...
传统的WMF格式虽然也能够存储矢量图形信息,但在处理高分辨率输出时存在一定的局限性,尤其是在不同分辨率下无法保证图像质量的一致性。EMF格式克服了这些缺点,成为了一种更为优秀的图形文件格式。 - **设备独立性...
1. **文本提取**:EMF文件可能包含文本信息,这些文本通常是以矢量形式存储的。文本提取过程是从EMF文件中识别并提取出可读的文本内容。这通常需要解析文件结构,找到包含文本的数据块,并将它们转化为人类可读的...
这些生成的代码可以用于存储、加载和操作模型实例。 #### 三、EMF代码生成 EMF提供了强大的代码生成能力,能够根据EMF模型自动生产Java代码。这包括模型类、序列化和反序列化代码、编辑器、视图等。EMF的代码生成...
- XML是一种标记语言,用于存储和传输结构化数据,它与EMF模型之间的映射使得XML数据能够被EMF理解和处理。 2. **创建EMF模型** - 使用EMF,首先需要创建一个Ecore模型,这是EMF的数据模型定义,包含了类、属性和...
EMF(Eclipse Modeling Framework)是Eclipse基金会推出的一个开源框架,主要用于构建基于模型的软件系统。它提供了一种统一的方式来表示、存储和操作复杂的结构化数据,是面向对象建模的强大工具。本教程旨在帮助...
EMF(Enhanced Metafile)和WMF(Windows Metafile)是两种常见的矢量图形文件格式,主要用于存储图像数据,特别是在Windows操作系统环境下。这两种格式都允许无损缩放和复杂图形的绘制,但EMF是WMF的增强版本,提供...
EMF,另一方面,是Microsoft Windows操作系统中的一个元文件格式,它可以存储矢量和光栅图形信息,适合在Windows应用程序之间交换图形数据。 这个"SVG转EMF"的示例代码提供了在Java环境下进行这种转换的方法。首先...
EMF (Enhanced Metafile) 是Windows操作系统中用于存储矢量图形和光栅图像的文件格式,它在处理复杂的图形和图像是非常有效。而PNG(Portable Network Graphics)则是一种无损压缩的位图格式,广泛应用于网页设计、...
3. **持久化**:EMF支持模型的持久化,可以将模型数据存储为XML文件或其他格式。 4. **模型转换**:EMF提供了模型转换工具,允许在不同模型之间进行转换,增强了灵活性和互操作性。 5. **图形单元(Graphical User ...
EMF是一种矢量图形格式,通常在Windows系统中用于存储图形信息,而PNG是一种广泛使用的位图格式,支持透明度和无损压缩,常用于网页和其他数字媒体。 在C#编程环境下,进行这种图像格式转换通常需要利用.NET ...
3. **资源管理**:`Resource`接口是EMF中用于处理模型存储的关键,它可以加载和保存模型实例。`EObject.eResource()`方法可以获取对象所在的资源,而`Resource.load()`和`Resource.save()`则用于读写模型数据。 4. ...
而位图则是像素图像,适用于存储照片或包含大量细节的图像。 描述中的“emf转bmpemf”可能是描述转换过程或者程序名,它强调了转换的核心操作。在这个过程中,我们需要利用编程语言(如C++)和相关的图形处理库来...
- **artifacts.jar**:通常存储插件的元数据,如依赖关系、版本信息等。 - **plugins**:此目录可能包含了多个Eclipse插件,EMF插件可能就是其中之一,每个插件都是一个独立的JAR文件,用于扩展Eclipse的功能。 - **...
3. **序列化与反序列化**:EMF支持将模型实例序列化为标准的XMI格式,这是一种通用的模型交换格式,同时也支持直接存储为XML。 4. **API支持**:提供了一组丰富的API,允许开发者在程序中创建、操作和管理模型实例...
此外,还可以生成XML序列化代码,使模型能够在持久化存储和传输中使用。 3. **模型操作**:EMF提供了丰富的API,包括创建、修改、查询模型对象,以及保存和加载模型到XML文件。 4. **图形化编辑器**:EMF集成了GEF...
微软增强型元文件(Enhanced Metafile,简称EMF)是一种图形文件格式,主要用于在Windows操作系统中存储矢量图形和光栅图像数据。这种格式在1992年推出,作为Windows 3.x的Windows Metafile (WMF) 格式的升级版本,...
EMF 文件则是一种更高级的矢量图形格式,它可以存储图形设备接口(GDI)调用,支持多种打印和绘图操作。与 SPL 文件相比,EMF 文件更易于读取和分析,适合用于打印监控目的,如跟踪打印作业、分析打印成本或实施打印...
2. **artifacts.jar**:通常存储项目的元数据和依赖项,它有助于构建系统识别和管理项目所依赖的其他库。 3. **features**:在Eclipse环境中,"features"目录通常包含XML文件,这些文件描述了EMF或GEF的功能集,包括...