1
2
3
4
5
6
7
8
9
10
11 package com.legstar.coxb;
12
13
14
15
16
17
18
19
20
21 public final class CobolUsage {
22
23
24
25
26 private CobolUsage() {
27
28 }
29
30
31 public static final String DISPLAY = "DISPLAY";
32
33 public static final String DISPLAY_1 = "DISPLAY-1";
34
35 public static final String NATIONAL = "NATIONAL";
36
37 public static final String BINARY = "BINARY";
38
39 public static final String COMP_5 = "COMP-5";
40
41 public static final String PACKED_DECIMAL = "COMP-3";
42
43 public static final String COMP_1 = "COMP-1";
44
45 public static final String COMP_2 = "COMP-2";
46
47 public static final String INDEX = "INDEX";
48
49 public static final String POINTER = "POINTER";
50
51 public static final String PROCEDURE_POINTER = "PROCEDURE-POINTER";
52
53 public static final String FUNCTION_POINTER = "FUNCTION-POINTER";
54
55
56 public enum Usage {
57
58 BINARY,
59
60 SINGLEFLOAT,
61
62 DOUBLEFLOAT,
63
64 PACKEDDECIMAL,
65
66 NATIVEBINARY,
67
68 DISPLAY,
69
70 DISPLAY1,
71
72 INDEX,
73
74 NATIONAL,
75
76 POINTER,
77
78 PROCEDUREPOINTER,
79
80 FUNCTIONPOINTER
81 };
82
83
84
85
86
87 public static String getCobolUsage(Usage usage) {
88 if (usage == null) {
89 return null;
90 }
91 switch (usage) {
92 case BINARY:
93 return BINARY;
94 case SINGLEFLOAT:
95 return COMP_1;
96 case DOUBLEFLOAT:
97 return COMP_2;
98 case PACKEDDECIMAL:
99 return PACKED_DECIMAL;
100 case NATIVEBINARY:
101 return COMP_5;
102 case DISPLAY:
103 return DISPLAY;
104 case DISPLAY1:
105 return DISPLAY_1;
106 case INDEX:
107 return INDEX;
108 case NATIONAL:
109 return NATIONAL;
110 case POINTER:
111 return POINTER;
112 case PROCEDUREPOINTER:
113 return PROCEDURE_POINTER;
114 case FUNCTIONPOINTER:
115 return FUNCTION_POINTER;
116 default:
117 throw new IllegalArgumentException("Unknown Enum usage: " + usage);
118
119 }
120 }
121
122
123
124
125
126
127
128 public static Usage getUsage(String cobolUsage) {
129 if (cobolUsage == null) {
130 return null;
131 }
132 if (cobolUsage.equals(BINARY)) {
133 return Usage.BINARY;
134 } else if (cobolUsage.equals("COMP")) {
135 return Usage.BINARY;
136 } else if (cobolUsage.equals("COMPUTATIONAL")) {
137 return Usage.BINARY;
138 } else if (cobolUsage.equals("COMP-4")) {
139 return Usage.BINARY;
140 } else if (cobolUsage.equals("COMPUTATIONAL-4")) {
141 return Usage.BINARY;
142 } else if (cobolUsage.equals(COMP_1)) {
143 return Usage.SINGLEFLOAT;
144 } else if (cobolUsage.equals(COMP_2)) {
145 return Usage.DOUBLEFLOAT;
146 } else if (cobolUsage.equals(PACKED_DECIMAL)) {
147 return Usage.PACKEDDECIMAL;
148 } else if (cobolUsage.equals("PACKED-DECIMAL")) {
149 return Usage.PACKEDDECIMAL;
150 } else if (cobolUsage.equals("COMPUTATIONAL-3")) {
151 return Usage.PACKEDDECIMAL;
152 } else if (cobolUsage.equals(COMP_5)) {
153 return Usage.NATIVEBINARY;
154 } else if (cobolUsage.equals("COMPUTATIONAL-5")) {
155 return Usage.NATIVEBINARY;
156 } else if (cobolUsage.equals(DISPLAY)) {
157 return Usage.DISPLAY;
158 } else if (cobolUsage.equals(DISPLAY_1)) {
159 return Usage.DISPLAY1;
160 } else if (cobolUsage.equals(INDEX)) {
161 return Usage.INDEX;
162 } else if (cobolUsage.equals(NATIONAL)) {
163 return Usage.NATIONAL;
164 } else if (cobolUsage.equals(POINTER)) {
165 return Usage.POINTER;
166 } else if (cobolUsage.equals(PROCEDURE_POINTER)) {
167 return Usage.PROCEDUREPOINTER;
168 } else if (cobolUsage.equals(FUNCTION_POINTER)) {
169 return Usage.FUNCTIONPOINTER;
170 } else {
171 throw new IllegalArgumentException("Unknown COBOL usage: "
172 + cobolUsage);
173 }
174
175 }
176
177 }