视频理解的基本介绍与一些2D/3D的解决方法

以下内容是基于b站OpenMMLab系列课程视频理解部分进行总结归纳,如有错误恳请指出。

1. 视频理解的介绍与光流的概念


1.1 关于视频理解

  • 关于视频理解的应用:

1)基于视频内容的检索
比如利用关键字搜索视频,或者是搜索视频的内容
2)关键片段定位
比如快速定位视频的核心主要内容,或者截取最精彩的内容
3)兴趣分析与推荐
比如根据用户所观看的历史视频来推荐新视频,或者是根据相似用户观看的历史视频来推荐新视频

  • 于视频理解的基本任务:

1)行为识别(Action Recognition)
行为识别就是视频领域中的分类任务,一般是识别视频片段中出现的动作(通常为短视频)
主要解决的问题的What,比如对这个短视频进行分类,是什么?
2)时序动作检测(Temporal Action Detection)
在长视频中定位特定动作出现的时间段,并对动作进行分类
时序检测就是指要定位动作出现的时间段(when问题),动作检测就是检测是一个什么样的动作(what问题)
3)时空动作检测(Spatio-Temporal Action Detection)
时空检测的目标,不仅仅是关注动作发生在什么时间段哪一帧,还需要判断帧图像的哪个位置上
需要检测的是(what+when+where问题),什么动作+动作发生在哪个时间段+关键人物在哪?动作发生在哪个位置?
识别并定位视频中出现的人和动作

以上三种任务的相互联系如下:
在这里插入图片描述

(这幅图的重点可以看见,是需要对动作进行分类,还需要在空间与时序上回归,视频 = 时间 + 空间)

  • 关于视频理解的主要挑战:

1)如何表示视频中的动作
动作(action)=外观(appearance)+运动(motion)
其中:外观appearance包含了空间上的特征(图像帧),而运动motion包含了时间特征、运动特征与光流特征(帧间运动)

解决这个挑战有以下几种思路:
思路1:独立提取图像特征再进行时序建模
在这里插入图片描述

先对每一帧提取特征(空间特征),然后对所有帧的特征提取运动信息,也就是进行时序建模

思路2:利用一些人工设计(比如光流)来估计像素的运动信息从而提取运动特征,再与外观特征进行融合
在这里插入图片描述

思路3:直接从多帧图像中计算运动特征(比如使用3D卷积)
在这里插入图片描述

2)如何高效处理大量的视频数据
因为对视频的数据量远大于图像,一段5s的短视频包含了150+的帧图像,这对计算方面提出了挑战。

3)如何降低视频数据的标注成本
视频数据的标注是昂贵的,网络上有海量的视频数据但是标注得粗糙或者甚至是没有标注,标注的数据集标注准确但是数量相对较少,那么能否有效的利用这些数据训练模型?

1.2 关于光流

  • 光流(Optical Flow)的概念:
    光流是视频中物体运动的描述,是图像平面上的向量场
    光流通常是基于相邻图像帧进行估计得到的,实际上就是把图像上的每一个点位移表达了出来
    如右图,展现了每一个点的位移方向和大小
    在这里插入图片描述

  • 光流的估计:
    光流的估计是基于亮度不变假设来进行的,也就是说一个点其在t0时刻与t1时刻的亮度应该是保持一致的,改变的只是其位置。

  • 光流的可视化:
    1)两幅灰度图:分别表示x,y分量,亮度越大幅度越大
    2)向量场:常用于稀疏光流
    3)单幅彩色图:用亮度表示速度的大小;用色彩表示速度的方向

  • 光流有两种类型:
    1)稀疏光流:只跟踪少量的感兴趣点
    2)稠密光流:估算所有像素的光流(其中用颜色表示方向,用亮度来表示大小)

2. 手工设计的视频理解方法


这里的手工设计来提取视频的运动特征,是属于深度学习前的视频理解方法

2.1 稠密轨迹(Dense Trajectories,DT)

稠密轨迹(Dense Trajectories)是手工设计的视频特征的代表:其流程图如下所示
在这里插入图片描述

可以看见,传统的手工选择视频特征解决办法通过诗歌步骤:
1)多尺度选择兴趣点
在多个空间尺度上,每隔一定的像素选择作为一个兴趣点;而对平滑区域的兴趣点进行移出,因为这些兴趣点没有运动。
2)获取兴趣点的运动轨迹
对于每个兴趣点,利用其光流信息来估计该店在下一帧的位置Pt+1,而这些帧位置Pt构成的序列信息(Pt,Pt+1,Pt+2…)构成了该兴趣点的运动轨迹,也就是轨迹特征。这里会以兴趣点为起点,根据光流来追踪物体在L=15帧内的运动轨迹。
3)利用轨迹获取视频局部特征(轨迹特征)
现在根据光流获取了兴趣点的轨迹,然后取轨迹周围的NxNxL的时空区域,也就是如图所示将兴趣点的轨迹时空区域切分成一个个的局部时空区域,将其称为时空块。然后计算这每个时空块内的局部特征(比如HOG:图像的梯度直方图、HOF:光流的直方图、MBH:光流的梯度直方图)。随后,对所有时空块的局部特征进行拼接(我觉得应该是Concat操作)来作为这个轨迹特征,也就是兴趣点构成的局部特征。
4)利用轨迹特征获取视频运动特征
在每个视频中包含多个轨迹,利用特征空间中的各个聚类中心,依次统计视频中每个轨迹特征属于哪一个视觉词语,然后统计视频中视觉词语的词频来构建一个直方图数据,那么这个直方图数据就可以当作这个视频的运动特征。
5)利用运动特征来进行动作识别
以上过程的最后目的就是为了从视频中提取其运动特征,这与深度学习本质上也是类似的,因为深度学习的模型结构也是为了提取特征而已,只不过这里是人工设计的手动提取。有了特征之后,就是送入一个分类器进行训练即可。在这个人工的手动设计用的是svm分类器,而对于深度学习来说分类器可能就只是一层的全连接层。
在这里插入图片描述
在这里插入图片描述

2.2 改进的稠密轨迹(improved Dense Trajectories,iDT)

iDT是在DT上面的改进,其增加了相机运动的估计,并在光流和轨迹中移出相机运动的影响
检测人体,只是用人体以外的区域来估计相机运动,然后取出背景的运动轨迹,从而只看人体做行为识别

3. 2D卷积方法


以下是深度学习后的视频理解方法:

3.1 DeepVideo

DeepVideo是2014提出的一种方法。

这个是首次使用深度学习解决视频分类的任务,但是性能不如IDT等手工设计的特征,其基本的思路是使用AlexNet提取图像帧的特征,再通过不同的方法融合不同图像帧的特征。

其不足主要体现在,只关注于每一帧图像上的外观特征,但是这对于动作识别来说,动作的表述是比较重要的,简单的图像特征的融合其实并不能来表述动作方面的特征。
在这里插入图片描述

3.2 双流神经网络(Two-Stream Networks)

双流神经网络(Two-Stream Networks)同样是2014年提出的方法。

最大的优点是,其显式的使用了运动信息(光流):
使用了两个神经网络,一个基于图像来计算外观特征,另外一个基于光流来计算运动特征,最后平均两个网络的分类概率来作为最终的结果。所以双流模型将运动建模为单帧图像和多帧光流的函数。
在这里插入图片描述
1)Spatial stream convnet:
用卷积神经网络来处理单帧图像提取外观特征(appearance feature)
不过,在训练时会从视频中随机选取一个帧图像来进行训练(针对短视频),而在测试时,或对全部时刻进行预测再平均所有时刻的分类概率来作为帧图像的结果。
2)Temporal stream convnet:
用卷积神经网络作用在光流场上来提取运动特征(motion feature),这里是多帧的光流信息,因为光流是对运动非常有益的表达。

很显然,双流网络是有明显的缺陷与局限性的,因为其只能适用于短视频来进行短时建模,动作由单一时刻的图像和光流所确定,对于长视频的动作识别来说是不准确的。而一个完整的动作视频,应该由整个时间段内的图像和运动信息所确定。

3.3 时序分段网络(Temporal Segment Networks,TSN)

时序分段网络(Temporal Segment Networks,TSN)是2016年的工作。

时序分段网络将动作建模为视频中多个时段的图像与光流的函数
在这里插入图片描述
时序分段网络字如其名,将视频按间断分割为多个片段(比如k段),然后每个片段取其中的一个瞬间送入双流网络,进行外观和动作的特征提取,分别进行类别的判断。然后对多个片段结果进行融合来作为最终的结果。也可以看成是多个双流网络分别作用各个小片段的结果融合。
其中的多结果融合Segmental Consensus称为分段共识函数,可以通过平均/最大值/加权平均等方式融合,从而实现对k个空间留给出的类别概率进行最终分类概率的计算。

相比于Two-Stream,TSN探索了更多的输入配置:
空间流输入增加了RGB差值图像;时间流输入参照iDT,增加了去除运动估计的光流图。
在这里插入图片描述
TSN的关键:
通过对视频进行分段处理,而不是按一定的频率进行密集采样,使得网络分析的范围时间覆盖得更广。同时,由于相邻的时间点所观测到的物体其实是比较类似的,而在更大的时间层上进行采样的话可以看见更加多元化,更加全面的信息。使得视野更加阔达,信息也更加的综合。所以最后的判断会更加的准确。

4. 3D卷积方法


思想是:能否不使用额外的人工设计的光流信息,而直接从多帧图像中让模型自行学习到运动信息呢?
解决的办法:把传统的提取图像的二维卷积拓展为对于整个视频来说的三维卷积,也就是把时间维度增加到卷积的计算当中。
在这里插入图片描述

4.1 C3D(Convolutional 3D)

C3D(Convolutional 3D)是2014的工作。模型的结构上与早期的AlexNet其实是比较相识的,只不过是把其中的二维卷积改为三维卷积
在这里插入图片描述

一般情况下,C3D的性能不如双流神经网络,需要额外配合一些技术才可以超过双流网络。其中的原因有,三维的卷积网络参数更多,更难训练;而且由于是自主设计结构需要从头训练,不能利用成功预训练的图像分类模型。

4.2 I3D(Inflated 3D ConvNets)

I3D(2017)中的3D网络由图像分类中的2D网络膨胀而来,从而可以利用现有的图像分类模型。I3D的性能全面的超越C3D以及同时期的2D卷积网络方法,从此3D卷积网络逐渐成为主流。
在这里插入图片描述

ps:这里的3D卷积是又2D卷积膨胀而来的,如下图所示
在这里插入图片描述

所以,其实可以看见,所谓的2D膨胀成3D,其实就是进行一个2D卷积核的简单堆叠,成为一个3D的卷积核。所谓膨胀,就是重复堆叠。从而可以对时间维度也进行卷积操作。

一些方法的对比:
在这里插入图片描述

针对所有的结构,基于ImageNet的预训练有助于提高视频数据集上的训练精度。这里有一个经验就是,当涉及到一个新的领域,如果能够有效的借用之前的一些成熟的领域所获得的成果,其实是有助于快速的获得性能的提升的。

4.3 3D卷积方法的后续改进

对于3D卷积来说,由于多了一个时间的维度,所以3D卷积的参数量和计算量相比于2D卷积有一个成倍的增加的。
在这里插入图片描述

因此,需要更多的训练数据,需要更多的计算资源,也需要一个更加高效的3D卷积模型。已有的方法如下所示:

混合2D和3D卷积

一个神经网络可能会有很多的层次,但是其实并不是全部的层次都需要应用3D的卷积网络,所以可以在关键位置使用3D,部分使用2D来进行混合使用。
在这里插入图片描述

分解3D卷积核

将3D的卷积核进行分解,分解为一个时间维度的卷积和一个空间维度的卷积。S3D、R(2+1)D就是这种方法的代表。
在这里插入图片描述

减少通道的关联

CSN是减少通道的关联方法的代表。

常规卷积参数量正比于通道数的平方,针对大卷积核使用分组或者逐点卷积,可以大幅降低参数量和计算量,典型代表就是分组卷积与可分离卷积。其中DSW卷积被广泛的用于轻量级的网络中,或者说轻量级网络的核心就是是使用可分离卷积来减少计算量。
在这里插入图片描述

优化参数分配

SlowFast提出了一个非常重要的归纳偏置:视频的外观和动作的变化速度是不同的,外观的变化通常较慢,运动的变化速度较快,所以针对外观和运动的特点,可以使用不同结构的模型,来优化参数分配。
在这里插入图片描述
这里对于高帧率,由于需要输入较多的图像帧,所以需要使用一个相对轻量级的网络来平衡参数,与低帧率的网络达到了一个平衡。

下面再贴一个博主关于视频理解的总结:
1)万字长文漫谈视频理解:https://blog.csdn.net/LoseInVain/article/details/105545703
2)视频分析与多模态融合之一,为什么需要多模态融合:https://fesian.blog.csdn.net/article/details/118256321

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
java架构师148讲视频教程 │ ├─1-148视频教程 │ 第01节:整体课程概览.flv │ 第02节:分模块、分工程管理.avi │ 第03节:多模块多Web应用合并War包.avi │ 第04节:Git基本原理和安装配置使用.avi │ 第05节:TortoiseGit的本地使用.avi │ 第06节:Egit的本地使用.avi │ 第07节:远程使用以及冲突解决.avi │ 第08节:基本业务功能和数据字典.avi │ 第09节:搭建基础的开发环境.avi │ 第10节:Spring+Mybatis实现DAO.avi │ 第11节:Mybatis的分页实现.avi │ 第12节:Service的实现以及模块化.avi │ 第13节:Spring MVC实现Web层开发.avi │ 第14节:新增和列表页面和分页tag.avi │ 第15节:带查询的分页、修改和删除页面.avi │ 第16节:Mybatis动态查询和Json自动拼装.avi │ 第17节:X-gen生成所需的DAO部分模板.avi │ 第18节:X-gen所需service、web层模板.avi │ 第19节:X-gen生成相应的Visitor.avi │ 第20节:X-gen生成需要的Action.avi │ 第21节:通过X-gen生成商品模块.avi │ 第22节:通过X-gen生成购物车模块.avi │ 第23节:通过X-gen来生成订单和库存模块.avi │ 第24节:加入ehcache,把工程加入到Git.avi │ 第25节:实现前端的业务登录等功能.avi │ 第26节:测试并调整登录的业务功能.avi │ 第27节:实现index功能的开发.avi │ 第28节:Index、商品详细页和购物车.avi │ 第29节:完成下订单和修改库存的功能.avi │ 第30节:把应用部署到Linux服务器上.avi │ 第31节:Nginx简介、安装和基本运行.avi │ 第32节:Nginx的进程结构、基本配置.avi │ 第33节:Nginx常用核心模块指令.avi │ 第34节:Nginx的Http模块部分的指令.avi │ 第35节:Nginx的Location区段.avi │ 第36节:Nginx的反向代理模块.avi │ 第37节:反向代理和动静分离的实现.avi │ 第38节:Nginx的负载均衡模块.avi │ 第39节:Nginx的Rewrite模块.avi │ 第40节:更多模块的基本功能和配置.avi │ 第41节:Nginx的配置优化以及使用建议.avi │ 第42节:应用上Nginx过后的体系结构.avi │ 第43节:Varnish简介、安装和基本使用.avi │ 第44节:VCL基本语法和使用,负载均衡.avi │ 第45节:VCL实现健康检查、ACL访问控制.avi │ 第46节:Grace模式和Saint模式.avi │ 第47节:VCL常用的函数和Http头.avi │ 第48节:VCL的子程序和Request流程.avi │ 第49节:VCL的变量和常见的应用片断.avi │ 第50节:使用CLI来管理Varnish.avi │ 第51节:Varnishd命令和运行期参数.avi │ 第52节:Varnish的日志操作.avi │ 第53节:规划缓存大小和提高命中率.avi │ 第54节:性能调优和配置使用建议.avi │ 第55节:Nginx+Varnish组合应用.avi │ 第56节:Varnish对性能的提升和优化.avi │ 第57节:应用上Varnish后的体系结构.avi │ 第58节:Memcached入门和缓存的含义.avi │ 第59节:Memcached基本的工作原理.avi │ 第60节:Memcached基本的操作命令.avi │ 第61节:理解Memcached的数据存储方式.avi │ 第62节:内存分配的Chunk、Slab演示.avi │ 第63节:Memcached的Java客户端开发.avi │ 第64节:理解Memcached的分布式方式.avi │ 第65节:Memcached内存调优.avi │ 第66节:Memcached的限制和使用建议.avi │ 第67节:分析如何使用Memcached开发.avi │ 第68节:Memcached结合业务功能开发.avi │ 第69节:Nginx+Varnish+基本业务功能+Memcached.avi │ 第70节:应用Memcached后的体系结构.avi │ 第71节:ActiveMQ入门和消息中间件.avi │ 第72节:JMS基本概念和模型.avi │ 第73节:JMS的可靠性机制.avi │ 第74节:JMS的API结构和开发步骤.avi │ 第75节:Broker的启动方式.avi │ 第76节:ActiveMQ结合Spring开发.avi │ 第77节:ActiveMQ支持的传输协议.avi │ 第78节:ActiveMQ消息存储持久化.avi │ 第79节:ActiveMQ的静态网络链接.avi │ 第80节:多线程consumer访问集群.avi │ 第81节:集群下的消息回流功能.avi │ 第82节:容错的链接和动态网络连接.avi │ 第83节:ActiveMQ的集群.avi │ 第84节:Destination高级特性一.avi │ 第85节:Destination高级特性二.avi │ 第86节:MessageDispatch高级特性一.avi │ 第87节:MessageDispatch高级特性二.avi │ 第88节:MessageDispatch高级特性三.avi │ 第89节:Message高级特性一.avi │ 第90节:Message高级特性二.avi │ 第91节:Consumer高级特性一.avi │ 第92节:Consumer高级特性二.avi │ 第93节:集成ActiveMQ和Tomcat.avi │ 第94节:AMQ优化和使用建议.avi │ 第95节:AMQ结合业务功能的开发一.avi │ 第96节:AMQ结合业务功能的开发二.avi │ 第97节:AMQ结合业务功能的开发三.avi │ 第98节:AMQ和业务功能组合测试.avi │ 第99节:基本的性能测试.avi │ 第100节:应用上AMQ后的体系结构.avi │ 第101节:MongoDB简介和NoSQL.avi │ 第102节:MongoDB安装和基本使用.avi │ 第103节:MongoDB基本概念.avi │ 第104节:MongoDB增删改操作一.avi │ 第105节:MongoDB增删改操作二.avi │ 第106节:MongoDB查询操作一.avi │ 第107节:MongoDB查询操作二.avi │ 第108节:聚合框架第一部分.avi │ 第109节:聚合框架第二部分.avi │ 第110节:聚合框架第三部分.avi │ 第111节:理解文档存储机制.avi │ 第112节:MongoDB的索引一.avi │ 第113节:MongoDB的索引二.avi │ 第114节:Capped集合和GridFS.avi │ 第115节:MongoDB的副本集一.avi │ 第116节:MongoDB的副本集二.avi │ 第117节:副本集的基本原理.avi │ 第118节:副本集管理和主从复制.avi │ 第119节:MongoDB的分片一.avi │ 第120节:MongoDB的分片二.avi │ 第121节:MongoDB的分片三.avi │ 第122节:MongoDB分片的片键选择.avi │ 第123节:MongoDB分片的管理.avi │ 第124节:监控状态和身份验证.avi │ 第125节:备份和恢复.avi │ 第126节:Java操作MongoDB.avi │ 第127节:MongoDB和Spring.avi │ 第128节:应用建议及最佳实践.avi │ 第129节:MongoDB结合应用开发一.avi │ 第130节:MongoDB结合应用开发二.avi │ 第131节:应用MongoDB后体系结构.avi │ 第132节:MogileFS简介和入门.avi │ 第133节:MogileFS安装和基本配置.avi │ 第134节:理解MogileFS的基本概念.avi │ 第135节:理解MogileFS的基本原理.avi │ 第136节:MogileFS的Java客户端开发.avi │ 第137节:基于MogileFS的小应用一.avi │ 第138节:基于MogileFS的小应用二.avi │ 第139节:基于MogileFS的小应用三.avi │ 第140节:基于MogileFS的小应用四.avi │ 第141节:MogileFS和Nginx的集成.avi │ 第142节:应用MogileFS后体系结构变化.avi │ 第143节:阶段一小结合构建的基本架构.avi │ 第144节:阶段一工程整体打包部署.avi │ 第145节:测试Nginx、Varnish和MogileFS.avi │ 第146节:测试Memcached和MongoDB.avi │ 第147节:测试应用结合ActiveMQ的功能.avi │ 第148节:阶段一之后的发展和架构演变.avi │ ├─x-gen-ppt │ 使用外部主题.pdf │ 具体调用.pdf │ 分发调度.pdf │ 整体介绍.pdf │ 模板管理.pdf │ 生成代理.pdf │ 生成输出.pdf │ 自定义外部主题.pdf │ 配置管理.pdf │ ├─x-gen-projects │ └─project │ ├─.metadata │ │ │ .lock │ │ │ .log │ │ │ version.ini │ │ │ │ │ ├─.mylyn │ │ │ │ .tasks.xml.zip │ │ │ │ repositories.xml.zip │ │ │ │ tasks.xml.zip │ │ │ │ │ │ │ └─contexts │ │ └─.plugins │ │ ├─org.eclipse.core.resources │ │ │ ├─.history │ │ │ │ ├─0 │ │ │ │ ├─1 │ │ │ │ ├─10 │ │ │ │ ├─11 │ │ │ │ ├─12 │ │ │ │ ├─13 │ │ │ │ ├─14 │ │ │ │ ├─15 │ │ │ │ ├─16 │ │ │ │ ├─17 │ │ │ │ ├─18 │ │ │ │ ├─19 │ │ │ │ ├─1a │ │ │ │ ├─1b │ │ │ │ ├─1c │ │ │ │ ├─1d │ │ │ │ ├─1e │ │ │ │ ├─1f │ │ │ │ ├─2 │ │ │ │ ├─20 │ │ │ │ ├─21 │ │ │ │ ├─22 │ │ │ │ ├─23 │ │ │ │ ├─24 │ │ │ │ ├─25 │ │ │ │ ├─26 │ │ │ │ ├─27 │ │ │ │ ├─28 │ │ │ │ ├─29 │ │ │ │ ├─2a │ │ │ │ ├─2b │ │ │ │ ├─2c │ │ │ │ ├─2d │ │ │ │ ├─2e │ │ │ │ ├─2f │ │ │ │ ├─3 │ │ │ │ ├─30 │ │ │ │ ├─31 │ │ │ │ ├─32 │ │ │ │ ├─33 │ │ │ │ ├─34 │ │ │ │ ├─35 │ │ │ │ ├─36 │ │ │ │ ├─37 │ │ │ │ ├─38 │ │ │ │ ├─39 │ │ │ │ ├─3a │ │ │ │ ├─3b │ │ │ │ ├─3c │ │ │ │ ├─3d │ │ │ │ ├─3e │ │ │ │ ├─3f │ │ │ │ ├─4 │ │ │ │ ├─40 │ │ │ │ ├─41 │ │ │ │ ├─42 │ │ │ │ ├─43 │ │ │ │ ├─44 │ │ │ │ ├─45 │ │ │ │ ├─46 │ │ │ │ ├─47 │ │ │ │ ├─48 │ │ │ │ ├─49 │ │ │ │ ├─4a │ │ │ │ ├─4b │ │ │ │ ├─4c │ │ │ │ ├─4d │ │ │ │ ├─4e │ │ │ │ ├─4f │ │ │ │ ├─5 │ │ │ │ ├─50 │ │ │ │ ├─51 │ │ │ │ ├─52 │ │ │ │ ├─53 │ │ │ │ ├─54 │ │ │ │ ├─55 │ │ │ │ ├─56 │ │ │ │ ├─57 │ │ │ │ ├─58 │ │ │ │ ├─59 │ │ │ │ ├─5a │ │ │ │ ├─5b │ │ │ │ ├─5c │ │ │ │ ├─5d │ │ │ │ ├─5e │ │ │ │ ├─5f │ │ │ │ ├─6 │ │ │ │ ├─60 │ │ │ │ ├─61 │ │ │ │ ├─62 │ │ │ │ ├─63 │ │ │ │ ├─64 │ │ │ │ ├─65 │ │ │ │ ├─66 │ │ │ │ ├─67 │ │ │ │ ├─68 │ │ │ │ ├─69 │ │ │ │ ├─6a │ │ │ │ ├─6b │ │ │ │ ├─6c │ │ │ │ ├─6d │ │ │ │ ├─6e │ │ │ │ ├─6f │ │ │ │ ├─7 │ │ │ │ ├─70 │ │ │ │ ├─71 │ │ │ │ ├─72 │ │ │ │ ├─73 │ │ │ │ ├─74 │ │ │ │ ├─75 │ │ │ │ ├─76 │ │ │ │ ├─77 │ │ │ │ ├─78 │ │ │ │ ├─79 │ │ │ │ ├─7a │ │ │ │ ├─7b │ │ │ │ ├─7c │ │ │ │ ├─7d │ │ │ │ ├─7e │ │ │ │ ├─7f │ │ │ │ │ 40f32f632b3900121032a38527baf77d │ │ │ │ │ │ │ │ │ ├─8 │ │ │ │ ├─80 │ │ │ │ ├─81 │ │ │ │ ├─82 │ │ │ │ ├─83 │ │ │ │ ├─84 │ │ │ │ ├─85 │ │ │ │ ├─86 │ │ │ │ ├─87 │ │ │ │ ├─88 │ │ │ │ ├─89 │ │ │ │ ├─8a │ │ │ │ ├─8b │ │ │ │ ├─8c │ │ │ │ ├─8d │ │ │ │ ├─8e │ │ │ │ ├─8f │ │ │ │ ├─9 │ │ │ │ ├─90 │ │ │ │ ├─91 │ │ │ │ ├─92 │ │ │ │ ├─93 │ │ │ │ ├─94 │ │ │ │ ├─95 │ │ │ │ ├─96 │ │ │ │ ├─97 │ │ │ │ ├─98 │ │ │ │ ├─99 │ │ │ │ ├─9a │ │ │ │ ├─9b │ │ │ │ ├─9c │ │ │ │ ├─9d │ │ │ │ ├─9e │ │ │ │ ├─9f │ │ │ │ ├─a │ │ │ │ ├─a0 │ │ │ │ ├─a1 │ │ │ │ ├─a2 │ │ │ │ ├─a3 │ │ │ │ ├─a4 │ │ │ │ ├─a5 │ │ │ │ ├─a6 │ │ │ │ ├─a7 │ │ │ │ ├─a8 │ │ │ │ ├─a9 │ │ │ │ ├─aa │ │ │ │ ├─ab │ │ │ │ ├─ac │ │ │ │ ├─ad │ │ │ │ ├─ae │ │ │ │ ├─af │ │ │ │ ├─b │ │ │ │ ├─b0 │ │ │ │ ├─b1 │ │ │ │ ├─b2 │ │ │ │ ├─b3 │ │ │ │ ├─b4 │ │ │ │ ├─b5 │ │ │ │ ├─b6 │ │ │ │ ├─b7 │ │ │ │ ├─b8 │ │ │ │ ├─b9 │ │ │ │ ├─ba │ │ │ │ ├─bb │ │ │ │ ├─bc │ │ │ │ ├─bd │ │ │ │ ├─be │ │ │ │ ├─bf │ │ │ │ ├─c │ │ │ │ ├─c0 │ │ │ │ ├─c1 │ │ │ │ ├─c2 │ │ │ │ ├─c3 │ │ │ │ ├─c4 │ │ │ │ ├─c5 │ │ │ │ ├─c6 │ │ │ │ ├─c7 │ │ │ │ ├─c8 │ │ │ │ ├─c9 │ │ │ │ ├─ca │ │ │ │ ├─cb │ │ │ │ ├─cc │ │ │ │ ├─cd │ │ │ │ ├─ce │ │ │ │ ├─cf │ │ │ │ ├─d │ │ │ │ ├─d0 │ │ │ │ ├─d1 │ │ │ │ ├─d2 │ │ │ │ ├─d3 │ │ │ │ ├─d4 │ │ │ │ ├─d5 │ │ │ │ ├─d6 │ │ │ │ ├─d7 │ │ │ │ ├─d8 │ │ │ │ ├─d9 │ │ │ │ ├─da │ │ │ │ ├─db │ │ │ │ │ 709288fe9ef800111a0c80454ed7cb85 │ │ │ │ │ │ │ │ │ ├─dc │ │ │ │ ├─dd │ │ │ │ ├─de │ │ │ │ ├─df │ │ │ │ ├─e │ │ │ │ ├─e0 │ │ │ │ ├─e1 │ │ │ │ ├─e2 │ │ │ │ ├─e3 │ │ │ │ ├─e4 │ │ │ │ ├─e5 │ │ │ │ ├─e6 │ │ │ │ ├─e7 │ │ │ │ ├─e8 │ │ │ │ ├─e9 │ │ │ │ ├─ea │ │ │ │ ├─eb │ │ │ │ ├─ec │ │ │ │ ├─ed │ │ │ │ ├─ee │ │ │ │ ├─ef │ │ │ │ ├─f │ │ │ │ ├─f0 │ │ │ │ ├─f1 │ │ │ │ ├─f2 │ │ │ │ ├─f3 │ │ │ │ ├─f4 │ │ │ │ ├─f5 │ │ │ │ ├─f6 │ │ │ │ ├─f7 │ │ │ │ ├─f8 │ │ │ │ ├─f9 │ │ │ │ ├─fa │ │ │ │ ├─fb │ │ │ │ ├─fc │ │ │ │ ├─fd │ │ │ │ ├─fe │ │ │ │ │ 30ae34632b3900121032a38527baf77d │ │ │ │ │ │ │ │ │ └─ff │ │ │ ├─.projects │ │ │ │ ├─test │ │ │ │ │ │ .markers │ │ │ │ │ │ │ │ │ │ │ ├─org.eclipse.jdt.apt.core │ │ │ │ │ └─org.eclipse.jdt.core │ │ │ │ │ state.dat │ │ │ │ │ │ │ │ │ └─x-gen │ │ │ │ │ .markers │ │ │ │ │ │ │ │ │ ├─.indexes │ │ │ │ │ └─6e │ │ │ │ │ └─6b │ │ │ │ │ └─fe │ │ │ │ │ └─92 │ │ │ │ │ └─92 │ │ │ │ │ ├─40 │ │ │ │ │ │ └─6c │ │ │ │ │ │ history.index │ │ │ │ │ │ │ │ │ │ │ └─b9 │ │ │ │ │ history.index │ │ │ │ │ │ │ │ │ ├─org.eclipse.jdt.apt.core │ │ │ │ └─org.eclipse.jdt.core │ │ │ │ state.dat │ │ │ │ │ │ │ ├─.root │ │ │ │ │ 11.tree │ │ │ │ │ │ │ │ │ └─.indexes │ │ │ │ history.version │ │ │ │ properties.index │ │ │ │ properties.version │ │ │ │ │ │ │ └─.safetable │ │ │ org.eclipse.core.resources │ │ │ │ │ ├─org.eclipse.core.runtime │ │ │ └─.settings │ │ │ org.eclipse.core.resources.prefs │ │ │ org.eclipse.debug.ui.prefs │ │ │ org.eclipse.epp.usagedata.recording.prefs │ │ │ org.eclipse.jdt.core.prefs │ │ │ org.eclipse.jdt.launching.prefs │ │ │ org.eclipse.jdt.ui.prefs │ │ │ org.eclipse.jst.j2ee.webservice.ui.prefs │ │ │ org.eclipse.jst.jsp.core.prefs │ │ │ org.eclipse.mylyn.context.core.prefs │ │ │ org.eclipse.mylyn.java.ui.prefs │ │ │ org.eclipse.mylyn.monitor.ui.prefs │ │ │ org.eclipse.team.cvs.ui.prefs │ │ │ org.eclipse.team.ui.prefs │ │ │ org.eclipse.ui.editors.prefs │ │ │ org.eclipse.ui.ide.prefs │ │ │ org.eclipse.ui.prefs │ │ │ org.eclipse.ui.workbench.prefs │ │ │ org.eclipse.wst.jsdt.ui.prefs │ │ │ org.eclipse.wst.sse.core.prefs │ │ │ org.eclipse.wst.sse.ui.prefs │ │ │ org.eclipse.wst.ws.service.policy.prefs │ │ │ org.eclipse.wst.xml.ui.prefs │ │ │ │ │ ├─org.eclipse.debug.core │ │ │ └─.launches │ │ │ MyTest (1).launch │ │ │ MyTest.launch │ │ │ t.launch │ │ │ │ │ ├─org.eclipse.debug.ui │ │ │ dialog_settings.xml │ │ │ launchConfigurationHistory.xml │ │ │ │ │ ├─org.eclipse.epp.usagedata.recording │ │ │ upload0.csv │ │ │ upload1.csv │ │ │ upload10.csv │ │ │ upload11.csv │ │ │ upload12.csv │ │ │ upload13.csv │ │ │ upload14.csv │ │ │ upload15.csv │ │ │ upload16.csv │ │ │ upload17.csv │ │ │ upload18.csv │ │ │ upload19.csv │ │ │ upload2.csv │ │ │ upload20.csv │ │ │ upload21.csv │ │ │ upload22.csv │ │ │ upload23.csv │ │ │ upload24.csv │ │ │ upload25.csv │ │ │ upload26.csv │ │ │ upload27.csv │ │ │ upload28.csv │ │ │ upload29.csv │ │ │ upload3.csv │ │ │ upload30.csv │ │ │ upload31.csv │ │ │ upload32.csv │ │ │ upload33.csv │ │ │ upload34.csv │ │ │ upload35.csv │ │ │ upload36.csv │ │ │ upload37.csv │ │ │ upload38.csv │ │ │ upload39.csv │ │ │ upload4.csv │ │ │ upload40.csv │ │ │ upload41.csv │ │ │ upload42.csv │ │ │ upload43.csv │ │ │ upload44.csv │ │ │ upload45.csv │ │ │ upload46.csv │ │ │ upload47.csv │ │ │ upload48.csv │ │ │ upload49.csv │ │ │ upload5.csv │ │ │ upload50.csv │ │ │ upload51.csv │ │ │ upload52.csv │ │ │ upload53.csv │ │ │ upload54.csv │ │ │ upload55.csv │ │ │ upload56.csv │ │ │ upload57.csv │ │ │ upload58.csv │ │ │ upload59.csv │ │ │ upload6.csv │ │ │ upload7.csv │ │ │ upload8.csv │ │ │ upload9.csv │ │ │ usagedata.csv │ │ │ │ │ ├─org.eclipse.jdt.core │ │ │ 1285665056.index │ │ │ 1443231178.index │ │ │ 1583475091.index │ │ │ 1642086229.index │ │ │ 165780461.index │ │ │ 1836311715.index │ │ │ 2335302788.index │ │ │ 2424825842.index │ │ │ 2559444288.index │ │ │ 2926361562.index │ │ │ 3271193799.index │ │ │ 3561449303.index │ │ │ 3887831799.index │ │ │ 504403929.index │ │ │ 959717129.index │ │ │ externalLibsTimeStamps │ │ │ invalidArchivesCache │ │ │ javaLikeNames.txt │ │ │ nonChainingJarsCache │ │ │ participantsIndexNames.txt │ │ │ savedIndexNames.txt │ │ │ variablesAndContainers.dat │ │ │ │ │ ├─org.eclipse.jdt.launching │ │ │ .install.xml │ │ │ libraryInfos.xml │ │ │ │ │ ├─org.eclipse.jdt.ui │ │ │ dialog_settings.xml │ │ │ OpenTypeHistory.xml │ │ │ QualifiedTypeNameHistory.xml │ │ │ │ │ ├─org.eclipse.jst.jsp.core │ │ │ ├─jspsearch │ │ │ │ 4166850570.index │ │ │ │ 51038836.index │ │ │ │ │ │ │ ├─taglibindex │ │ │ │ 2926361562.dat │ │ │ │ 3271193799.dat │ │ │ │ │ │ │ └─translators │ │ ├─org.eclipse.ltk.core.refactoring │ │ │ └─.refactorings │ │ │ ├─.workspace │ │ │ │ └─2012 │ │ │ │ ├─11 │ │ │ │ │ └─48 │ │ │ │ │ refactorings.history │ │ │ │ │ refactorings.index │ │ │ │ │ │ │ │ │ ├─8 │ │ │ │ │ └─35 │ │ │ │ │ refactorings.history │ │ │ │ │ refactorings.index │ │ │ │ │ │ │ │ │ └─9 │ │ │ │ ├─36 │ │ │ │ │ refactorings.history │ │ │ │ │ refactorings.index │ │ │ │ │ │ │ │ │ └─37 │ │ │ │ refactorings.history │ │ │ │ refactorings.index │ │ │ │ │ │ │ ├─test │ │ │ │ └─2012 │ │ │ │ └─9 │ │ │ │ └─37 │ │ │ │ refactorings.history │ │ │ │ refactorings.index │ │ │ │ │ │ │ └─x-gen │ │ │ └─2012 │ │ │ ├─8 │ │ │ │ └─35 │ │ │ │ refactorings.history │ │ │ │ refactorings.index │ │ │ │ │ │ │ └─9 │ │ │ └─36 │ │ │ refactorings.history │ │ │ refactorings.index │ │ │ │ │ ├─org.eclipse.ltk.ui.refactoring │ │ │ dialog_settings.xml │ │ │ │ │ ├─org.eclipse.mylyn.bugzilla.core │ │ ├─org.eclipse.mylyn.tasks.ui │ │ ├─org.eclipse.pde.api.tools │ │ ├─org.eclipse.pde.core │ │ │ ├─.cache │ │ │ │ clean-cache.properties │ │ │ │ │ │ │ └─.p2 │ │ │ └─org.eclipse.equinox.p2.engine │ │ │ └─profileRegistry │ │ ├─org.eclipse.team.cvs.core │ │ ├─org.eclipse.ui.editors │ │ │ dialog_settings.xml │ │ │ │ │ ├─org.eclipse.ui.ide │ │ │ dialog_settings.xml │ │ │ │ │ ├─org.eclipse.ui.intro │ │ ├─org.eclipse.ui.workbench │ │ │ dialog_settings.xml │ │ │ workbench.xml │ │ │ workingsets.xml │ │ │ │ │ ├─org.eclipse.ui.workbench.texteditor │ │ │ dialog_settings.xml │ │ │ │ │ ├─org.eclipse.wst.common.modulecore │ │ ├─org.eclipse.wst.internet.cache │ │ │ cache.xml │ │ │ │ │ ├─org.eclipse.wst.jsdt.core │ │ │ │ externalLibsTimeStamps │ │ │ │ variablesAndContainers.dat │ │ │ │ │ │ │ ├─indexes │ │ │ └─libraries │ │ │ baseBrowserLibrary.js │ │ │ browserWindow.js │ │ │ dom5.js │ │ │ system.js │ │ │ xhr.js │ │ │ │ │ ├─org.eclipse.wst.jsdt.ui │ │ │ OpenTypeHistory.xml │ │ │ QualifiedTypeNameHistory.xml │ │ │ │ │ ├─org.eclipse.wst.server.core │ │ ├─org.eclipse.wst.sse.ui │ │ │ dialog_settings.xml │ │ │ │ │ └─org.eclipse.wst.xml.core │ │ default_catalog.xml │ │ system_catalog.xml │ │ │ ├─test │ │ │ .classpath │ │ │ .project │ │ │ │ │ ├─.settings │ │ │ org.eclipse.jdt.core.prefs │ │ │ │ │ ├─bin │ │ │ ├─cn │ │ │ │ └─javass │ │ │ │ ├─test │ │ │ │ │ │ MyTest.class │ │ │ │ │ │ │ │ │ │ │ └─test │ │ │ │ ├─themes │ │ │ │ │ ├─mytheme │ │ │ │ │ │ │ ThemeConf.xml │ │ │ │ │ │ │ │ │ │ │ │ │ ├─actions │ │ │ │ │ │ │ VoAction.class │ │ │ │ │ │ │ VoHbmXmlAction.class │ │ │ │ │ │ │ │ │ │ │ │ │ ├─decorators │ │ │ │ │ │ │ MyDecorator.class │ │ │ │ │ │ │ │ │ │ │ │ │ ├─outtype │ │ │ │ │ │ │ MyOutput.class │ │ │ │ │ │ │ │ │ │ │ │ │ ├─template │ │ │ │ │ │ │ └─vo │ │ │ │ │ │ │ Model.hbm.txt │ │ │ │ │ │ │ Model.txt │ │ │ │ │ │ │ │ │ │ │ │ │ └─visitors │ │ │ │ │ │ VoProperty.class │ │ │ │ │ │ VoPropertyGetterSetter.class │ │ │ │ │ │ VoPropertyHbmXml.class │ │ │ │ │ │ │ │ │ │ │ └─simple │ │ │ │ │ │ ThemeConf.xml │ │ │ │ │ │ │ │ │ │ │ ├─actions │ │ │ │ │ │ GenAddPageAction.class │ │ │ │ │ │ GenBusinessEbiAction.class │ │ │ │ │ │ GenBusinessEboAction.class │ │ │ │ │ │ GenDaoDaoAction.class │ │ │ │ │ │ GenDaoImplAction.class │ │ │ │ │ │ GenDeletePageAction.class │ │ │ │ │ │ GenHbmXmlAction.class │ │ │ │ │ │ GenListPageAction.class │ │ │ │ │ │ GenQueryModelAction.class │ │ │ │ │ │ GenQueryPageAction.class │ │ │ │ │ │ GenSpring2XmlAction.class │ │ │ │ │ │ GenStruts2XmlAction.class │ │ │ │ │ │ GenUpdatePageAction.class │ │ │ │ │ │ GenVoAction.class │ │ │ │ │ │ GenWebActionAction.class │ │ │ │ │ │ GenWebModelAction.class │ │ │ │ │ │ │ │ │ │ │ ├─decorators │ │ │ │ │ ├─outputtypes │ │ │ │ │ │ MyOutput.class │ │ │ │ │ │ │ │ │ │ │ ├─template │ │ │ │ │ │ ├─business │ │ │ │ │ │ │ Ebi.txt │ │ │ │ │ │ │ Ebo.txt │ │ │ │ │ │ │ │ │ │ │ │ │ ├─dao │ │ │ │ │ │ │ DAO.txt │ │ │ │ │ │ │ H3Impl.txt │ │ │ │ │ │ │ │ │ │ │ │ │ ├─pages │ │ │ │ │ │ │ add.txt │ │ │ │ │ │ │ delete.txt │ │ │ │ │ │ │ list.txt │ │ │ │ │ │ │ query.txt │ │ │ │ │ │ │ update.txt │ │ │ │ │ │ │ │ │ │ │ │ │ ├─vo │ │ │ │ │ │ │ Model.hbm.txt │ │ │ │ │ │ │ Model.txt │ │ │ │ │ │ │ QueryModel.txt │ │ │ │ │ │ │ │ │ │ │ │ │ ├─web │ │ │ │ │ │ │ Action.txt │ │ │ │ │ │ │ WebModel.txt │ │ │ │ │ │ │ │ │ │ │ │ │ └─xmls │ │ │ │ │ │ applicationContext.txt │ │ │ │ │ │ struts.txt │ │ │ │ │ │ │ │ │ │ │ └─visitors │ │ │ │ │ AddPageInputs.class │ │ │ │ │ GenH3ImplPreparedHql.class │ │ │ │ │ GenH3ImplSetHqlValue.class │ │ │ │ │ GetterAndSetter.class │ │ │ │ │ HbmProperties.class │ │ │ │ │ ListPageTitles.class │ │ │ │ │ ListPageValues.class │ │ │ │ │ QmGetterAndSetter.class │ │ │ │ │ QmPropertiesDesign.class │ │ │ │ │ QueryPageInputs.class │ │ │ │ │ ToStringStr.class │ │ │ │ │ UpdatePageInputs.class │ │ │ │ │ VoPropertiesDesign.class │ │ │ │ │ │ │ │ │ └─xgenconfxml │ │ │ │ GenConf.xml │ │ │ │ MyThemeDepGenConf.xml │ │ │ │ MyThemeUserGenConf.xml │ │ │ │ │ │ │ └─com │ │ │ └─abc │ │ │ └─myproject │ │ │ ├─dep │ │ │ │ └─vo │ │ │ │ DepModel.class │ │ │ │ DepModel.hbm.xml │ │ │ │ │ │ │ └─user │ │ │ └─vo │ │ │ UserModel.class │ │ │ UserModel.hbm.xml │ │ │ │ │ ├─build │ │ │ └─com │ │ │ └─abc │ │ │ └─myproject │ │ │ ├─dep │ │ │ │ └─vo │ │ │ │ DepModel.hbm.xml │ │ │ │ DepModel.java │ │ │ │ │ │ │ └─user │ │ │ └─vo │ │ │ UserModel.hbm.xml │ │ │ UserModel.java │ │ │ │ │ ├─lib │ │ │ bsh-2.0b4.jar │ │ │ x-gen-no-themes.jar │ │ │ │ │ └─src │ │ ├─cn │ │ │ └─javass │ │ │ ├─test │ │ │ │ │ MyTest.java │ │ │ │ │ │ │ │ │ └─test │ │ │ ├─themes │ │ │ │ ├─mytheme │ │ │ │ │ │ ThemeConf.xml │ │ │ │ │ │ │ │ │ │ │ ├─actions │ │ │ │ │ │ VoAction.java │ │ │ │ │ │ VoHbmXmlAction.java │ │ │ │ │ │ │ │ │ │ │ ├─decorators │ │ │ │ │ │ MyDecorator.java │ │ │ │ │ │ │ │ │ │ │ ├─outtype │ │ │ │ │ │ MyOutput.java │ │ │ │ │ │ │ │ │ │ │ ├─template │ │ │ │ │ │ └─vo │ │ │ │ │ │ Model.hbm.txt │ │ │ │ │ │ Model.txt │ │ │ │ │ │ │ │ │ │ │ └─visitors │ │ │ │ │ VoProperty.java │ │ │ │ │ VoPropertyGetterSetter.java │ │ │ │ │ VoPropertyHbmXml.java │ │ │ │ │ │ │ │ │ └─simple │ │ │ │ │ ThemeConf.xml │ │ │ │ │ │ │ │ │ ├─actions │ │ │ │ │ GenAddPageAction.java │ │ │ │ │ GenBusinessEbiAction.java │ │ │ │ │ GenBusinessEboAction.java │ │ │ │ │ GenDaoDaoAction.java │ │ │ │ │ GenDaoImplAction.java │ │ │ │ │ GenDeletePageAction.java │ │ │ │ │ GenHbmXmlAction.java │ │ │ │ │ GenListPageAction.java │ │ │ │ │ GenQueryModelAction.java │ │ │ │ │ GenQueryPageAction.java │ │ │ │ │ GenSpring2XmlAction.java │ │ │ │ │ GenStruts2XmlAction.java │ │ │ │ │ GenUpdatePageAction.java │ │ │ │ │ GenVoAction.java │ │ │ │ │ GenWebActionAction.java │ │ │ │ │ GenWebModelAction.java │ │ │ │ │ │ │ │ │ ├─decorators │ │ │ │ ├─outputtypes │ │ │ │ │ MyOutput.java │ │ │ │ │ │ │ │ │ ├─template │ │ │ │ │ ├─business │ │ │ │ │ │ Ebi.txt │ │ │ │ │ │ Ebo.txt │ │ │ │ │ │ │ │ │ │ │ ├─dao │ │ │ │ │ │ DAO.txt │ │ │ │ │ │ H3Impl.txt │ │ │ │ │ │ │ │ │ │ │ ├─pages │ │ │ │ │ │ add.txt │ │ │ │ │ │ delete.txt │ │ │ │ │ │ list.txt │ │ │ │ │ │ query.txt │ │ │ │ │ │ update.txt │ │ │ │ │ │ │ │ │ │ │ ├─vo │ │ │ │ │ │ Model.hbm.txt │ │ │ │ │ │ Model.txt │ │ │ │ │ │ QueryModel.txt │ │ │ │ │ │ │ │ │ │ │ ├─web │ │ │ │ │ │ Action.txt │ │ │ │ │ │ WebModel.txt │ │ │ │ │ │ │ │ │ │ │ └─xmls │ │ │ │ │ applicationContext.txt │ │ │ │ │ struts.txt │ │ │ │ │ │ │ │ │ └─visitors │ │ │ │ AddPageInputs.java │ │ │ │ GenH3ImplPreparedHql.java │ │ │ │ GenH3ImplSetHqlValue.java │ │ │ │ GetterAndSetter.java │ │ │ │ HbmProperties.java │ │ │ │ ListPageTitles.java │ │ │ │ ListPageValues.java │ │ │ │ QmGetterAndSetter.java │ │ │ │ QmPropertiesDesign.java │ │ │ │ QueryPageInputs.java │ │ │ │ ToStringStr.java │ │ │ │ UpdatePageInputs.java │ │ │ │ VoPropertiesDesign.java │ │ │ │ │ │ │ └─xgenconfxml │ │ │ GenConf.xml │ │ │ MyThemeDepGenConf.xml │ │ │ MyThemeUserGenConf.xml │ │ │ │ │ └─com │ │ └─abc │ │ └─myproject │ │ ├─dep │ │ │ └─vo │ │ │ DepModel.hbm.xml │ │ │ DepModel.java │ │ │ │ │ └─user │ │ └─vo │ │ UserModel.hbm.xml │ │ UserModel.java │ │ │ └─x-gen │ │ .classpath │ │ .project │ │ │ ├─.settings │ │ org.eclipse.jdt.core.prefs │ │ │ ├─bin │ │ └─cn │ │ └─javass │ │ │ MyTest.class │ │ │ │ │ ├─themes │ │ │ └─simple │ │ │ │ ThemeConf.xml │ │ │ │ │ │ │ ├─actions │ │ │ │ GenBusinessEbiAction.class │ │ │ │ GenVoAction.class │ │ │ │ │ │ │ ├─decorators │ │ │ ├─template │ │ │ │ ├─business │ │ │ │ │ Ebi.txt │ │ │ │ │ │ │ │ │ └─vo │ │ │ │ Model.txt │ │ │ │ │ │ │ └─visitors │ │ │ VoPropertiesDesign.class │ │ │ │ │ ├─xgen │ │ │ ├─dispatch │ │ │ │ │ GenFacade.class │ │ │ │ │ │ │ │ │ ├─command │ │ │ │ │ CmdInvoker.class │ │ │ │ │ DefaultCommand.class │ │ │ │ │ GenCommand.class │ │ │ │ │ │ │ │ │ └─executechain │ │ │ │ DefaultHandler.class │ │ │ │ GenHandler.class │ │ │ │ │ │ │ ├─genconf │ │ │ │ │ GenConfEbi.class │ │ │ │ │ GenConfEbo.class │ │ │ │ │ GenConfFactory.class │ │ │ │ │ │ │ │ │ ├─confmanger │ │ │ │ │ ConfManager.class │ │ │ │ │ │ │ │ │ ├─constants │ │ │ │ │ ExpressionEnum.class │ │ │ │ │ GenConfEnum.class │ │ │ │ │ ModuleGenConfEnum.class │ │ │ │ │ ThemeEnum.class │ │ │ │ │ │ │ │ │ ├─implementors │ │ │ │ │ │ GenConfImplementor.class │ │ │ │ │ │ ModuleGenConfImplementor.class │ │ │ │ │ │ ThemeImplementer.class │ │ │ │ │ │ │ │ │ │ │ ├─dynamicparse │ │ │ │ │ │ BeanShellStrategy.class │ │ │ │ │ │ ParseContext.class │ │ │ │ │ │ ParseStrategy.class │ │ │ │ │ │ PropertyReplaceStrategy.class │ │ │ │ │ │ │ │ │ │ │ └─xmlimpl │ │ │ │ │ CommonBuilder.class │ │ │ │ │ GenConfBuilder.class │ │ │ │ │ GenConfXmlImpl.class │ │ │ │ │ ModuleGenConfBuilder.class │ │ │ │ │ ModuleGenConfXmlImpl.class │ │ │ │ │ ThemeBuilder.class │ │ │ │ │ ThemeXmlImpl.class │ │ │ │ │ │ │ │ │ └─vo │ │ │ │ ExtendConfModel.class │ │ │ │ GenConfModel.class │ │ │ │ GenTypeModel.class │ │ │ │ ModuleConfModel.class │ │ │ │ NeedGenModel.class │ │ │ │ ThemeModel.class │ │ │ │ │ │ │ ├─geninvocation │ │ │ │ │ BaseGenAction.class │ │ │ │ │ DefaultGenInvocation.class │ │ │ │ │ GenInvocation.class │ │ │ │ │ GenInvocationFactory.class │ │ │ │ │ │ │ │ │ ├─decorator │ │ │ │ │ DefaultComponent.class │ │ │ │ │ GenComponent.class │ │ │ │ │ GenDecorator.class │ │ │ │ │ ReadTemplateContent.class │ │ │ │ │ ReplaceMethods.class │ │ │ │ │ ReplaceProperty.class │ │ │ │ │ │ │ │ │ └─state │ │ │ │ DefaultBeginState.class │ │ │ │ GenState.class │ │ │ │ OutState.class │ │ │ │ State.class │ │ │ │ │ │ │ ├─genproxy │ │ │ │ DefaultProxy.class │ │ │ │ GenProxyFactory.class │ │ │ │ │ │ │ ├─mediator │ │ │ │ CoreMediator.class │ │ │ │ │ │ │ ├─output │ │ │ │ │ GenOutputEbi.class │ │ │ │ │ │ │ │ │ └─types │ │ │ │ │ OutputToConsole.class │ │ │ │ │ OutputToFile.class │ │ │ │ │ │ │ │ │ └─outputtofile │ │ │ │ │ AbstractFactory.class │ │ │ │ │ GenOutPathPackages.class │ │ │ │ │ Outter.class │ │ │ │ │ │ │ │ │ └─plaintxt │ │ │ │ GenOutPathPackageImpl.class │ │ │ │ OutterImpl.class │ │ │ │ PlainTxtFactory.class │ │ │ │ │ │ │ ├─template │ │ │ │ │ DefaultTemplateEbo.class │ │ │ │ │ TemplateEbi.class │ │ │ │ │ TemplateFactory.class │ │ │ │ │ │ │ │ │ ├─flyweight │ │ │ │ │ DefaultTemplate.class │ │ │ │ │ TemplateFlyweight.class │ │ │ │ │ TemplateFlyweightFactory.class │ │ │ │ │ │ │ │ │ └─visitors │ │ │ │ TemplateElement.class │ │ │ │ Visitor.class │ │ │ │ │ │ │ └─util │ │ │ ├─file │ │ │ │ FileHelper.class │ │ │ │ │ │ │ └─readxml │ │ │ Context.class │ │ │ ElementExpression.class │ │ │ ElementsExpression.class │ │ │ ElementsTerminalExpression.class │ │ │ ElementTerminalExpression.class │ │ │ ParseCaretaker.class │ │ │ ParseMemento.class │ │ │ ParseModel.class │ │ │ Parser$MementoImpl.class │ │ │ Parser.class │ │ │ Parser2.class │ │ │ PropertysTerminalExpression.class │ │ │ PropertyTerminalExpression.class │ │ │ ReadXmlExpression.class │ │ │ XmlUtil.class │ │ │ │ │ └─xgenconfxml │ │ GenConf.xml │ │ UserGenConf.xml │ │ │ ├─build │ ├─lib │ │ bsh-2.0b4.jar │ │ │ └─src │ └─cn │ └─javass │ │ MyTest.java │ │ │ ├─themes │ │ └─simple │ │ │ ThemeConf.xml │ │ │ │ │ ├─actions │ │ │ GenBusinessEbiAction.java │ │ │ GenVoAction.java │ │ │ │ │ ├─decorators │ │ ├─template │ │ │ ├─business │ │ │ │ Ebi.txt │ │ │ │ │ │ │ └─vo │ │ │ Model.txt │ │ │ │ │ └─visitors │ │ VoPropertiesDesign.java │ │ │ ├─xgen │ │ ├─dispatch │ │ │ │ GenFacade.java │ │ │ │ │ │ │ ├─command │ │ │ │ CmdInvoker.java │ │ │ │ DefaultCommand.java │ │ │ │ GenCommand.java │ │ │ │ │ │ │ └─executechain │ │ │ DefaultHandler.java │ │ │ GenHandler.java │ │ │ │ │ ├─genconf │ │ │ │ GenConfEbi.java │ │ │ │ GenConfEbo.java │ │ │ │ GenConfFactory.java │ │ │ │ │ │ │ ├─confmanger │ │ │ │ ConfManager.java │ │ │ │ │ │ │ ├─constants │ │ │ │ ExpressionEnum.java │ │ │ │ GenConfEnum.java │ │ │ │ ModuleGenConfEnum.java │ │ │ │ ThemeEnum.java │ │ │ │ │ │ │ ├─implementors │ │ │ │ │ GenConfImplementor.java │ │ │ │ │ ModuleGenConfImplementor.java │ │ │ │ │ ThemeImplementer.java │ │ │ │ │ │ │ │ │ ├─dynamicparse │ │ │ │ │ BeanShellStrategy.java │ │ │ │ │ ParseContext.java │ │ │ │ │ ParseStrategy.java │ │ │ │ │ PropertyReplaceStrategy.java │ │ │ │ │ │ │ │ │ └─xmlimpl │ │ │ │ CommonBuilder.java │ │ │ │ GenConfBuilder.java │ │ │ │ GenConfXmlImpl.java │ │ │ │ ModuleGenConfBuilder.java │ │ │ │ ModuleGenConfXmlImpl.java │ │ │ │ ThemeBuilder.java │ │ │ │ ThemeXmlImpl.java │ │ │ │ │ │ │ └─vo │ │ │ ExtendConfModel.java │ │ │ GenConfModel.java │ │ │ GenTypeModel.java │ │ │ ModuleConfModel.java │ │ │ NeedGenModel.java │ │ │ ThemeModel.java │ │ │ │ │ ├─geninvocation │ │ │ │ BaseGenAction.java │ │ │ │ DefaultGenInvocation.java │ │ │ │ GenInvocation.java │ │ │ │ GenInvocationFactory.java │ │ │ │ │ │ │ ├─decorator │ │ │ │ DefaultComponent.java │ │ │ │ GenComponent.java │ │ │ │ GenDecorator.java │ │ │ │ ReadTemplateContent.java │ │ │ │ ReplaceMethods.java │ │ │ │ ReplaceProperty.java │ │ │ │ │ │ │ └─state │ │ │ DefaultBeginState.java │ │ │ GenState.java │ │ │ OutState.java │ │ │ State.java │ │ │ │ │ ├─genproxy │ │ │ DefaultProxy.java │ │ │ GenProxyFactory.java │ │ │ │ │ ├─mediator │ │ │ CoreMediator.java │ │ │ │ │ ├─output │ │ │ │ GenOutputEbi.java │ │ │ │ │ │ │ └─types │ │ │ │ OutputToConsole.java │ │ │ │ OutputToFile.java │ │ │ │ │ │ │ └─outputtofile │ │ │ │ AbstractFactory.java │ │ │ │ GenOutPathPackages.java │ │ │ │ Outter.java │ │ │ │ │ │ │ └─plaintxt │ │ │ GenOutPathPackageImpl.java │ │ │ OutterImpl.java │ │ │ PlainTxtFactory.java │ │ │ │ │ ├─template │ │ │ │ DefaultTemplateEbo.java │ │ │ │ TemplateEbi.java │ │ │ │ TemplateFactory.java │ │ │ │ │ │ │ ├─flyweight │ │ │ │ DefaultTemplate.java │ │ │ │ TemplateFlyweight.java │ │ │ │ TemplateFlyweightFactory.java │ │ │ │ │ │ │ └─visitors │ │ │ TemplateElement.java │ │ │ Visitor.java │ │ │ │ │ └─util │ │ ├─file │ │ │ FileHelper.java │ │ │ │ │ └─readxml │ │ Context.java │ │ ElementExpression.java │ │ ElementsExpression.java │ │ ElementsTerminalExpression.java │ │ ElementTerminalExpression.java │ │ ParseCaretaker.java │ │ ParseMemento.java │ │ ParseModel.java │ │ Parser.java │ │ Parser2.java │ │ PropertysTerminalExpression.java │ │ PropertyTerminalExpression.java │ │ ReadXmlExpression.java │ │ XmlUtil.java │ │ │ └─xgenconfxml │ GenConf.xml │ UserGenConf.xml │ └─架构一代码和ppt ActiveMQ快速上手.pdf Git快速上手.pdf Maven补充.pdf Memcached快速上手.pdf MogileFS快速上手.pdf MongoDB快速上手.pdf Nginx快速上手.pdf Varnish快速上手.pdf 基本业务功能.pdf 基础业务的建表语句.sql 最终的project源码.rar

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clichong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值