程序文件自动生成方法及装置的制作方法

文档序号:6431408阅读:230来源:国知局
专利名称:程序文件自动生成方法及装置的制作方法
技术领域
本发明涉及计算机领域,特别是涉及一种程序文件自动生成方法及装置。
背景技术
目前,随着可视化业务流程的发展,在越来越多的用户感觉到便利的同时,也发现了这种方式不能够完全满足用户所需要的应用场景。在现有的系统中,用户可以根据添加已实现的功能组件,来编排业务需要的流程。 通过对流程的调度,完成电信、互联网、物联网等应用场景的不同需求。编排已实现的功能组件可以较好的完成简单的应用,例如,对数值的运算、对字符串的操作等。但随着系统应用范围的不断扩大,简单的应用已经不能够满足更多的场景需要,用户需要一种更灵活的方式来实现业务的编排。

发明内容
本发明提供一种程序文件自动生成方法及装置,以解决现有技术中简单的应用已经不能够满足用户更多的场景需要的问题。本发明提供一种程序文件自动生成方法,包括获取用户输入的变量信息以及逻辑代码;根据变量信息生成变量定义语句,并将逻辑代码与变量定义语句进行绑定,生成完整的程序文件;对程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。本发明还提供了一种程序文件自动生成装置,包括获取模块,用于获取用户输入的变量信息以及逻辑代码;生成模块,用于根据变量信息生成变量定义语句,并将逻辑代码与变量定义语句进行绑定,生成完整的程序文件;编译模块,用于对程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。本发明有益效果如下通过根据用户的输入建立变量,绑定变量,在对程序代码进行编译后,生成能够直接调用的程序文件,解决了现有技术中简单的应用已经不能够满足更多的场景需要的问题,本发明实施例将模块的控制权交给用户,使用户可以使用更加灵活的方式去实现多样化的需求,能够满足专业用户对于特殊场景应用的需求,提高了应用的适用性和灵活性,达到了扩展业务应用范围的效果。


图1是本发明实施例的程序文件自动生成方法的流程图;图2是本发明实施例的在线生成JAVA代码的流程图3是本发明实施例的JAVA文件生成的流程图;图4是本发明实施例的用户操作的流程图;图5是本发明实施例的程序文件自动生成装置的结构示意图。
具体实施例方式为了解决现有技术中简单的应用已经不能够满足更多的场景需要的问题,本发明提供了一种程序文件自动生成方法及装置,用户通过图形化的界面,建立变量,绑定变量, 编写代码,本发明实施例的程序文件自动生成方法及装置将用户建立的业务生成对应的程序代码,同其他简单模块一起运行。实现对专业用户需求的满足。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。方法实施例根据本发明的实施例,提供了一种程序文件自动生成方法,图1是本发明实施例的程序文件自动生成方法的流程图,如图1所示,根据本发明实施例的程序文件自动生成方法包括如下处理步骤101,获取用户输入的变量信息以及逻辑代码;优选地,变量信息包括逻辑
变量信息以及输出变量信息;具体地,在步骤101中,获取用户输入的变量信息以及逻辑代码具体包括如下处理1、通过图形化方式,接收用户输入的变量信息,根据特定格式对变量信息进行封装,获取封装后的变量信息;2、通过图形化方式,接收用户输入的逻辑代码,根据特定格式对逻辑代码进行封装,获取封装后的逻辑代码。需要说明的是,上述特定格式可以为可扩展标i己i吾言(Extensible Markup Language,简称为 XML)格式。步骤102,根据变量信息生成变量定义语句,并将逻辑代码与变量定义语句进行绑定,生成完整的程序文件;在步骤102中,根据变量信息生成变量定义语句具体包括以下处理根据封装后的逻辑变量信息生成逻辑变量定义语句,根据封装后的输出变量信息生成输出变量定义语句,并将输出变量定义语句与预定标识符号进行绑定。需要说明的是,上述预定标识符号可以为$。上述步骤具体包括如下处理1、首先,对封装后的逻辑变量信息进行解析,获取逻辑变量名称、逻辑变量类型、 以及逻辑变量初始值,根据逻辑变量名称、逻辑变量类型、逻辑变量初始值、以及预先定义的语句形式,生成逻辑变量定义语句;2、对封装后的输出变量信息进行解析,获取输出变量名称、输出变量类型、以及输出变量初始值,根据输出变量名称、输出变量类型、输出变量初始值、以及预先定义的语句形式,生成输出变量定义语句。在步骤102中,将逻辑代码与变量定义语句进行绑定具体包括如下处理将逻辑代码设置在逻辑变量定义语句后,并将逻辑代码的运算结果赋值给与预定标识符号绑定的输出变量定义语句。
在步骤102中,生成完整的程序文件具体包括根据对当前逻辑代码进行编辑的业务的业务主键、以及逻辑代码的标识生成程序文件名称;根据程序文件名称、以及绑定后的逻辑代码与变量定义语句生成完整的程序文件。也就是说,在步骤101和步骤102中,通过图形化的方式,接收用户输入的变量名称,选择变量类型,并可为变量做初始化操作。在为用户生成程序(例如,JAVA)文件的过程中,首先就是会根据变量生成模块的信息为类定义变量,并获取变量在流程中的值。在实际应用中,需要建立变量定义界面,由变量名称、变量类型、变量初始值三个输入框组成。输入框接收用户输入的变量信息,并将信息通过特定格式(例如,XML)传入后台。后台解析XML 信息,取出变量的名称、类型、初始值。按照特定语句形式(例如,String str=“test”语句形式),生成变量的定义语句。此外,在本发明实施例中,可以通过定义符号“$”,将定义的输出变量与该符号进行绑定,符号与变量的组合作为一段程序(例如,JAVA)代码的输出变量,传递给业务流程的下一个业务。该机制的实现过程为首先建立一张变量的实际值数据库表,对应着存储变量当前的实际值。前端新建变量或选择已经存在的变量名称,名称要加“$”前缀,通过XML 传入后台。后台解析XML文件,当遇到“$”开头的变量,则将该变量作为方法的返回结果。步骤103,对程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。此外,在编译错误的情况下,提示用户程序代码编译错误,并指出错误出处。优选地,在本发明实施例中,逻辑代码可以为JAVA代码,程序文件可以为JAVA文件,编译后的程序文件可以为CLASS文件。综上所述,本发明实施例通过提供一个可视化的界面,用户只需要输入程序(例如,JAVA)类的名称,绑定需要的输出变量,编写需要的逻辑,本发明实施例的技术方案自动校验用户所编辑的程序(例如,JAVA)代码是否正确,如果编译没有通过,则会返回错误信息给前台,如果正确则自动完成变量的定义,以及输出逻辑的编写,生成相应的程序(例如,JAVA)文件。本发明实施例的技术方案将与业务流程中的其他模块进行组合,共同完成业务功能,变量将在流程之间传递,已保证信息的流通接收输入变量,按照逻辑运算后,返回给业务流程输出变量。需要说明的是,在实际应用中,本发明实施例依赖于XML的生成及解析,S卩,在线 JAVA代码的编写与JAVA文件的生成,都是通过XML文件进行传输。下面将以JAVA为例,对本发明上述技术方案进行详细说明。根据本发明实施例的技术方案,在线生成JAVA代码的方法包括以下步骤第一步,获取业务流程的变量,并按照变量的类型以及变量的初始值进行定义变量代码的生成。第二步,读取用户编写的JAVA逻辑代码,直接放到定义的变量后面。第三步,将运算结果赋值给绑定的输出变量,生成JAVA文件,作为结果放到业务流程中,供其他业务模块调用。第四步,通过编译,对JAVA代码进行语法、词法校验,并将结果返回给用户界面, 以方便修改。第五步,通过编译的JAVA代码生成CLASS文件,并将CLASS文件放到临时文件夹,待业务流程调用CLASS文件,完成对JAVA代码业务的调用。图2是本发明实施例的在线生成JAVA代码的流程图,如图2所示,包括如下处理步骤一,用户首先打开代码生成器,点击流程变量按钮,新建变量,填写变量名称、 类型以及初始值后点击确定按钮,即完成了变量的声明(变量的建立或变量的输入)。步骤二,变量声明后,在JAVA代码输入框中,编写所要实现类的主要功能的逻辑代码,编写完成后点击确定按钮。前台的信息被整合成XML格式的文件后,传入后台解析。步骤三,后台解析的顺序是,先定义变量,后填写逻辑代码,最后将结果保存到输出变量中,完成逻辑所要实现的功能。如果校验通过,则生成CLASS文件,否则提示用户错误所在,待用户修改后,重新编译。 图3是本发明实施例的JAVA文件生成的流程图,如图3所示,包括如下处理步骤一,界面将用户录入的代码片段、当前业务的变量上下文(变量名称,变量数据类型缺省值)、当前业务流程中要更新的目标变量名称(可以有多个)、当前所编辑JAVA 代码业务的业务主键、JAVA代码模块的标识,共五项发送给后台的servlet,其中,Servlet 是一种服务器端的JAVA应用程序。步骤二,Servlet的处理逻辑首先生成JAVA文件名称。步骤三,Servlet根据文件名称、逻辑语句、需要更新的目标变量名称在内存中形成一个JAVA文件。步骤四,编译JAVA文件,判断编译是否通过,如果通过,则生成CLASS文件,如果编译错误,则向用户进行错误反馈。图4是本发明实施例的用户操作的流程图,如图4所示,包括如下处理步骤一,用户打开JAVA生成装置。步骤二,用户根据提示填写变量。步骤三,用户在代码输入框编写代码片段。步骤四,保存生成后的CLASS文件。在实际应用中,在JAVA代码生成的处理中,首先需要通过html和JavMcript建立编辑页面,通过三个输入框分别接受变量名称、类型以及初始值的定义。再添加text area用来接受JAVA代码片段的编辑。通过auto complete生成变量绑定选择器,选择需要的变量作为输出。在代码片段以及变量编辑完成后,通过createElement方法创建XML节点,将变量的信息以及代码片段,作为XML文件的属性值,将页面的内容整合成为一个XML文件,通过 ajax将XML文件传入后台。将XML文件传入后台后,此时会触发后台的类加载校验以及生成临时文件的功能,如果后台编译(验证)通过了,则通过File操作,生成CLASS文件,并将CLASS文件放到临时文件夹下,界面上的反应为在线生成java代码成功;如果编译没有通过,即验证没有通过,此时,推算出出错的原始行号,并将行号和出错信息反馈到前台。在运行时,首先根据业务主键在一个缓存对象中查找是否有已经生成的class loader,该缓存对象是在代码生成器启动的过程中,加载到内存。如果已经存在,则使用缓存的loader,如果没有找到,则新建一个,并加入缓存,然后使用此loader去加载表达式 CLASS 类。
需要说明的是,本发明实施例的技术方案还可以作为一个独立的应用,不止是为业务流程服务。可以作为一个独立的应用,帮助使用者摆脱对编译环境的依赖。用户只需要定义变量,并编写逻辑代码,装置可以将代码整合为完整的JAVA文件。并对JAVA文件进行编译,如果存在编译错误。将错误信息反馈给用户。如果编译通过则生成CLASS文件,供用户调用。用户可以使用生成的CLASS文件,应用到不同的场景。本发明实施例可以作为一个封装的功能模块,实现业务的即插即用。本发明实施例的技术方案与现有技术相比,无论在适用性和灵活性方面都得到了有效的提高,达到了扩展业务应用范围的效果。首先,现有技术中的流程化模块开发工具都是由服务提供商提供已经编写好的服务,用户只能完全接受模块的使用。本发明实施例的技术方案可以将模块的控制权交给用户,是用户有更加灵活的方式去实现多样化的需求。其次,本发明实施例可以作为一个独立的应用,帮助用户完成JAVA代码的编写。 现有技术中的代码编写方式,需要用户拥有编辑器,需要使用者写出完整的代码,从而需要进行很多重复的工作。本发明实施例可以为用户提供一个可视化的编程方式,使用者只需要按照页面的方式,填写相应的内容,代码生成器会为使用者自动生成完整的JAVA文件, 并进行编译检查,确保代码的正确性。装置实施例根据本发明的实施例,提供了一种程序文件自动生成装置,图5是本发明实施例的程序文件自动生成装置的结构示意图,如图5所示,根据本发明实施例的程序文件自动生成装置包括获取模块50、生成模块52、以及编译模块54,以下对本发明实施例的各个模块进行详细的说明。获取模块50,用于获取用户输入的变量信息以及逻辑代码;优选地,变量信息包括逻辑变量信息以及输出变量信息;获取模块50具体用于通过图形化方式,接收用户输入的变量信息,根据特定格式对变量信息进行封装,获取封装后的变量信息;通过图形化方式,接收用户输入的逻辑代码,根据特定格式对逻辑代码进行封装,获取封装后的逻辑代码;需要说明的是,上述特定格式可以为可扩展标记语言(Extensible Markup Language,简称为XML)格式。生成模块52,用于根据变量信息生成变量定义语句,并将逻辑代码与变量定义语句进行绑定,生成完整的程序文件;生成模块52具体用于根据封装后的逻辑变量信息生成逻辑变量定义语句,根据封装后的输出变量信息生成输出变量定义语句,并将输出变量定义语句与预定标识符号进行绑定;将逻辑代码设置在逻辑变量定义语句后,并将逻辑代码的运算结果赋值给与预定标识符号绑定的输出变量定义语句;需要说明的是,上述预定标识符号可以为$。生成模块52具体用于对封装后的逻辑变量信息进行解析,获取逻辑变量名称、 逻辑变量类型、以及逻辑变量初始值,根据逻辑变量名称、逻辑变量类型、逻辑变量初始值、 以及预先定义的语句形式,生成逻辑变量定义语句;对封装后的输出变量信息进行解析,获取输出变量名称、输出变量类型、以及输出变量初始值,根据输出变量名称、输出变量类型、 输出变量初始值、以及预先定义的语句形式,生成输出变量定义语句;生成模块52具体用于根据对当前逻辑代码进行编辑的业务的业务主键、以及逻辑代码的标识生成程序文件名称;根据程序文件名称、以及绑定后的逻辑代码与变量定义语句生成完整的程序文件;也就是说,从上述处理可以看出,通过图形化的方式,接收用户输入的变量名称, 选择变量类型,并可为变量做初始化操作。在为用户生成程序(例如,JAVA)文件的过程中, 首先就是会根据变量生成模块的信息为类定义变量,并获取变量在流程中的值。在实际应用中,需要建立变量定义界面,由变量名称、变量类型、变量初始值三个输入框组成。输入框接收用户输入的变量信息,并将信息通过特定格式(例如,XML)传入后台。后台解析XML信息,取出变量的名称、类型、初始值。按照特定语句形式(例如,String str=“test”语句形式),生成变量的定义语句。此外,在本发明实施例中,可以通过定义符号“$”,将定义的输出变量与该符号进行绑定,符号与变量的组合作为一段程序(例如,JAVA)代码的输出变量,传递给业务流程的下一个业务。该机制的实现过程为首先建立一张变量的实际值数据库表,对应着存储变量当前的实际值。前端新建变量或选择已经存在的变量名称,名称要加“$”前缀,通过XML 传入后台。后台解析XML文件,当遇到“$”开头的变量,则将该变量作为方法的返回结果。编译模块M,用于对程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。编译模块M进一步用于在编译错误的情况下,提示用户程序代码编译错误,并指出错误出处。优选地,在本发明实施例中,逻辑代码可以为JAVA代码,程序文件可以为JAVA文件,编译后的程序文件可以为CLASS文件。综上所述,本发明实施例通过提供一个可视化的界面,用户只需要输入程序(例如,JAVA)类的名称,绑定需要的输出变量,编写需要的逻辑,本发明实施例的技术方案自动校验用户所编辑的程序(例如,JAVA)代码是否正确,如果编译没有通过,则会返回错误信息给前台,如果正确则自动完成变量的定义,以及输出逻辑的编写,生成相应的程序(例如,JAVA)文件。本发明实施例的技术方案将与业务流程中的其他模块进行组合,共同完成业务功能,变量将在流程之间传递,已保证信息的流通接收输入变量,按照逻辑运算后,返回给业务流程输出变量。需要说明的是,在实际应用中,本发明实施例依赖于XML的生成及解析,S卩,在线 JAVA代码的编写与JAVA文件的生成,都是通过XML文件进行传输。在方法实施例中,已经以JAVA为例,对本发明实施例的技术方案进行了详细的说明,在本发明实施例中,可以参照图2至图4进行理解,在此不再赘述。综上所述,本发明实施例通过根据用户的输入建立变量,绑定变量,在对程序代码进行编译后,生成能够直接调用的程序文件,解决了现有技术中简单的应用已经不能够满足更多的场景需要的问题,本发明实施例将模块的控制权交给用户,使用户可以使用更加灵活的方式去实现多样化的需求,能够满足专业用户对于特殊场景应用的需求,提高了应用的适用性和灵活性,达到了扩展业务应用范围的效果。尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
权利要求
1.一种程序文件自动生成方法,其特征在于,包括获取用户输入的变量信息以及逻辑代码;根据所述变量信息生成变量定义语句,并将所述逻辑代码与所述变量定义语句进行绑定,生成完整的程序文件;对所述程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。
2.如权利要求1所述的方法,其特征在于,获取用户输入的变量信息以及逻辑代码具体包括通过图形化方式,接收用户输入的变量信息,根据特定格式对所述变量信息进行封装, 获取封装后的所述变量信息;通过所述图形化方式,接收用户输入的逻辑代码,根据特定格式对所述逻辑代码进行封装,获取封装后的所述逻辑代码。
3.如权利要求2所述的方法,其特征在于,所述变量信息包括逻辑变量信息以及输出变量信息;根据所述变量信息生成变量定义语句具体包括根据封装后的所述逻辑变量信息生成逻辑变量定义语句,根据封装后的所述输出变量信息生成输出变量定义语句,并将所述输出变量定义语句与预定标识符号进行绑定。
4.如权利要求3所述的方法,其特征在于,根据封装后的所述逻辑变量信息生成逻辑变量定义语句,根据封装后的所述输出变量信息生成输出变量定义语句具体包括对封装后的所述逻辑变量信息进行解析,获取逻辑变量名称、逻辑变量类型、以及逻辑变量初始值,根据所述逻辑变量名称、所述逻辑变量类型、所述逻辑变量初始值、以及预先定义的语句形式,生成所述逻辑变量定义语句;对封装后的所述输出变量信息进行解析,获取输出变量名称、输出变量类型、以及输出变量初始值,根据所述输出变量名称、所述输出变量类型、所述输出变量初始值、以及所述预先定义的语句形式,生成所述输出变量定义语句。
5.如权利要求3所述的方法,其特征在于,将所述逻辑代码与所述变量定义语句进行绑定具体包括将所述逻辑代码设置在所述逻辑变量定义语句后,并将所述逻辑代码的运算结果赋值给与所述预定标识符号绑定的输出变量定义语句。
6.如权利要求5所述的方法,其特征在于,所述生成完整的程序文件具体包括根据对当前逻辑代码进行编辑的业务的业务主键、以及所述逻辑代码的标识生成程序文件名称;根据所述程序文件名称、以及绑定后的所述逻辑代码与所述变量定义语句生成所述完整的程序文件。
7.如权利要求1所述的方法,其特征在于,所述方法还包括在编译错误的情况下,提示用户所述程序代码编译错误,并指出错误出处。
8.如权利要求1至7中任一项所述的方法,其特征在于,所述逻辑代码为JAVA代码,所述程序文件为JAVA文件,所述编译后的程序文件为CLASS文件。
9.一种程序文件自动生成装置,其特征在于,包括获取模块,用于获取用户输入的变量信息以及逻辑代码;生成模块,用于根据所述变量信息生成变量定义语句,并将所述逻辑代码与所述变量定义语句进行绑定,生成完整的程序文件;编译模块,用于对所述程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。
10.如权利要求9所述的装置,其特征在于,所述获取模块具体用于通过图形化方式,接收用户输入的变量信息,根据特定格式对所述变量信息进行封装,获取封装后的所述变量信息;通过所述图形化方式,接收用户输入的逻辑代码,根据特定格式对所述逻辑代码进行封装,获取封装后的所述逻辑代码,其中, 所述变量信息包括逻辑变量信息以及输出变量信息;所述生成模块具体用于根据封装后的所述逻辑变量信息生成逻辑变量定义语句,根据封装后的所述输出变量信息生成输出变量定义语句,并将所述输出变量定义语句与预定标识符号进行绑定;将所述逻辑代码设置在所述逻辑变量定义语句后,并将所述逻辑代码的运算结果赋值给与所述预定标识符号绑定的输出变量定义语句;所述生成模块具体用于对封装后的所述逻辑变量信息进行解析,获取逻辑变量名称、 逻辑变量类型、以及逻辑变量初始值,根据所述逻辑变量名称、所述逻辑变量类型、所述逻辑变量初始值、以及预先定义的语句形式,生成所述逻辑变量定义语句;对封装后的所述输出变量信息进行解析,获取输出变量名称、输出变量类型、以及输出变量初始值,根据所述输出变量名称、所述输出变量类型、所述输出变量初始值、以及所述预先定义的语句形式, 生成所述输出变量定义语句;所述生成模块具体用于根据对当前逻辑代码进行编辑的业务的业务主键、以及所述逻辑代码的标识生成程序文件名称;根据所述程序文件名称、以及绑定后的所述逻辑代码与所述变量定义语句生成所述完整的程序文件;所述编译模块进一步用于在编译错误的情况下,提示用户所述程序代码编译错误,并指出错误出处。
全文摘要
本发明公开了一种程序文件自动生成方法及装置。该方法包括获取用户输入的变量信息以及逻辑代码;根据变量信息生成变量定义语句,并将逻辑代码与变量定义语句进行绑定,生成完整的程序文件;对程序文件进行编译,在编译通过的情况下,生成编译后的程序文件。借助于本发明的技术方案,能够满足专业用户对于特殊场景应用的需求,提高了应用的适用性和灵活性,达到了扩展业务应用范围的效果。
文档编号G06F9/44GK102306102SQ20111024544
公开日2012年1月4日 申请日期2011年8月25日 优先权日2011年8月25日
发明者郭洪霖 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1