付録E.1 ソースイメージの生成例(TP1/Client/PおよびTP1/Client/W)
「Bean生成ツール」で「TP1/Client/PまたはW経由のアクセスを使用する。」を選択した場合の生成例です。(他のチェックボックスはデフォルト指定です。)
入力用原文指定時はcall/callTo/sendメソッドとsetterおよびコンストラクタ中のsetInXXXを,出力用原文指定時はreceive/receive2メソッドとgetterおよびコンストラクタ中のsetOutXXXを生成します。
(1) OCCURS句がない場合
TP1/COBOLの引数にOCCURS句がない場合の例を次に示します。
- <入力用>
01 PERSONAL-DATA-IN. 05 P-NUMBER PIC 9(9) USAGE COMP. 05 P-NAME PIC X(50). 05 P-ADDRESS PIC X(100). 05 P-GIF PIC X(50).
- <出力用>
01 PERSONAL-DATA-OUT. 05 P-NUMBER PIC 9(9) USAGE COMP. 05 P-NAME PIC X(50). 05 P-ADDRESS PIC X(100). 05 P-GIF PIC X(100).
橙色の部分は条件によって生成文字列が異なります。
ウィザード処理で別名を指定した場合,次のファイル中のデータ名は,すべて別名に置き換わります。
package パッケージ名;
import jp.co.hitachi_sk.j2cb.*;
public class クラス名 extends TP1RPC {
/*
*Generated by TP1/COBOL adapter for Cosminexus Version 2 02-10
*DO NOT EDIT THIS FILE
*2007/09/28
*/
private static final long serialVersionUID = 1153786728653L;
private static boolean noload = true;
//入力項目
private static final int inIndex = 0;
protected static GroupAccess myInGroup = null;
//出力項目
private static final int outIndex = 1;
protected static GroupAccess myOutGroup = null;
/**
*コンストラクタ
*/
public クラス名() {
super();
//データアクセスのための情報を設定
setInSize(204);
setInLvl("01,05,05,05,05");
setInName("personal_data_in,p_number,p_name,p_address,p_gif");
setInType("G,UI0900,C(50),C(100),C(50)");
setInAddress("0,0,4,54,154");
setOutSize(254);
setOutLvl("01,05,05,05,05");
setOutName("personal_data_out,p_number,p_name,p_address,p_gif");
setOutType("G,UI0900,C(50),C(100),C(100)");
setOutAddress("0,0,4,54,154");
}
/**
*初期化処理
*/
private void init( ) throws J2CBException {
//初期ロードのみ実行する
if (noload) {
init2();
}
else {
setInformation(myInGroup, myOutGroup);
}
}
/**
*初期化処理2
*/
private synchronized void init2( ) throws J2CBException {
if (noload) {
makeGroupAccess();
myInGroup = inGroup;
myOutGroup = outGroup;
noload = false;
}
else {
setInformation(myInGroup, myOutGroup);
}
}
/**
*RPC
*/
public void call( int cltid, String group, String service, int flags) throws J2CBException {
init();
super.call(cltid, group, service, flags);
}
public void callTo( int cltid, String hostnm, int scdport, String group, String service, int flags) throws J2CBException {
init();
super.callTo(cltid, hostnm, scdport, group, service, flags);
}
public void send( int cltid, String hostname, int portnum, int flags) throws J2CBException {
init();
super.send(cltid, hostname, portnum, flags);
}
public void receive( int cltid, int timeout, int flags) throws J2CBException {
init();
super.receive(cltid, timeout, flags);
}
public void receive2( int cltid, int timeout, int flags) throws J2CBException {
init();
super.receive2(cltid, timeout, flags);
}
//入力項目用メソッド
/**
*p_numberI設定メソッド
*@param p_numberI Integerオブジェクト
*/
public void setP_numberI( Object p_numberI) throws J2CBException {
setInData(inIndex, "personal_data_in.p_number", p_numberI);
}
/**
*p_nameI設定メソッド
*@param p_nameI Stringオブジェクト
*/
public void setP_nameI( Object p_nameI) throws J2CBException {
setInData(inIndex, "personal_data_in.p_name", p_nameI);
}
/**
*p_addressI設定メソッド
*@param p_addressI Stringオブジェクト
*/
public void setP_addressI( Object p_addressI) throws J2CBException {
setInData(inIndex, "personal_data_in.p_address", p_addressI);
}
/**
*p_gifI設定メソッド
*@param p_gifI Stringオブジェクト
*/
public void setP_gifI( Object p_gifI) throws J2CBException {
setInData(inIndex, "personal_data_in.p_gif", p_gifI);
}
//出力項目用メソッド
/**
*p_numberO取得メソッド
*@return Integerオブジェクト
*/
public Object getP_numberO( ) throws J2CBException {
return getOutData(outIndex, "personal_data_out.p_number");
}
/**
*p_nameO取得メソッド
*@return Stringオブジェクト
*/
public Object getP_nameO( ) throws J2CBException {
return getOutData(outIndex, "personal_data_out.p_name");
}
/**
*p_addressO取得メソッド
*@return Stringオブジェクト
*/
public Object getP_addressO( ) throws J2CBException {
return getOutData(outIndex, "personal_data_out.p_address");
}
/**
*p_gifO取得メソッド
*@return Stringオブジェクト
*/
public Object getP_gifO( ) throws J2CBException {
return getOutData(outIndex, "personal_data_out.p_gif");
}
}
(2) OCCURS句がある場合
TP1/COBOLの引数にOCCURS句がある場合の例を次に示します。
01 G1.
02 G2 OCCURS 10.
03 B1 PIC X(50).
//入力項目用メソッド
/**
*b1I設定メソッド
*@param data Stringオブジェクト
*@param dim1 int
*/
public void setB1I( Object data,int dim1) throws J2CBException {
StringBuffer wkbuf;
String acsstr1 = "g1.g2[";
String acsstr2 = "].b1";
wkbuf = new StringBuffer(acsstr1);
wkbuf.append(dim1);
wkbuf.append(acsstr2);
setInData(inIndex, wkbuf.toString(), data);
}
//出力項目用メソッド
/**
*b1O取得メソッド
*@param dim1 int
*@return Stringオブジェクト
*/
public Object getB1O( int dim1) throws J2CBException {
StringBuffer wkbuf;
String acsstr1 = "g1.g2[";
String acsstr2 = "].b1";
wkbuf = new StringBuffer(acsstr1);
wkbuf.append(dim1);
wkbuf.append(acsstr2);
return getOutData(outIndex, wkbuf.toString());
}
(3) OCCURS DEPENDING ON指定がある場合
TP1/COBOLの引数にOCCURS DEPENDING ON指定がある場合の例を次に示します。
01 G1.
02 I PIC S9(9) USAGE COMP.
02 G2 OCCURS 10 DEPENDING ON I.
03 B1 PIC X.
package パッケージ名;
import jp.co.hitachi_sk.j2cb.*;
public class クラス名 extends TP1RPC {
/*
*Generated by TP1/COBOL adapter for Cosminexus Version 2 02-10
*DO NOT EDIT THIS FILE
*2007/09/28
*/
private static final long serialVersionUID = 1153786735781L;
private static boolean noload = true;
//入力項目
private static final int inIndex = 0;
protected static GroupAccess myInGroup = null;
//出力項目
private static final int outIndex = 1;
protected static GroupAccess myOutGroup = null;
/**
*コンストラクタ
*/
public クラス名() throws J2CBException {
super();
//データアクセスのための情報を設定
setInSize(14);
setInLvl("01,02,02,03");
setInName("g1,i,g2[10],b1");
setInType("G,SI0900,G,C(1)");
setInAddress("0,0,4,4");
setOutSize(14);
setOutLvl("01,02,02,03");
setOutName("g1,i,g2[10],b1");
setOutType("G,SI0900,G,C(1)");
setOutAddress("0,0,4,4");
init();
}
/**
*初期化処理
*/
private void init( ) throws J2CBException {
//初期ロードのみ実行する
if (noload) {
init2();
}
else {
setInformation(myInGroup, myOutGroup);
}
}
/**
*初期化処理2
*/
private synchronized void init2( ) throws J2CBException {
if (noload) {
makeGroupAccess();
myInGroup = inGroup;
myOutGroup = outGroup;
noload = false;
}
else {
setInformation(myInGroup, myOutGroup);
}
}
/**
*RPC
*/
public void call( int cltid, String group, String service, int flags) throws J2CBException {
super.call(cltid, group, service, flags);
calcTimes();
}
public void callTo( int cltid, String hostnm, int scdport, String group, String service, int flags) throws J2CBException {
super.callTo(cltid, hostnm, scdport, group, service, flags);
calcTimes();
}
public void send( int cltid, String hostname, int portnum, int flags) throws J2CBException {
super.send(cltid, hostname, portnum, flags);
}
public void receive( int cltid, int timeout, int flags) throws J2CBException {
super.receive(cltid, timeout, flags);
calcTimes();
}
public void receive2( int cltid, int timeout, int flags) throws J2CBException {
super.receive2(cltid, timeout, flags);
calcTimes();
}
//入力項目用メソッド
/**
*iI設定メソッド
*@param iI Integerオブジェクト
*/
public void setII( Object iI) throws J2CBException {
setInData(inIndex, "g1.i", iI);
int[] acsInt = {2};
InitInOcr(inIndex, acsInt, iI);
}
/**
*b1I設定メソッド
*@param data Stringオブジェクト
*@param dim1 int
*/
public void setB1I( Object data,int dim1) throws J2CBException {
StringBuffer wkbuf;
String acsstr1 = "g1.g2[";
String acsstr2 = "].b1";
wkbuf = new StringBuffer(acsstr1);
wkbuf.append(dim1);
wkbuf.append(acsstr2);
setInData(inIndex, wkbuf.toString(), data);
}
//出力項目用メソッド
/**
*iO取得メソッド
*@return Integerオブジェクト
*/
public Object getIO( ) throws J2CBException {
return getOutData(outIndex, "g1.i");
}
/**
*b1O取得メソッド
*@param dim1 int
*@return Stringオブジェクト
*/
public Object getB1O( int dim1) throws J2CBException {
StringBuffer wkbuf;
String acsstr1 = "g1.g2[";
String acsstr2 = "].b1";
wkbuf = new StringBuffer(acsstr1);
wkbuf.append(dim1);
wkbuf.append(acsstr2);
return getOutData(outIndex, wkbuf.toString());
}
/**
*制御変数処理メソッド
*/
private void calcTimes( ) throws J2CBException {
InitStart();
int[] acsInt1 = {2};
InitOutOcr(outIndex, acsInt1, getIO());
InitEnd();
}
}