Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 一种Map与JavaBean可配置转换的实现
【标  题】:一种Map与JavaBean可配置转换的实现
【关键字】:Map,JavaBean
【来  源】:http://blog.csdn.net/desertfish/archive/2007/04/17/1567701.aspx

一种Map与JavaBean可配置转换的实现

Your Ad Here

 

MapModel(JavaBean)之间存在逻辑映射关系,在存在Map实例的情况下,可通过调用该工具获得对应的Model实例,在存在Model实例的情况下,可通过调用该工具获得对应的Map实例。该工具支持JavaBean包含(成员类包含,成员类list包含),继承关系,使用composite模式。

利用XML配置文件绑定Map的key与Model成员之间的映射关系,即在配置文件中需映射指定Map中key与Model的成员变量名。
配置文件有两种,一种具体的mapping配置,如下
Hello.xml
<mapping class=” sample.lizhihui.Hello” externd=“sample.lizhihui.Say”>
<property
                        Key="NAME"
                        Member="name"
                        null="map"
                 />
< SingleClass
                        Key="NAME_LIST"
                        Member="nameList"
                        null="map"
                        reference=”hello1
                 />
< MultiClass
                        Key="NAME_BEAN"
                        Member="nameBean"
                        null="map"
                        reference=”hello2
                 />
 
</mapping>
另一种配置文件是mpping索引列表,如下。
MapModelMapping.xml
<list>
<element reference=”hello value=”conf/mapmodel/hello.xml”/>
<element reference=”hello1 value=”conf/mapmodel/hello1.xml”/>
<element reference=”hello2 value=”conf/mapmodel/hello2.xml”/>

</list> 

类图

ModelMapBuilderFactory: ModelMap映射构建器工厂,负责create builder。初始化时生成全部构建规则树,并把树Root保存在Map中。

ModelMapBuilderModelMap映射构建器,根据输入的MapModel执行映射规则,完成映射。

MappingRuler:映射规则接口,定义映射方法。

Root:映射规则树Root,通过遍历树中节点列表List<Node>并调用节点的映射方法完成映射。

Node:映射规则节点类,Abstract Class,声明节点共通成员,不实现接口映射方法。

Leaf:映射规则叶子节点类,对应配置文件中type为基本数据类型,实现接口映射方法,完成最终数据映射。

SingleBranch:映射规则单根分支节点类,对应配置文件中typeSingleClass,根据入力参数获得被映射的MapModel,调用Root成员的映射方法,完成映射。

MultiBranch:映射规则多根分支节点类,对应配置文件中typeMultiClass,根据入力获得被映射的MapModelList,遍历List调用Root成员的映射方法,完成映射。

时序 

图表示通过配置文件转换model-to-map的调用关系

1.1User调用MapModelBuilderFactorygetBuilder()方法

1.2MapModelBuilderFactory返回MapModelBuilder实例

1.3、调用MapModelBuilderbuildMap()方法构建map,或者调用MapModelBuilderbuilderModel()方法构建model

2.1MapModelBuilderFactory调用inti()初始化

2.2MapModelBuilderFactory创建MapModelBuilder实例

2.3、返回MapModelBuilder实例

3.1MapModelBuilder调用RootbuildMap()方法或者buildModel()方法

4.1Root调用NodebuildMap()方法或者buildModel()方法

 

Java开源旅程之二 MyEclipse上配置服务器(Tomcat为例):【上一篇】
模拟自助银行后台程序:【下一篇】
【相关文章】
  • 微软WebService之MapPoint分析手记(二):MapPoint接口架构一览
  • GIS开发随笔(6)——MapNet中在Web.Config里指定ServerName和ServiceName
  • GIS开发随笔(7)——对MapNet控件的几点个人观点
  • 微软WebService之MapPoint分析手记(一):MapPoint试用Step By Step
  • Google Map API (一)
  • 在for循环里对std::map进行元素移除
  • nmap的用法
  • 图形图像处理-之-高质量的快速的图像缩放 下篇 三次线性插值和MipMap链
  • HashMap与ArrayList的填加与迭代方法
  • 终结守卫者模式在HashMap关系数据映射技术软件PVO中的应用
  • 【随机文章】
  • 前个排面试碰到部分技术问题
  • 有关微软新一代开发技术ASP+的介绍
  • JBoss Rules 学习(七): Drools规则语言详解(下)
  • 为ASP.NET应用缓存Oracle数据
  • 创建基于ASP.NET的SMTP邮件服务
  • 一个耧上一匹牲口一个人
  • VB图像处理之图像的亮度对比度调整
  • TICQClient Version 1.19 beta-2 (ICQ客户端控件)
  • 汇编的数据无类型
  • 用Photoshop制作水晶玻璃瓶
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.