Skip to content

Commit fd300b8

Browse files
Update Javadoc for libcobj/termio (#811)
* doc: update Javadoc for libcobj/termio * doc: apply Copilot review * doc: applt Claude review
1 parent d896b6d commit fd300b8

1 file changed

Lines changed: 51 additions & 33 deletions

File tree

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/termio/CobolTerminal.java

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@
4040
/** DISPLAY文やACCEPT文に関するメソッドを実装するクラス */
4141
public 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

Comments
 (0)