Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第8章 アプリケーションの開発(OOCOBOL)> 8.8 データ型に対するマッピング

8.8.3 シーケンス型

(1) IDLマッピング

 IDL言語でシーケンス型sequenceを指定した場合、クラス(シーケンスクラス)でデータ宣言します。
 以降では、以下のIDL定義例をもとに説明します。

IDL言語

[ファイル名: simple.idl]

  module ODsample{
      interface  seqtest{
          typedef sequence<long>  sampleseq; 
          sampleseq op1(in sampleseq seq1, out sampleseq seq2, inout sampleseq seq3 ); 
          typedef sequence<string> sampleseq2; 
          sampleseq2 op2(in sampleseq2 seq1, out sampleseq2 seq2, inout sampleseq2 seq3 ); 
       };
  };

OOCOBOL

[ファイル名: simple--copy.cbl]

  * データ型宣言(typedef)
   01  ODSAMPLE-SEQTEST-SAMPLESEQ TYPEDEF OBJECT REFERENCE SEQUENCE-LONG.

[ファイル名: sequence-long.cob]

  * シーケンスクラス(sequence<long>)
   CLASS-ID. sequence-long AS "sequence-long" INHERITS SEQUENCEBASE.
  *
   FACTORY.
    PROCEDURE DIVISION.
  *
  * NEW-WITH-LENGTH METHOD
     METHOD-ID. NEW-WITH-LENGTH AS "NEW-WITH-LENGTH".
     DATA DIVISION.
     LINKAGE SECTION.
     COPY CORBA--COPY.
     01  0--SEQ-LENGTH TYPE CORBA-UNSIGNED-LONG.
     01  0--SEQ-OBJ OBJECT REFERENCE SELF.
     PROCEDURE DIVISION
       USING 0--SEQ-LENGTH RETURNING 0--SEQ-OBJ
       RAISING CORBA-SYSTEMEXCEPTION.
     END METHOD NEW-WITH-LENGTH.
   END FACTORY.
  *
   OBJECT.
    PROCEDURE DIVISION.
  *
  * SEQ-MAXIMUM PROPERTY : GET
     METHOD-ID. GET PROPERTY SEQ-MAXIMUM.
     DATA DIVISION.
     LINKAGE SECTION.
     01 0--SEQ-MAXIMUM TYPE CORBA-UNSIGNED-LONG.
     PROCEDURE DIVISION RETURNING 0--SEQ-MAXIMUM.
       MOVE 0--MAXIMUM TO 0--SEQ-MAXIMUM.
     END METHOD.
  *
  * SEQ-LENGTH PROPERTY : GET
     METHOD-ID. GET PROPERTY SEQ-LENGTH.
     DATA DIVISION.
     LINKAGE SECTION.
     01  0--LENGTH-RESULT TYPE CORBA-UNSIGNED-LONG.
     PROCEDURE DIVISION RETURNING 0--LENGTH-RESULT.
       MOVE 0--LENGTH TO 0--LENGTH-RESULT.
     END METHOD.
  *
  * SEQ-LENGTH PROPERTY : SET
     METHOD-ID. SET PROPERTY SEQ-LENGTH.
     DATA DIVISION.
     LINKAGE SECTION.
     01  0--LENGTH-PARAM TYPE CORBA-UNSIGNED-LONG.
     PROCEDURE DIVISION USING 0--LENGTH-PARAM
       RAISING CORBA-SYSTEMEXCEPTION.
     END METHOD.
  *
  * GET-VALUE METHOD
     METHOD-ID. GET-VALUE AS "GET-VALUE".
     DATA DIVISION.
     LINKAGE SECTION.
     01  0--ELEMS TYPE CORBA-UNSIGNED-LONG.
     01  0--VALUE TYPE CORBA-LONG.
     PROCEDURE DIVISION USING 0--ELEMS RETURNING 0--VALUE.
     END METHOD GET-VALUE.
  *
  * SET-VALUE METHOD
     METHOD-ID. SET-VALUE AS "SET-VALUE".
     DATA DIVISION.
     LINKAGE SECTION.
     01  0--ELEMS TYPE CORBA-UNSIGNED-LONG.
     01  0--VALUE TYPE CORBA-LONG.
     PROCEDURE DIVISION USING 0--ELEMS 0--VALUE.
     END METHOD SET-VALUE.
  *
  * CLONE METHOD
     METHOD-ID. CLONE AS "CLONE".
     DATA DIVISION.
     LINKAGE SECTION.
     01 0--CLONE-OBJ OBJECT REFERENCE sequence-long.
     PROCEDURE DIVISION RETURNING 0--CLONE-OBJ
       RAISING CORBA-SYSTEMEXCEPTION.
     END METHOD CLONE.
  *
   END OBJECT.
   END CLASS sequence-long.

* シーケンスクラス(sequence<string>)
CLASS-ID. sequence-string AS "sequence-string" INHERITS SEQUENCEBASE.
*
FACTORY.
PROCEDURE DIVISION.
*
* NEW-WITH-LENGTH METHOD
METHOD-ID. NEW-WITH-LENGTH AS "NEW-WITH-LENGTH".
DATA DIVISION.
LINKAGE SECTION.
COPY CORBA--COPY.
01 0--SEQ-LENGTH TYPE CORBA-UNSIGNED-LONG.
01 0--SEQ-OBJ OBJECT REFERENCE SELF.
PROCEDURE DIVISION
USING 0--SEQ-LENGTH RETURNING 0--SEQ-OBJ
RAISING CORBA-SYSTEMEXCEPTION.
END METHOD NEW-WITH-LENGTH.
END FACTORY.
*
OBJECT.
PROCEDURE DIVISION.
*
* SEQ-MAXIMUM PROPERTY : GET
METHOD-ID. GET PROPERTY SEQ-MAXIMUM.
DATA DIVISION.
LINKAGE SECTION.
01 0--SEQ-MAXIMUM TYPE CORBA-UNSIGNED-LONG.
PROCEDURE DIVISION RETURNING 0--SEQ-MAXIMUM.
MOVE 0--MAXIMUM TO 0--SEQ-MAXIMUM.
END METHOD.
*
* SEQ-LENGTH PROPERTY : GET
METHOD-ID. GET PROPERTY SEQ-LENGTH.
DATA DIVISION.
LINKAGE SECTION.
01 0--LENGTH-RESULT TYPE CORBA-UNSIGNED-LONG.
PROCEDURE DIVISION RETURNING 0--LENGTH-RESULT.
MOVE 0--LENGTH TO 0--LENGTH-RESULT.
END METHOD.
*
* SEQ-LENGTH PROPERTY : SET
METHOD-ID. SET PROPERTY SEQ-LENGTH.
DATA DIVISION.
LINKAGE SECTION.
01 0--LENGTH-PARAM TYPE CORBA-UNSIGNED-LONG.
PROCEDURE DIVISION USING 0--LENGTH-PARAM
RAISING CORBA-SYSTEMEXCEPTION.
END METHOD.
*
* GET-VALUE METHOD
METHOD-ID. GET-VALUE AS "GET-VALUE".
DATA DIVISION.
LINKAGE SECTION.
01 0--ELEMS TYPE CORBA-UNSIGNED-LONG.
01 0--VALUE USAGE OBJECT REFERENCE CORBA-STRING.
PROCEDURE DIVISION USING 0--ELEMS RETURNING 0--VALUE.
END METHOD GET-VALUE.
*
* SET-VALUE METHOD
METHOD-ID. SET-VALUE AS "SET-VALUE".
DATA DIVISION.
LINKAGE SECTION.
01 0--ELEMS TYPE CORBA-UNSIGNED-LONG.
01 0--VALUE USAGE OBJECT REFERENCE CORBA-STRING.
PROCEDURE DIVISION USING 0--ELEMS 0--VALUE.
END METHOD SET-VALUE.
*
* CLONE METHOD
METHOD-ID. CLONE AS "CLONE".
DATA DIVISION.
LINKAGE SECTION.
01 0--CLONE-OBJ OBJECT REFERENCE sequence-string.
PROCEDURE DIVISION RETURNING 0--CLONE-OBJ
RAISING CORBA-SYSTEMEXCEPTION.
END METHOD CLONE.
*
END OBJECT.
END CLASS sequence-string.

(2)シーケンスクラスのメソッド/プロパティ

 シーケンスクラスで定義されているメソッド/プロパティを以下に示します。

メソッド/プロパティ

機能

NEW-WITH-LENGTHメソッド

(ファクトリメソッド)指定の長さでシーケンスクラスを作成します。

GET-VALUEメソッド

(オブジェクトメソッド)指定番号の要素の値を取得します。

SET-VALUEメソッド

(オブジェクトメソッド)指定番号の要素に値を設定します。

CLONEメソッド

(オブジェクトメソッド)シーケンスクラスを複製します。

SEQ-MAXIMUMプロパティ

シーケンス最大長の値を取得します。

SEQ-LENGTHプロパティ

シーケンス長の値の取得/設定を行います。

 メソッド/プロパティの使用例を以下に示します。

  * NEW-WITH-LENGTHメソッド
  *   シーケンスクラスをSEQとして作成
   01  SEQ       USAGE OBJECT REFERENCE  SEQUENCE-LONG.
   01  SEQ-LEN   USAGE OBJECT REFERENCE  CORBA-UNSIGNED-LONG.
   INVOKE SEQUENCE-LONG "NEW-WITH-LENGTH"
          USING SEQ-LEN  RETURNING SEQ.
  * GET-VALUEメソッド
  *   1番目の要素の値をSEQ-GVALに取得
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-GVAL  TYPE  CORBA-LONG.
   INVOKE SEQ "GET-VALUE"  USING 1  RETURNING SEQ-GVAL.
  * SET-VALUEメソッド
  *   1番目の要素にSEQ-SVALを設定
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-SVAL  TYPE  CORBA-LONG.
   INVOKE SEQ "SET-VALUE"  USING 1 SEQ-SVAL.
  * CLONEメソッド
  *   シーケンスクラスをSEQ-CLONEとして複製
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-CLON  USAGE OBJECT REFERENCE SEQUENCE-LONG.
   INVOKE SEQ "CLONE"  RETURNING SEQ-CLON.
  * SEQ-MAXIMUMプロパティ
  *   シーケンス最大長の値をSEQ-MAXに取得
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-MAX   TYPE  CORBA-UNSIGNED-LONG.
   MOVE SEQ-MAXIMUM OF SEQ  TO SEQ-MAX.
  * SEQ-LENGTHプロパティ
  *   シーケンス長の値をSEQ-LENに取得
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-LEN   TYPE  CORBA-UNSIGNED-LONG.
   MOVE SEQ-LENGTH OF SEQ  TO SEQ-LEN.

  *  シーケンス長にSEQ-LENを設定
   01  SEQ       USAGE OBJECT REFERENCE SEQUENCE-LONG.
   01  SEQ-LEN   TYPE  CORBA-UNSIGNED-LONG.
   MOVE SEQ-LEN  TO SEQ-LENGTH OF SEQ.

(3)クライアントアプリケーション例

 クライアントアプリケーション例を以下に示します。

   IDENTIFICATION         DIVISION.
   PROGRAM-ID.            "CLIENT-MAIN".
  *
   ENVIRONMENT            DIVISION.
   CONFIGURATION          SECTION.
   REPOSITORY.
       COPY               CORBA--REP.
       COPY               COSNAMING--REP.
       COPY               SIMPLE--REP.
       .
   SPECIAL-NAMES.
       SYMBOLIC CONSTANT
       COPY               CORBA--CONST.
       COPY               COSNAMING--CONST.
       COPY               SIMPLE--CONST.
       .
  *
   DATA                   DIVISION.
   WORKING-STORAGE        SECTION.
   COPY                   CORBA--COPY.
   COPY                   COSNAMING--COPY.
   COPY                   SIMPLE--COPY.
  *
   01 ORB                 USAGE OBJECT REFERENCE CORBA-ORB.
   01 OBJ                 USAGE OBJECT REFERENCE CORBA-OBJECT.
   01 NAMING-CONTEXT      USAGE OBJECT REFERENCE COSNAMING-NAMINGCONTEXT.
   01 NAME                TYPE                   COSNAMING-NAME.
   01 NAME-COMPONENT      USAGE OBJECT REFERENCE COSNAMING-NAMECOMPONENT.
   01 NAME-ID             USAGE OBJECT REFERENCE CORBA-STRING.
   01 NAME-KIND           USAGE OBJECT REFERENCE CORBA-STRING.
  *
   01 EXCEPTION-ID        USAGE OBJECT REFERENCE CORBA-STRING.
   01 EXCEPTION-ID-VALUE  PIC   X(50).
   01 API-NAME            PIC   X(50).
  *
   01 TARGET-OBJ          USAGE OBJECT REFERENCE ODSAMPLE-SEQTEST.
   01 RESULT              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
   01 SEQ1                TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
   01 SEQ2                TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
   01 SEQ3                TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
   01 SEQ-VALUE           TYPE                   CORBA-LONG.
   01 OP2-RESULT          TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
   01 OP2-SEQ1            TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
   01 OP2-SEQ2            TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
   01 OP2-SEQ3            TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
   01 OP2-SEQ-VALUE       USAGE OBJECT REFERENCE CORBA-STRING. 
   01 I                   TYPE                   CORBA-UNSIGNED-LONG.
  *
   PROCEDURE              DIVISION.
  *
   DECLARATIVES.
  *
   OTHER-ERROR SECTION.
       USE EXCEPTION CORBA-EXCEPTION.
       DISPLAY "CORBA::Exception: " API-NAME.
       SET EXCEPTION-ID TO IDL-ID OF EXCEPTION-OBJECT AS CORBA-EXCEPTION.
       INVOKE EXCEPTION-ID "GET-VALUE" RETURNING EXCEPTION-ID-VALUE.
       DISPLAY "   Exception-id: " EXCEPTION-ID-VALUE.
       EXIT PROGRAM.
   END-OTHER-ERR.
  *
   END DECLARATIVES.
  *
   MAIN SECTION.
  *
       MOVE "CORBA::ORB_init" TO API-NAME.
       INVOKE CORBA "ORB_INIT"
                          USING     "simple_c"
                                    FJ-OM_ORBID
                          RETURNING ORB.
  *
       MOVE "CORBA::ORB::resolve_initial_references" TO API-NAME.
       INVOKE ORB "RESOLVE_INITIAL_REFERENCES"
                          USING     CORBA-ORB-OBJECTID_NAMESERVICE
                          RETURNING OBJ.
  *
       INVOKE COSNAMING-NAMINGCONTEXT "NARROW"
                          USING     OBJ
                          RETURNING NAMING-CONTEXT.
  *
       INVOKE CORBA-STRING "NEW-WITH-VALUE"
                          USING     "ODsample::seqtest"
                          RETURNING NAME-ID.
  *
       INVOKE CORBA-STRING "NEW-WITH-VALUE"
                          USING     " "
                          RETURNING NAME-KIND.
  *
       INVOKE COSNAMING-NAMECOMPONENT "NEW"
                          RETURNING NAME-COMPONENT.
  *
       SET IDL-ID OF NAME-COMPONENT TO NAME-ID.
       SET KIND   OF NAME-COMPONENT TO NAME-KIND.
  *
       INVOKE SEQUENCE-NAMECOMPONENT-001 "NEW-WITH-LENGTH"
                          USING     1
                          RETURNING NAME.
  *
       INVOKE NAME "SET-VALUE"
                          USING     1
                                    NAME-COMPONENT.
  *
       MOVE "CosNaming::NamingContext::resolve" TO API-NAME.
       INVOKE NAMING-CONTEXT "RESOLVE"
                          USING     NAME
                          RETURNING OBJ.
  *
       INVOKE ODSAMPLE-SEQTEST "NARROW"
                          USING     OBJ
                          RETURNING TARGET-OBJ.
  *
  *  sequence<long>
  *
  *  SET IN PARAMETER
       INVOKE SEQUENCE-LONG "NEW" RETURNING SEQ1.
       MOVE 2 TO SEQ-LENGTH OF SEQ1.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 2
         MOVE I TO SEQ-VALUE
         INVOKE SEQ1 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM.
  *
  *  SET INOUT PARAMETER
       INVOKE SEQUENCE-LONG "NEW" RETURNING SEQ3.
       MOVE 3 TO SEQ-LENGTH OF SEQ3.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
         COMPUTE SEQ-VALUE = I * 10
         INVOKE SEQ3 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM.
  *
       MOVE "ODdemo::seqtest::op1" TO API-NAME.
       INVOKE TARGET-OBJ "OP1"
                          USING     SEQ1
                                    SEQ2
                                    SEQ3
                          RETURNING RESULT.
  *
  *  sequence<string>
  *
  *  SET IN PARAMETER
       INVOKE SEQUENCE-CORBA-STRING "NEW" RETURNING OP2-SEQ1. 
       MOVE 2 TO SEQ-LENGTH OF OP2-SEQ1. 
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 2
         INVOKE CORBA-STRING "NEW-WITH-VALUE" USING     "TEST"
                                              RETURNING OP2-SEQ-VALUE
         INVOKE OP2-SEQ1 "SET-VALUE" USING I OP2-SEQ-VALUE
       END-PERFORM. 
  *
  *  SET INOUT PARAMETER
       INVOKE SEQUENCE-CORBA-STRING "NEW" RETURNING OP2-SEQ3. 
       MOVE 3 TO SEQ-LENGTH OF OP2-SEQ3. 
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
         INVOKE CORBA-STRING "NEW-WITH-VALUE" USING     "TEST"
                                              RETURNING OP2-SEQ-VALUE
         INVOKE OP2-SEQ3 "SET-VALUE" USING I OP2-SEQ-VALUE
       END-PERFORM. 
  *
       MOVE "ODdemo::seqtest::op2" TO API-NAME. 
       INVOKE TARGET-OBJ "OP2"
                          USING     OP2-SEQ1
                                    OP2-SEQ2
                                    OP2-SEQ3
                          RETURNING OP2-RESULT. 
  *
       STOP RUN.
  *
   END-MAIN.
  *
   END PROGRAM "CLIENT-MAIN".

(4)サーバアプリケーション例

 以下にサーバアプリケーション例を以下に示します。

   CLASS-ID.              ODSAMPLE-SEQTEST-IMPL
       INHERITS           ODSAMPLE-SEQTEST.
  *
   ENVIRONMENT            DIVISION.
   CONFIGURATION          SECTION.
   REPOSITORY.
       COPY               CORBA--REP.
       COPY               SIMPLE--REP.
       .
   SPECIAL-NAMES.
       SYMBOLIC CONSTANT
       COPY               CORBA--CONST.
       COPY               SIMPLE--CONST.
       .
  *
   OBJECT.
    DATA                  DIVISION.
    WORKING-STORAGE       SECTION.
    COPY                  CORBA--COPY.
    COPY                  SIMPLE--COPY.
  *
    PROCEDURE             DIVISION.
  *
     METHOD-ID.           OP1 OVERRIDE.
     DATA                 DIVISION.
     WORKING-STORAGE      SECTION.
     01 SEQ-VALUE         TYPE                   CORBA-LONG.
     01 I                 TYPE                   CORBA-UNSIGNED-LONG.
     LINKAGE              SECTION.
     01 SEQ1              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
     01 SEQ2              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
     01 SEQ3              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
     01 RESULT            TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ.
  *
     PROCEDURE            DIVISION
                          USING     SEQ1
                                    SEQ2
                                    SEQ3
                          RETURNING RESULT
                          RAISING   CORBA-SYSTEMEXCEPTION.
  *
  *  SET OUT PARAMETER
       INVOKE SEQUENCE-LONG "NEW" RETURNING SEQ2.
       MOVE 4 TO SEQ-LENGTH OF SEQ1.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
         COMPUTE SEQ-VALUE = I * 100
         INVOKE SEQ2 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM.
  *
  *  SET INOUT PARAMETER
       INVOKE SEQUENCE-LONG "NEW" RETURNING SEQ3.
       MOVE 5 TO SEQ-LENGTH OF SEQ3.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
         COMPUTE SEQ-VALUE = I * 1000
         INVOKE SEQ3 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM.
  *
  *  SET RESULT
       INVOKE SEQUENCE-LONG "NEW" RETURNING RESULT.
       MOVE 6 TO SEQ-LENGTH OF SEQ3.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 6
         COMPUTE SEQ-VALUE = I * 10000
         INVOKE RESULT "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM.
  *
     END METHOD OP1.
  *
  *
  *
     METHOD-ID.           OP2 OVERRIDE. 
     DATA                 DIVISION. 
     WORKING-STORAGE      SECTION. 
     01 SEQ-VALUE         USAGE OBJECT REFERENCE CORBA-STRING. 
     01 I                 TYPE                   CORBA-UNSIGNED-LONG. 
     LINKAGE              SECTION. 
     01 SEQ1              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
     01 SEQ2              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
     01 SEQ3              TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
     01 RESULT            TYPE                   ODSAMPLE-SEQTEST-SAMPLESEQ2. 
  *
     PROCEDURE            DIVISION
                          USING     SEQ1
                                    SEQ2
                                    SEQ3
                          RETURNING RESULT
                          RAISING   CORBA-SYSTEMEXCEPTION. 
  *
  *  SET OUT PARAMETER
       INVOKE SEQUENCE-CORBA-STRING "NEW" RETURNING SEQ2. 
       MOVE 4 TO SEQ-LENGTH OF SEQ2. 
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
         INVOKE CORBA-STRING "NEW-WITH-VALUE" USING         "TEST"
                                              RETURNING     SEQ-VALUE
         INVOKE SEQ2 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM. 
  *
  *  SET INOUT PARAMETER
       INVOKE SEQUENCE-CORBA-STRING "NEW" RETURNING SEQ3. 
       MOVE 5 TO SEQ-LENGTH OF SEQ3. 
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
         INVOKE CORBA-STRING "NEW-WITH-VALUE" USING         "TEST"
                                              RETURNING     SEQ-VALUE
         INVOKE SEQ3 "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM. 
  *
  *  SET RESULT
       INVOKE SEQUENCE-CORBA-STRING "NEW" RETURNING RESULT. 
       MOVE 6 TO SEQ-LENGTH OF RESULT. 
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 6
         INVOKE CORBA-STRING "NEW-WITH-VALUE" USING         "TEST"
                                              RETURNING     SEQ-VALUE
         INVOKE RESULT "SET-VALUE" USING I SEQ-VALUE
       END-PERFORM. 
  *
     END METHOD OP2. 
  *
   END OBJECT.
  *
   END CLASS ODSAMPLE-SEQTEST-IMPL.

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005