本例是通过工具将cobol代码自动生成java代码。生成后的java代码是按照java编程风格生成的,完全屏蔽了cobol的特性。
一个cobol代码生成了4个java代码,分别说文件定义,变量定义,语句代码。
生成的代码有可执行程序,本例只展示生成的代码。
cobol代码 工具转换生成的java代码
1:文件结构- package cobol.filevar;
- import java.math.BigDecimal;
- import comm.BaseFile;
- import comm.StringDataUtils;
- /**
- * a 工具转换生成类
- * a 数据文件使用的数据结构定义
- * @author lihaibo
- *
- */
- public class Inputfile1 extends BaseFile{
- public int id1 = 0;
- public String name1 = "";
- public int kemu1 = 0;
- public BigDecimal chengji1 = new BigDecimal(0);
- public Inputfile1(String fileName) {
- super(fileName);
- }
- public String getData() {
- String rowData = "";
- rowData += StringDataUtils.getData(id1, true);
- rowData += StringDataUtils.getData(name1, false);
- rowData += StringDataUtils.getData(kemu1, false);
- rowData += StringDataUtils.getData(chengji1, false);
- return rowData;
- }
- public void setData(String rowData) {
- String[] arr = StringDataUtils.split(rowData);
- id1 = StringDataUtils.getInt(arr, 0);
- name1 = StringDataUtils.getStr(arr, 1);
- kemu1 = StringDataUtils.getInt(arr, 2);
- chengji1 = StringDataUtils.getBigDecimal(arr, 3);
- }
- }
复制代码 文件的定义2- package cobol.filevar;
- import java.math.BigDecimal;
- import comm.BaseFile;
- import comm.StringDataUtils;
- /**
- * a 工具转换生成类
- * a 数据文件使用的数据结构定义
- * @author lihaibo
- *
- */
- public class Output1 extends BaseFile{
- public int id2 = 0;
- public String name2 = "";
- public BigDecimal sum2 = new BigDecimal(0);
- public String hege = "";
- public Output1(String fileName) {
- super(fileName);
- }
- public String getData() {
- String rowData = "";
- rowData += StringDataUtils.getData(id2, true);
- rowData += StringDataUtils.getData(name2, false);
- rowData += StringDataUtils.getData(sum2, false);
- rowData += StringDataUtils.getData(hege, false);
- return rowData;
- }
- public void setData(String rowData) {
- String[] arr = StringDataUtils.split(rowData);
- id2 = StringDataUtils.getInt(arr, 0);
- name2 = StringDataUtils.getStr(arr, 1);
- sum2 = StringDataUtils.getBigDecimal(arr, 2);
- hege = StringDataUtils.getStr(arr, 3);
- }
- }
复制代码
变量定义- package cobol.src;
- import cobol.filevar.Inputfile1;
- import cobol.filevar.Output1;
- /**
- * a 工具转换生成类
- * a 程序用变量定义
- * @author lihaibo
- *
- */
- public class YourProgramNameVar{
- // 文件对象变量
- public Inputfile1 inputfile1 = new Inputfile1("E:\\source\\cobol\\testdata\\src\\testfile\\input.txt");
- public Output1 output1 = new Output1("E:\\source\\cobol\\testdata\\src\\testfile\\out.txt");
- // work内部对象变量
- public int aa = 0;
- public int eofmod = 0;
- public String fs = "";
- public int testred = 0;
- // Param参数对象变量
- }
复制代码
执行代码- package cobol.src;
- import java.math.BigDecimal;
- import cobol.filevar.Inputfile1;
- import cobol.filevar.Output1;
- import comm.FileOpenEnum;
- /**
- * a 工具转换生成类
- * a 程序转换后代码
- * @author lihaibo
- *
- */
- public class YourProgramNameSrc{
- // 程序使用的变量对象
- public YourProgramNameVar yourProgramNameVar = new YourProgramNameVar();
- // 外部接口方法
- public void mainExec(){
- System.out.println("start exec ");
- mainProcedure();
- }
- private int mainProcedure(){
- yourProgramNameVar.aa = 0;
- System.out.println(String.valueOf(yourProgramNameVar.aa) + "b");
- System.out.println("Hello world");
- if(creatfiledata() == 1){
- return 1;
- }
- sumchegnji();
- return 1;
- }
- private int creatfiledata(){
- yourProgramNameVar.inputfile1.open(FileOpenEnum.OUTPUT);
- yourProgramNameVar.inputfile1.id1 = 1;
- yourProgramNameVar.inputfile1.id1 = 1 + 1;
- yourProgramNameVar.inputfile1.name1 = "张三";
- yourProgramNameVar.inputfile1.kemu1 = 1;
- yourProgramNameVar.inputfile1.chengji1 = new BigDecimal(80.5);
- yourProgramNameVar.inputfile1.writeLine(yourProgramNameVar.inputfile1.getData());
- System.out.println("TEST1");
- yourProgramNameVar.inputfile1.id1 = 1;
- yourProgramNameVar.inputfile1.name1 = "张三";
- yourProgramNameVar.inputfile1.kemu1 = 2;
- yourProgramNameVar.inputfile1.chengji1 = new BigDecimal(90);
- System.out.println("TEST21" + ".");
- if( yourProgramNameVar.inputfile1.chengji1.compareTo(new BigDecimal(0)) <= 0){
- System.out.println("ERROR" + " END");
- return 1;
- }
- yourProgramNameVar.inputfile1.writeLine(yourProgramNameVar.inputfile1.getData());
- System.out.println("WRITE OK");
- yourProgramNameVar.inputfile1.close();
- return 0;
- }
- private void sumchegnji(){
- yourProgramNameVar.output1.id2 = yourProgramNameVar.inputfile1.id1;
- yourProgramNameVar.output1.name2 = yourProgramNameVar.inputfile1.name1;
- yourProgramNameVar.output1.sum2 = new BigDecimal(0);
- yourProgramNameVar.output1.hege = " ";
- yourProgramNameVar.eofmod = 0;
- yourProgramNameVar.fs = "00";
- yourProgramNameVar.inputfile1.open(FileOpenEnum.INPUT);
- while(!( yourProgramNameVar.fs.compareTo("00") != 0)) {
- yourProgramNameVar.inputfile1.readLine();
- yourProgramNameVar.fs = yourProgramNameVar.inputfile1.statu1;
- System.out.println(yourProgramNameVar.fs);
- if( yourProgramNameVar.fs.compareTo("00") == 0){
- if( yourProgramNameVar.inputfile1.id1 == 1){
- yourProgramNameVar.output1.sum2 = yourProgramNameVar.output1.sum2.add(yourProgramNameVar.inputfile1.chengji1);
- }
- }
- }
- yourProgramNameVar.inputfile1.close();
- System.out.println(String.valueOf(yourProgramNameVar.output1.sum2));
- outdata();
- }
- private void outdata(){
- yourProgramNameVar.output1.open(FileOpenEnum.OUTPUT);
- if( yourProgramNameVar.output1.sum2.compareTo(new BigDecimal(120)) >= 0){
- yourProgramNameVar.output1.hege = "A";
- }else{
- yourProgramNameVar.output1.hege = "D";
- }
- yourProgramNameVar.output1.writeLine(yourProgramNameVar.output1.getData());
- yourProgramNameVar.output1.close();
- outdataText2();
- }
- private void outdataText2(){
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |