[发明专利]一种编程友好型的敏捷代码自动生成系统有效

专利信息
申请号: 201710378087.X 申请日: 2017-05-25
公开(公告)号: CN107273117B 公开(公告)日: 2021-04-09
发明(设计)人: 徐志宏;邓志强;吴澳;李克莱;张华杰;王国彬 申请(专利权)人: 土巴兔集团股份有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/35
代理公司: 深圳众鼎专利商标代理事务所(普通合伙) 44325 代理人: 吴英铭
地址: 518000 广东省深圳市南山西丽街道*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 编程 友好 敏捷 代码 自动 生成 系统
【权利要求书】:

1.一种编程友好型的敏捷代码自动生成系统,其特征在于,所述系统包括:

数据描述文本,用于建立待生成的代码的数据描述;所述数据描述文本为XML文本;所述数据描述包括按照预设规则语法进行定义的关键字和业务逻辑;每一个关键字均为XML文档中的一个元素;所述元素为节点或属性;该XML文档结构和组织由XMLScheme来定义,XMLScheme规定了业务模型必须提供的内容,具体包括业务组件名称、包名、业务对象类名称、属性名称、类型、长度、对应的数据表段长度;

代码模板,用于接受填入至数据描述文本解析出的参数,以生成与所述业务逻辑对应的功能模块的初始代码;

代码生成器,包括描述解析器和代码生成引擎,所述描述解析器用于将数据描述文本中的数据描述进行解析;所述代码生成引擎通过扫描相应的代码模板的占位符,找到所述描述解析器解析出的相应的数据进行填充,组装出对应功能模块的初始代码;所述描述解析器对所述XML文档进行解析的过程包括:

获取根节点,通过库函数ElementDocument.getRootElement()获取所述XML文档的根节点;

获取子节点元素,在获得根节点之后,利用递归下降法从根节点寻找其子节点,构造语法树;

获得命令参数,通过遍历整个XML文档结构,提取出所有的属性,再按照非参数属性识别规则排除整个XML文档结构中的非参数,生成命令文本模板,成对所述XML文档的解析;

所述的非参数识别规则包括两个规则项:属性名识别规则和属性值识别;判断某属性为非参数属性的判断规则为:当某个属性同时满足两个规则项时,则该属性被视为非参数属性,若一个规则项为空则只要满足另一个规则项,该属性被视为非参数属性;

合并组装模块,由代码验证器对生成的初始代码进行验证,验证通过后将每个功能模块对应的初始代码按照逻辑结构进行合并组装,同时单独存储每个功能模块对应的初始代码;对应功能模块的初始代码的组装过程包括:

检查所述描述解析器解析出的描述文件的文档语法、组织结构是否无误,验证录入的解析数据类型是否正确,如查出描述文档的内容不符合文档规定,则抛出异常信息;

读取所述描述解析器解析出的描述文件,并抽取其中的解析数据并加载到内存中以待访问;

读取所述描述解析器解析出的描述文件的具体过程为:

以命令行为单位,每读入一行进行分析,当遇到一个标题行时表示一个命令说明的开始,循环匹配直到出现另一个标题行时,表示结束对这个命令的说明;对命令行的分析采用表驱动的方式进行分析,该表为一个三维表,其中,第一维表示当前的分析状态,第二维表示当前输入行,第三维的值为“0”或“1”,其中“0”元素表示动作,“1”元素表示下一个状态,通过执行指定的动作并转到下一个状态,循环对每一行进行分析;

将分析出的所有命令的结构化数据作为解析数据存放在列表容器中,供代码模板对参数的提取以及代码的生成;

将解析数据填入相应的初始代码中;解析数据按照规定格式进行套取,加载到对应的结点和常量替换,从而生成初步的代码规范,并对应的生成包含映射类、实体类、接口类、业务逻辑类四个文件;根据设置的属性,添加包结构和路径,以及引用、备注、版本信息,生成对应的业务层代码;

分发模块,将单个功能模块与合并组装后的初始代码进行一对一关联映射,并赋予每个功能模块指向该对应功能模块开发组的代码接收容器的指针,用于在相应的功能模块的初始代码生成后被分发至对应的模块开发组的代码接收容器。

2.根据权利要求1所述的编程友好型的敏捷代码自动生成系统,其特征在于,从根节点寻找其子节点以构造语法树的过程通过函数ElementElement.getChild(Stringname)和函数ListElement.getChildren(Stringname)完成,包括步骤:

函数ElementElement.getChild(Stringname)从父节点得到名称为name的单一子节点,函数返回值为空表示有0个元素;函数Element.getChildren(Stringname)用于获取多个子元素,对于List中的每一个元素,通过List的迭代器获取,List中的元素个数通过List的size()方法确定。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于土巴兔集团股份有限公司,未经土巴兔集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710378087.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top