一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

代码服务调用关系生成方法、装置和计算机设备与流程

2023-03-09 15:22:11 来源:中国专利 TAG:

技术特征:
1.一种代码服务调用关系生成方法,其特征在于,所述方法包括:获取待检测源代码,对所述待检测源代码进行语法解析,得到对应的语法解析树;所述语法解析树中包括与所述待检测源代码的多个代码模块对应的多个节点,节点之间的关系基于所述多个代码模块之间的对应关系确定;遍历所述语法解析树,获取所述语法解析树中方法声明代码模块与其对应的子节点中至少一个方法调用代码模块的第一关系、方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系以及各代码模块所属的服务方;所述服务方包括服务提供方和服务消费方;所述代码模块包括方法声明代码模块和方法调用代码模块;根据所述第一关系和所述第二关系,确定所述待检测源代码中代码模块间的调用关系表,并根据所述代码模块所属的服务方,向所述调用关系表中的代码模块添加对应的服务方标识,得到所述待检测源代码对应的代码服务调用关系表。2.根据权利要求1所述的方法,其特征在于,所述获取待检测源代码,对所述待检测源代码进行语法解析,得到对应的语法解析树,包括:检测所述待检测源码中的声明代码模块;所述声明代码模块包括属性声明代码模块和类声明代码模块;检测所述属性声明代码模块中的属性信息代码模块,并检测所述类声明代码模块中的类信息代码模块、方法声明代码模块和所述方法声明代码模块对应的方法调用代码模块;将所述待检测源代码所在的工程作为根节点,将所述属性声明代码模块、属性信息代码模块和所述类声明代码模块作为父节点,将所述类信息代码模块和方法声明代码模块作为所述类声明代码模块的子节点,将所述方法调用代码模块作为所述方法声明代码模块的子节点,得到所述待检测代码对应的语法解析树。3.根据权利要求2所述的方法,其特征在于,所述遍历所述语法解析树,获取所述语法解析树中方法声明代码模块与其对应的子节点中至少一个方法调用代码模块的第一关系、方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系以及各代码模块所属的服务方,包括:遍历所述语法解析树,根据所述语法解析树中方法声明代码模块及其对应的子节点中的方法调用代码模块,确定所述方法声明代码模块与其对应的子节点中至少一个方法调用代码模块的第一关系;根据所述语法解析树中每个类声明代码模块对应的子节点中的方法声明代码模块,以及每个类声明代码模块对应的父类声明代码模块和子类声明代码模块中的方法声明代码模块,确定所述方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系;根据所述语法解析树中的类声明代码模块和属性声明代码模块,确定所述类声明代码模块中的方法声明代码模块和/或方法调用代码模块所属的服务方。4.根据权利要求3所述的方法,其特征在于,所述根据所述语法解析树中方法声明代码模块及其对应的子节点中的方法调用代码模块,确定所述方法声明代码模块与其对应的子节点中至少一个方法调用代码模块的第一关系,包括:获取所述语法解析树中的方法声明代码模块,并检测所述方法声明代码模块包含的子
树,获取所述子树中的方法调用代码模块;建立所述方法声明代码模块与所述子树中的方法调用代码模块的第一关系。5.根据权利要求3所述的方法,其特征在于,所述根据所述语法解析树中每个类声明代码模块对应的子节点中的方法声明代码模块,以及每个类声明代码模块对应的父类声明代码模块和子类声明代码模块中的方法声明代码模块,确定所述方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系,包括:获取所述语法解析树中每个类声明代码模块的子树中的方法声明代码模块,若检测到所述子树中的方法声明代码模块中存在方法实现代码,则建立所述子树中的方法声明代码模块对应的方法调用代码模块与所述子树中的方法声明代码模块的当前类第二关系;确定所述每个类声明代码模块的父子关系,并获取所述语法解析树中每个类声明代码模块对应的父类声明代码模块和子类声明代码模块;针对每个类声明代码模块,若检测到该类声明代码模块对应的父类声明代码模块中,存在包含方法实现代码的父方法声明代码模块,则建立该类声明代码模块对应的第一目标方法调用代码模块与所述父方法声明代码模块的父类第二关系;所述第一目标方法调用代码模块的方法名称与所述父方法声明代码模块的方法名称相同;若检测到该类声明代码模块对应的子类声明代码模块中,存在包含方法实现代码的子方法声明代码模块,则建立所述该类声明代码模块对应的第二目标方法调用代码模块与所述子方法声明代码模块的子类第二关系;所述第二目标方法调用代码模块的方法名称与所述子方法声明代码模块的方法名称相同;根据所述当前类第二关系、所述父类第二关系和所述子类第二关系,得到所述方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系。6.根据权利要求3所述的方法,其特征在于,所述根据所述语法解析树中的类声明代码模块和属性声明代码模块,确定所述类声明代码模块中的方法声明代码模块和/或方法调用代码模块所属的服务方,包括:获取所述语法解析树中类声明代码模块的子节点中的类信息代码模块;若所述类信息代码模块对应的类信息为服务提供方,确定所述类声明代码模块对应的方法声明代码模块属于服务提供方;和/或,获取所述语法解析树中属性声明代码模块对应的属性信息代码模块;若所述属性信息代码模块对应的属性信息包含服务消费方,且所述语法解析树中的方法调用代码模块的调用主体为所述属性信息,确定所述方法调用代码模块属于服务消费方。7.根据权利要求1所述的方法,其特征在于,所述根据所述第一关系和所述第二关系,确定所述待检测源代码中代码模块间的调用关系表,包括:根据所述第一关系,确定所述方法声明代码模块与方法调用代码模块的第一关联关系;根据所述第二关系,确定所述方法调用代码模块与方法声明代码模块的第二关联关系;
若所述第二关联关系中方法调用代码模块对应的方法声明代码模块存在于所述第一关联关系中,建立所述第一关联关系中所述方法调用代码模块对应的方法声明代码模块与所述第二关联关系中所述方法调用代码模块对应的方法声明代码模块的第三关联关系;根据所述第一关联关系、第二关联关系和所述第三关联关系,确定代码模块间的调用关系表。8.根据权利要求1所述的方法,其特征在于,所述根据所述代码模块所属的服务方,向所述调用关系表中的代码模块添加对应的服务方标识,得到所述待检测源代码对应的代码服务调用关系表,包括:针对所述调用关系表中的每个方法声明代码模块,若该方法声明代码模块属于服务提供方,且该方法声明代码模块在所述调用关系表中不存在父关联关系,向该方法声明代码模块添加服务提供方标识;针对所述调用关系表中的每个方法调用代码模块,若该方法调用代码模块属于服务消费方,且该方法调用代码模块在所述调用关系表中不存在子关联关系,向该方法调用代码模块添加服务消费方标识;根据添加服务提供方标识和服务消费方标识后的调用关系表,得到代码服务调用关系表。9.根据权利要求1所述的方法,其特征在于,所述得到所述待检测源代码对应的代码服务调用关系表之后,还包括:接收代码服务调用关系查询信息,获取所述代码服务调用关系查询信息中的工程标识、类标识和方法标识;根据所述工程标识查询对应的工程,根据所述类标识在所述工程中查询对应的类名称,并根据所述方法标识在所述类名称对应的类中查询对应的方法名称;获取包含所述方法名称的代码服务调用关系表,作为查询结果。10.一种代码服务调用关系生成装置,其特征在于,所述装置包括:获取模块,用于获取待检测源代码,对所述待检测源代码进行语法解析,得到对应的语法解析树;所述语法解析树中包括与所述待检测源代码的多个代码模块对应的多个节点,节点之间的关系基于所述多个代码模块之间的对应关系确定;遍历模块,用于遍历所述语法解析树,获取所述语法解析树中方法声明代码模块与其对应的子节点中至少一个方法调用代码模块的第一关系、方法调用代码模块与其所在的类以及对应的父类和子类中的至少一个方法声明代码模块的第二关系以及各代码模块所属的服务方;所述服务方包括服务提供方和服务消费方;所述代码模块包括方法声明代码模块和方法调用代码模块;生成模块,用于根据所述第一关系和所述第二关系,确定所述待检测源代码中代码模块间的调用关系表,并根据所述代码模块所属的服务方,向所述调用关系表中的代码模块添加对应的服务方标识,得到所述待检测源代码对应的代码服务调用关系表。11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。

技术总结
本申请涉及一种代码服务调用关系生成方法、装置、计算机设备、存储介质和计算机程序产品。通过遍历待检测源代码对应的语法解析树,获取语法解析树中方法声明代码模块与其子节点中至少一个方法调用代码模块的第一关系、方法调用模块与其所在的类和对应的父类和子类中的至少一个方法声明代码模块的第二关系以及各代码模块所属的服务方,并根据第一关系和第二关系,确定待检测源代码中代码模块间的调用关系表,向调用关系表中的代码模块添加对应的服务方标识,得到对应的代码服务调用关系表。相较于传统的通过服务注册中心获取服务间调用关系,本方案在代码运行前通过遍历语法树的方式得到代码中的服务调用关系,提高了代码的可维护性。的可维护性。的可维护性。


技术研发人员:宋宇 黄生平 刘作蕊 李文俊
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2022.11.22
技术公布日:2023/3/3
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献