4040/** DISPLAY文やACCEPT文に関するメソッドを実装するクラス */
4141public class CobolTerminal {
4242
43- /** TDOD: 準備中 */
43+ /** DISPLAY文で設定されたコマンドラインデータのバイト数 */
4444 private static int commlncnt = 0 ;
4545
46- /** TDOD: 準備中 */
46+ /** DISPLAY文で設定されたコマンドラインデータのバイト配列 */
4747 private static byte [] commlnptr = null ;
4848
4949 /**
@@ -115,7 +115,7 @@ public static void display(
115115 /**
116116 * 標準入力からデータを受け取る
117117 *
118- * @param f TODO: 準備中
118+ * @param f 入力データを格納するCOBOL変数
119119 */
120120 public static void accept (AbstractCobolField f ) {
121121 try {
@@ -152,9 +152,12 @@ public static void accept(AbstractCobolField f) {
152152 // Time
153153
154154 /**
155- * libcob/common.c job_or_current_localtime
155+ * COB_DATE環境変数で設定された日時または現在時刻を返す. COB_DATE環境変数で設定された日時({@link
156+ * CobolUtil#cobLocalTm})が存在する場合はその値を返し, 設定されていない場合は現在時刻を返す.
156157 *
157- * @return TODO: 準備中
158+ * <p>libcob/common.cのjob_or_current_localtimeに対応する.
159+ *
160+ * @return COB_DATE環境変数で設定された日時または現在のローカル日時
158161 */
159162 private static LocalDateTime jobOrCurrentLocalTime () {
160163 if (CobolUtil .cobLocalTm != null ) {
@@ -165,9 +168,9 @@ private static LocalDateTime jobOrCurrentLocalTime() {
165168 }
166169
167170 /**
168- * TODO: 準備中
171+ * ACCEPT FROM DATE文の実装. 現在の日付を"yyMMdd"形式(2桁年+月+日)でCOBOL変数に格納する.
169172 *
170- * @param f TODO: 準備中
173+ * @param f 日付データを格納するCOBOL変数
171174 */
172175 public static void acceptDate (AbstractCobolField f ) {
173176 LocalDateTime date = jobOrCurrentLocalTime ();
@@ -176,9 +179,9 @@ public static void acceptDate(AbstractCobolField f) {
176179 }
177180
178181 /**
179- * TODO: 準備中
182+ * ACCEPT FROM DATE YYYYMMDD文の実装. 現在の日付を"yyyyMMdd"形式(4桁年+月+日)でCOBOL変数に格納する.
180183 *
181- * @param f TODO: 準備中
184+ * @param f 日付データを格納するCOBOL変数
182185 */
183186 public static void acceptDate_yyyymmdd (AbstractCobolField f ) {
184187 LocalDateTime date = jobOrCurrentLocalTime ();
@@ -187,9 +190,9 @@ public static void acceptDate_yyyymmdd(AbstractCobolField f) {
187190 }
188191
189192 /**
190- * TODO: 準備中
193+ * ACCEPT FROM DAY文の実装. 現在の日付を"yyDDD"形式(2桁年+年間通算日)でCOBOL変数に格納する.
191194 *
192- * @param f TODO: 準備中
195+ * @param f 日付データを格納するCOBOL変数
193196 */
194197 public static void acceptDay (AbstractCobolField f ) {
195198 LocalDateTime date = jobOrCurrentLocalTime ();
@@ -198,9 +201,9 @@ public static void acceptDay(AbstractCobolField f) {
198201 }
199202
200203 /**
201- * TODO: 準備中
204+ * ACCEPT FROM DAY YYYYDDD文の実装. 現在の日付を"yyyyDDD"形式(4桁年+年間通算日)でCOBOL変数に格納する.
202205 *
203- * @param f TODO: 準備中
206+ * @param f 日付データを格納するCOBOL変数
204207 */
205208 public static void acceptDay_yyyyddd (AbstractCobolField f ) {
206209 LocalDateTime date = jobOrCurrentLocalTime ();
@@ -209,19 +212,22 @@ public static void acceptDay_yyyyddd(AbstractCobolField f) {
209212 }
210213
211214 /**
212- * TODO: 準備中
215+ * ACCEPT FROM DAY-OF-WEEK文の実装. 現在の曜日を1桁の数値(1=月曜日〜7=日曜日)でCOBOL変数に格納する.
213216 *
214- * @param f TODO: 準備中
217+ * @param f 曜日データを格納するCOBOL変数
215218 */
216219 public static void acceptDayOfWeek (AbstractCobolField f ) {
217220 LocalDateTime date = jobOrCurrentLocalTime ();
218221 f .memcpy (String .format ("%d" , date .getDayOfWeek ().getValue ()));
219222 }
220223
221224 /**
222- * TODO: 準備中
225+ * ACCEPT FROM TIME文の実装. 現在の時刻を"HHmmssSS"形式(時+分+秒+1/100秒)でCOBOL変数に格納する.
226+ *
227+ * <p>他の日付系メソッド({@link #acceptDate(AbstractCobolField)}等)とは異なり, {@link
228+ * #jobOrCurrentLocalTime()}を使用せず{@code LocalDateTime.now()}を直接呼び出すため, COB_DATE環境変数の設定は反映されない.
223229 *
224- * @param f TODO: 準備中
230+ * @param f 時刻データを格納するCOBOL変数
225231 */
226232 public static void acceptTime (AbstractCobolField f ) {
227233 LocalDateTime date = LocalDateTime .now ();
@@ -232,18 +238,21 @@ public static void acceptTime(AbstractCobolField f) {
232238 // Environment
233239
234240 /**
235- * TODO: 準備中
241+ * DISPLAY UPON ENVIRONMENT-NAME文の実装. 後続の{@link #displayEnvValue(AbstractCobolField)}や{@link
242+ * #acceptEnvironment(AbstractCobolField)}で使用する環境変数名を設定する.
236243 *
237- * @param f TODO: 準備中
244+ * @param f 環境変数名を保持するCOBOL変数
238245 */
239246 public static void displayEnvironment (AbstractCobolField f ) {
240247 CobolUtil .cobLocalEnv = f .fieldToString ();
241248 }
242249
243250 /**
244- * TODO: 準備中
251+ * DISPLAY UPON ENVIRONMENT-VALUE文の実装. {@link #displayEnvironment(AbstractCobolField)}
252+ * で設定された環境変数名に対して値を設定する. 環境変数名が未設定または空文字列の場合は{@link
253+ * CobolExceptionId#COB_EC_IMP_DISPLAY}例外を設定する.
245254 *
246- * @param f TODO: 準備中
255+ * @param f 設定する環境変数の値を保持するCOBOL変数
247256 */
248257 public static void displayEnvValue (AbstractCobolField f ) {
249258 if (CobolUtil .cobLocalEnv == null || CobolUtil .cobLocalEnv .equals ("" )) {
@@ -254,9 +263,11 @@ public static void displayEnvValue(AbstractCobolField f) {
254263 }
255264
256265 /**
257- * TODO: 準備中
266+ * ACCEPT FROM ENVIRONMENT-VALUE文の実装. {@link #displayEnvironment(AbstractCobolField)}
267+ * で設定された環境変数名の値を取得し,COBOL変数に格納する. 環境変数名が未設定の場合や環境変数が存在しない場合は{@link
268+ * CobolExceptionId#COB_EC_IMP_ACCEPT}例外を設定し,スペース1文字を格納する.
258269 *
259- * @param f TODO: 準備中
270+ * @param f 環境変数の値を格納するCOBOL変数
260271 */
261272 public static void acceptEnvironment (AbstractCobolField f ) {
262273 String p = null ;
@@ -276,9 +287,10 @@ public static void acceptEnvironment(AbstractCobolField f) {
276287 }
277288
278289 /**
279- * TODO: 準備中
290+ * DISPLAY UPON COMMAND-LINE文の実装. COBOL変数の内容をコマンドラインデータとして内部バッファに保存する.
291+ * 保存されたデータは{@link #acceptCommandLine(AbstractCobolField)}で取得できる.
280292 *
281- * @param f TODO: 準備中
293+ * @param f コマンドラインとして設定するデータを保持するCOBOL変数
282294 */
283295 public static void displayCommandLine (AbstractCobolField f ) {
284296 CobolTerminal .commlnptr = new byte [f .getSize ()];
@@ -289,9 +301,11 @@ public static void displayCommandLine(AbstractCobolField f) {
289301 }
290302
291303 /**
292- * TODO: 準備中
304+ * ACCEPT FROM COMMAND-LINE文の実装. {@link #displayCommandLine(AbstractCobolField)}
305+ * で設定されたコマンドラインデータが存在する場合はそのデータを返し,
306+ * 存在しない場合はプログラム起動時のコマンドライン引数をスペース区切りで結合した文字列をCOBOL変数に格納する.
293307 *
294- * @param f TODO: 準備中
308+ * @param f コマンドラインデータを格納するCOBOL変数
295309 */
296310 public static void acceptCommandLine (AbstractCobolField f ) {
297311 if (CobolTerminal .commlncnt != 0 ) {
@@ -303,9 +317,11 @@ public static void acceptCommandLine(AbstractCobolField f) {
303317 }
304318
305319 /**
306- * TODO: 準備中
320+ * DISPLAY UPON ARGUMENT-NUMBER文の実装. COBOL変数の値を現在の引数インデックスとして設定する.
321+ * 値が0未満またはコマンドライン引数の数を超える場合は{@link
322+ * CobolExceptionId#COB_EC_IMP_DISPLAY}例外を設定する.
307323 *
308- * @param f TODO: 準備中
324+ * @param f 引数インデックス(1始まり)を保持するCOBOL変数
309325 */
310326 public static void displayArgNumber (AbstractCobolField f ) {
311327 CobolFieldAttribute attr =
@@ -323,9 +339,9 @@ public static void displayArgNumber(AbstractCobolField f) {
323339 }
324340
325341 /**
326- * TODO: 準備中
342+ * ACCEPT FROM ARGUMENT-NUMBER文の実装. コマンドライン引数の総数をCOBOL変数に格納する.
327343 *
328- * @param f TODO: 準備中
344+ * @param f 引数の総数を格納するCOBOL変数
329345 */
330346 public static void acceptArgNumber (AbstractCobolField f ) {
331347 CobolFieldAttribute attr =
@@ -338,9 +354,11 @@ public static void acceptArgNumber(AbstractCobolField f) {
338354 }
339355
340356 /**
341- * TODO: 準備中
357+ * ACCEPT FROM ARGUMENT-VALUE文の実装. {@link #displayArgNumber(AbstractCobolField)}
358+ * で設定された引数インデックスに対応するコマンドライン引数の値をCOBOL変数に格納し, インデックスを1つ進める.
359+ * インデックスが引数の総数を超えている場合は{@link CobolExceptionId#COB_EC_IMP_ACCEPT}例外を設定する.
342360 *
343- * @param f TODO: 準備中
361+ * @param f 引数の値を格納するCOBOL変数
344362 */
345363 public static void acceptArgValue (AbstractCobolField f ) {
346364 if (CobolUtil .currentArgIndex > CobolUtil .commandLineArgs .length ) {
0 commit comments