import dto.ZanmsgacPar; import util.ConvUtil; /** * ============================================================ * 【COBOL→Java】SUB02MSG メッセージ編集出力サブ * ============================================================ * PROGRAM-ID. SUB02MSG → 类 Sub02MsgSub * LINKAGE: M00MHOPAR(COPY ZANMSGAC → dto.ZanmsgacPar) * 処理概要: メッセージ番号とパラメータを編集し標準出力へ出力する。 * * ※STRING文は DELIMITED 句省略時 = DELIMITED BY SIZE: * 各 X(30) 置換項目は后尾空格含め30桁そのまま連結されるため * Java 侧也按 padRight(30) 忠实再现。 * ※DISPLAY は PIC X(303) 全長出力(后尾空格含む)。 */ public class Sub02MsgSub { /** * PROCEDURE DIVISION USING M00MHOPAR / 段落 0000MAINSOR。 */ public static void execute(final ZanmsgacPar par) { // STRING 'MSG[' M00MSGCOD '] P1=' ... INTO WRK-MSG-LINE END-STRING. String line = "MSG[" + ConvUtil.padLeftZero(par.getM00MsgCod(), 3) + "] P1=" + ConvUtil.padRight(par.getM00Umkdats2201(), 30) + " P2=" + ConvUtil.padRight(par.getM00Umkdats2202(), 30) + " P3=" + ConvUtil.padRight(par.getM00Umkdats2203(), 30) + " P4=" + ConvUtil.padRight(par.getM00Umkdats2204(), 30) + " P5=" + ConvUtil.padRight(par.getM00Umkdats2205(), 30); // DISPLAY WRK-MSG-LINE.(X(303) 全长,含后尾空格) System.out.println(ConvUtil.padRight(line, 303)); } }