参照: 説明
インタフェース | 説明 |
---|---|
ARG_IN |
呼出しに対する入力引数を示します。つまり、引数はクライアントからサーバーへ渡されます。
|
ARG_INOUT |
呼出しで入力と出力の両方に使用される引数を示します。つまり、引数はクライアントからサーバーへ渡され、次にサーバーからクライアントへ返されます。
|
ARG_OUT |
呼出しに対する出力引数を示す定数です。つまり、引数はサーバーからクライアントへ渡されます。
|
BAD_POLICY |
PolicyError例外で書き込まれるPolicyErrorCodeです。
|
BAD_POLICY_TYPE |
PolicyError例外で書き込まれるPolicyErrorCodeです。
|
BAD_POLICY_VALUE |
ORBクラスで定義される
create_policy メソッドへの呼出しで、有効なポリシー型に対して不正確なポリシー値を示すために使用される値を格納します。 |
CTX_RESTRICT_SCOPE |
Context.get_values メソッドへの2番目のパラメータとして使用できるフラグで、検索範囲を制限します。 |
Current |
Currentインタフェースから派生したインタフェースです。ORBおよびCORBAサービスは、このインタフェースを使用して、稼働中の実行スレッドに関連する情報(コンテキスト)へのアクセス機能を提供できます。
|
CurrentOperations |
Currentのインタフェースです。
|
CustomMarshal |
ユーザーではなくORBによって使用されることを示す抽象値型です。
|
DataInputStream |
非整列化カスタム値型の入力ストリームからプリミティブ・データ型を読み込むのに使用されるメソッドを定義します。
|
DataOutputStream |
整列化カスタム値型の出力ストリームにプリミティブ・データ型を書き込むのに使用されるメソッドを定義します。
|
DomainManager |
上位ドメインと下位ドメイン間の関係確立とナビゲート、およびポリシーの作成とアクセス用のメカニズムを提供します。
|
DomainManagerOperations |
DomainManagerに対し、ポリシーにアクセスする手段を提供します。
|
DynAny | 非推奨
代わりに新しいDynAnyを使用してください
|
DynArray | 非推奨
代わりに新しいDynArrayを使用してください
|
DynEnum | 非推奨
代わりに新しいDynEnumを使用してください
|
DynFixed | 非推奨
代わりに新しいDynFixedを使用してください
|
DynSequence | 非推奨
代わりに新しいDynSequenceを使用してください
|
DynStruct | 非推奨
代わりに新しいDynStructを使用してください
|
DynUnion | 非推奨
代わりに新しいDynUnionを使用してください
|
DynValue | 非推奨
代わりに新しいDynValueを使用してください
|
IDLType |
OMGのIDLのタイプを表す、すべてのインタフェース・リポジトリ(IR)オブジェクトが継承するabstractインタフェースです。
|
IDLTypeOperations |
このインタフェースは、IDLTypeオブジェクトによって実装される必要があります。
|
IRObject |
IRObject IDLインタフェースは、ほかのすべてのインタフェース・リポジトリ・インタフェースの派生元である、もっともジェネリック・インタフェースを表します。このインタフェースから、リポジトリ自身も派生します。
|
IRObjectOperations |
IRObjectからのマッピングに使用するオペレーション・インタフェースです。
|
Object |
CORBAオブジェクト参照の定義です。
|
OMGVMCID |
OMGのために予約されたベンダー・マイナー・コードIDです。
|
Policy |
Policyインタフェースから派生したインタフェースです。ORBやCORBAサービスは、このインタフェースを使用してオペレーションに影響する特定の選択にアクセスできます。
|
PolicyOperations |
Policy オブジェクトのオペレーションを提供します。 |
PRIVATE_MEMBER |
ValueMember クラスのprivateメンバーを定義する定数です。 |
PUBLIC_MEMBER |
ValueMember クラスのpublicメンバーを定義する定数です。 |
UNSUPPORTED_POLICY |
リクエストされたPolicyがORBにより有効と認識されるが、現在サポートされていない場合に書き込まれるPolicyErrorCodeの1つです。
|
UNSUPPORTED_POLICY_VALUE |
Policyにリクエストされた値が有効な型でその型の有効範囲内にあるが、現在この有効な値がサポートされていない場合に書き込まれるPolicyErrorCodeです。
|
VM_ABSTRACT |
型コードの抽象インタフェースを表すのに使用されるコードを定義します。
|
VM_CUSTOM |
型コードのカスタム整列化値型を表すのに使用されるコードを定義します。
|
VM_NONE |
型コードの値型の値の1つを表すのに使用されるコードを定義します。
|
VM_TRUNCATABLE |
型コードの切詰め可能な値型を表すのに使用されるコードを定義します。
|
クラス | 説明 |
---|---|
_IDLTypeStub |
IDLTypeのスタブです。
|
_PolicyStub |
Policyのスタブです。
|
Any |
IDLで記述できるあらゆるデータのコンテナ、またはIDLのプリミティブ型のコンテナとして機能します。
|
AnyHolder |
Anyのホルダーです。
|
AnySeqHelper |
AnySeqのヘルパーです。
|
AnySeqHolder |
AnySeqのホルダーです。
|
BooleanHolder |
Booleanのホルダーです。
|
BooleanSeqHelper |
BooleanSeqのヘルパーです。
|
BooleanSeqHolder |
BooleanSeqのホルダーです。
|
ByteHolder |
Byteのホルダーです。
|
CharHolder |
Charのホルダーです。
|
CharSeqHelper |
CharSeqのヘルパーです。
|
CharSeqHolder |
CharSeqのホルダーです。
|
CompletionStatus |
SystemException がスローされたときにメソッドが動作を完了していたかどうかを示すオブジェクトです。 |
CompletionStatusHelper |
CompletionStatusのヘルパーです。
|
Context |
Request オペレーションで、この呼び出しとともに送出される前にコンテキスト文字列を解決する必要のあるコンテキスト・オブジェクトの指定で使用されるオブジェクトです。解決されたコンテキスト文字列は、リクエストの呼び出しとともに送られます。 |
ContextList |
プロパティ名を表す
String オブジェクトの修正可能なリストを格納するオブジェクトです。 |
CurrentHelper |
Currentのヘルパーです。
|
CurrentHolder |
Currentのホルダーです。
|
DefinitionKind |
インタフェース・リポジトリ・オブジェクトの型を指定するときに使用する定数を提供するクラスです。
|
DefinitionKindHelper |
DefinitionKindのヘルパーです。
|
DoubleHolder |
Doubleのホルダーです。
|
DoubleSeqHelper |
DoubleSeqのヘルパーです。
|
DoubleSeqHolder |
DoubleSeqのホルダーです。
|
DynamicImplementation | 非推奨
org.omg.CORBA.DynamicImplementation
|
Environment |
クライアントで例外を使用できるようにするために
Request 操作で使用される例外のコンテナ(ホルダー)です。 |
ExceptionList |
メソッドによってスローすることができる例外を記述するために、
Request 操作で使用されるオブジェクトです。 |
FieldNameHelper |
FieldNameのヘルパーです。
|
FixedHolder |
Fixedのホルダーです。
|
FloatHolder |
Floatのホルダーです。
|
FloatSeqHelper |
FloatSeqのヘルパーです。
|
FloatSeqHolder |
FloatSeqのホルダーです。
|
IdentifierHelper |
Identifierのヘルパーです。
|
IDLTypeHelper |
IDLTypeのヘルパーです。
|
IntHolder |
Intのホルダーです。
|
LocalObject |
Java言語マッピングで、ローカルIDLインタフェースの実装基底クラスとして使用されます。
|
LongHolder |
Longのホルダーです。
|
LongLongSeqHelper |
LongLongSeqのヘルパーです。
|
LongLongSeqHolder |
LongLongSeqのホルダーです。
|
LongSeqHelper |
LongSeqHelperのヘルパーです。
|
LongSeqHolder |
LongSeqのホルダーです。
|
NamedValue |
DIIとDSIで使用されるオブジェクトで、引数と戻り値を記述します。
|
NameValuePair |
名前とIDL構造体の属性である値とを関連付けます。これは、DynStruct APIで使用されます。
|
NameValuePairHelper |
NameValuePairのヘルパーです。
|
NVList |
NamedValue オブジェクトが格納された変更可能リストです。 |
ObjectHelper | |
ObjectHolder |
Objectのホルダーです。
|
OctetSeqHelper |
OctetSeqのヘルパーです。
|
OctetSeqHolder |
OctetSeqのホルダーです。
|
ORB |
CORBA Object Request Broker機能のためのAPIを提供するクラスです。
|
ParameterMode |
Parameterのパラメータ・モードの列挙です。
|
ParameterModeHelper |
Parameterのパラメータ・モードの列挙です。
|
ParameterModeHolder |
Parameterのパラメータ・モードの列挙です。
|
PolicyErrorCodeHelper |
ポリシーが無効になる可能性のある理由をカプセル化します。
|
PolicyErrorHelper |
ORB.create_policy オペレーションに渡されたパラメータ値の問題を示すためにスローされます。 |
PolicyErrorHolder |
ORB.create_policy オペレーションに渡されたパラメータ値の問題を示すためにスローされます。 |
PolicyHelper |
Policyのヘルパーです。
|
PolicyHolder |
Policyのホルダーです。
|
PolicyListHelper |
PolicyListのヘルパーです。
|
PolicyListHolder |
PolicyListのホルダーです。
|
PolicyTypeHelper |
PolicyTypeのヘルパーです。
|
Principal | 非推奨
CORBA 2.2では非推奨です。
|
PrincipalHolder | 非推奨
CORBA 2.2では非推奨です。
|
RepositoryIdHelper |
RepositoryIdのヘルパーです。
|
Request |
メソッドを呼び出すために必要な情報を含むオブジェクトです。
|
ServerRequest |
Dynamic Skeleton Interface (DSI)の明示的な状態を取り込むオブジェクトです。
|
ServiceDetail |
ORBサービスを表すオブジェクトです。
service_detail_type フィールドにはORBサービスの型が、service_detail フィールドにはORBサービスの説明が、それぞれ格納されます。 |
ServiceDetailHelper | |
ServiceInformation |
CORBAモジュール内のIDL構造体です。これは、ORB実装で使用可能なCORBAサービスについての情報を格納し、ORB.get_service_informationメソッドから取得されます。
|
ServiceInformationHelper | |
ServiceInformationHolder |
ServiceInformationのホルダーです。
|
SetOverrideType |
SET_OVERRIDE とADD_OVERRIDE をタグ付けするCORBA enum のマッピングです。ポリシーでObject の既存のポリシーを置換するか、ポリシーを既存のポリシーに追加するかを示します。 |
SetOverrideTypeHelper |
SetOverrideTypeのヘルパーです。
|
ShortHolder |
Shortのホルダーです。
|
ShortSeqHelper |
ShortSeqHelperのヘルパーです。
|
ShortSeqHolder |
ShortSeqのホルダーです。
|
StringHolder |
Stringのホルダーです。
|
StringSeqHelper |
Stringの配列です。
|
StringSeqHolder |
Stringの配列です。
|
StringValueHelper |
StringValueのヘルパーです。
|
StructMember |
インタフェース・リポジトリのIDL
struct メンバーを記述します。これにはstruct メンバーの名前、struct メンバーの型、およびstruct メンバー・オブジェクトを記述したstruct メンバーのIDLの型を表すtypedefなどがあります。 |
StructMemberHelper |
StructMemberのヘルパーです。
|
TCKind |
TypeCode オブジェクトの種類を指定する、IDLの列挙型TCKind のJavaマッピングです。 |
TypeCode |
特定のCORBAデータ型についての情報を格納するコンテナです。
|
TypeCodeHolder |
TypeCodeのホルダーです。
|
ULongLongSeqHelper |
ULongLongSeqのヘルパーです。
|
ULongLongSeqHolder |
ULongLongSeqのホルダーです。
|
ULongSeqHelper |
ULongSeqのヘルパーです。
|
ULongSeqHolder |
ULongSeqのホルダーです。
|
UnionMember |
IDL共用体のメンバーのインタフェース・リポジトリ内の説明です。
|
UnionMemberHelper |
UnionMemberのヘルパーです。
|
UnknownUserExceptionHelper |
UnknownUserExceptionのヘルパーです。
|
UnknownUserExceptionHolder |
UnknownUserExceptionのホルダーです。
|
UShortSeqHelper |
UShortSeqのヘルパーです。
|
UShortSeqHolder |
UShortSeqのホルダーです。
|
ValueBaseHelper | |
ValueBaseHolder |
ValueBaseのホルダーです。
|
ValueMember |
value オブジェクトのメンバーのインタフェース・リポジトリ内の説明です。 |
ValueMemberHelper |
ValueMemberのヘルパーです。
|
VersionSpecHelper |
VersionSpecのヘルパーです。
|
VisibilityHelper |
Visibilityのヘルパーです。
|
WCharSeqHelper |
WCharSeqのヘルパーです。
|
WCharSeqHolder |
WCharSeqのホルダーです。
|
WrongTransactionHelper |
WrongTransactionのヘルパーです。
|
WrongTransactionHolder |
WrongTransactionのホルダーです。
|
WStringSeqHelper |
WStringの配列です。
|
WStringSeqHolder |
WStringの配列です。
|
WStringValueHelper |
IDL-to-Javaコンパイラ(ポータブル)バージョン"3.0"によりorb.idlから生成されたorg/omg/CORBA/WStringValueHelper.java。1999年5月31日22: 27:30 (GMT+00:00)。クラス定義は、次のOMG仕様に準拠するように修正されました。CORBA 2.3.1で定義されたORBコア(formal/99-10-07) ptc/00-01-08で定義されたIDL/Java言語マッピング
|
例外 | 説明 |
---|---|
ACTIVITY_COMPLETED |
ACTIVITY_COMPLETED システム例外はActivityコンテキストにアクセスするメソッドで発生する場合があります。 |
ACTIVITY_REQUIRED |
ACTIVITY_REQUIRED システム例外はActivityコンテキストを必要とするメソッドで発生する場合があります。 |
BAD_CONTEXT |
クライアントがオペレーションを呼び出したが、オペレーションに必要なコンテキスト値がコンテキストに含まれていない場合、例外がスローされます。
|
BAD_INV_ORDER |
この例外は、呼出し側が間違った順序でオペレーションを呼び出したことを示します。
|
BAD_OPERATION |
オブジェクト参照が既存のオブジェクトを指すが、そのオブジェクトが呼び出されたオペレーションをサポートしない場合にスローされる例外です。
|
BAD_PARAM |
呼出し側に渡されたパラメータが範囲外、あるいは不正と見なされる場合にスローされる例外です。
|
BAD_QOS |
オブジェクトが、関連したサービス・セマンティクスのQoSを持つ呼出しパラメータで必要なQoSをサポートできない場合、
BAD_QOS 例外が発生します。 |
BAD_TYPECODE |
ORBが無効な型コード(たとえば、無効なTCKind値の型コード)を検出したときにスローされる例外です。
|
Bounds |
メソッドがアクセスしようとしているオブジェクトに対して、パラメータが有効な範囲内にない場合にスローされるユーザー例外です。
|
CODESET_INCOMPATIBLE |
この例外は、クライアントのネイティブ・コード・セットとサーバーのネイティブ・コード・セットとの間で有効な通信ができない場合に発生します。
|
COMM_FAILURE |
この例外は、クライアントから要求が送信されたあとで、サーバーからの応答がクライアントに返る前、処理の実行中に通信が失われた場合にスローされます。
|
DATA_CONVERSION |
この例外は、ORBが、整列化されたデータ表現とネイティブ表現との間の変換ができない場合にスローされます。
|
FREE_MEM |
ヒープの破壊やメモリー・セグメントのロックなどが原因で、ORBが動的メモリーの解放に失敗した場合にスローされる例外です。
|
IMP_LIMIT |
この例外は、ORB実行時に実装限界を超えたことを示します。
|
INITIALIZE |
ORBが初期化時にエラーを検出した(ネットワーク・リソースの取得時に障害が発生した、構成エラーを検出したなど)場合にスローされる例外です。
|
INTERNAL |
この例外は、ORBの内部エラーを示します。たとえば、ORBが内部データ構造の破壊を検出した場合、この例外がスローされます。
|
INTF_REPOS |
ORBがインタフェース・リポジトリに到達できない場合、またはインタフェース・リポジトリに関係するその他のエラーを検出した場合にスローされる例外です。
|
INV_FLAG |
無効なフラグがオペレーションに渡された場合(DII要求の作成時など)にスローされる例外です。
|
INV_IDENT |
この例外は、IDL識別子が構文的に無効であることを示します。
|
INV_OBJREF |
この例外は、オブジェクト参照が内部的に不正であることを示します。
|
INV_POLICY |
特定の呼出しに適用されるPolicyオーバーライド間の互換性がないため、呼出しできない場合にスローされる標準例外です。
|
INVALID_ACTIVITY |
トランザクションまたはActivityが中断されたコンテキストとは別のコンテキストで再開される場合、ActivityまたはTransactionサービスの再開メソッドで
INVALID_ACTIVITY システム例外が発生することがあります。 |
INVALID_TRANSACTION |
要求により無効なトランザクション・コンテキストが送信された場合にスローされる例外です。
|
MARSHAL |
ネットワークからの要求または応答が構造的に無効です。
|
NO_IMPLEMENT |
この例外は、呼び出されたオペレーションは存在するが(IDL定義あり)そのオペレーションが実装されていないことを示します。
|
NO_MEMORY |
ORBランタイムがメモリー不足になった場合にスローされる例外です。
|
NO_PERMISSION |
呼出し元に十分な特権がないため、呼出しが失敗した場合にスローされる例外です。
|
NO_RESOURCES |
ORBが一般的なリソース限界を検出した場合にスローされる例外です。
|
NO_RESPONSE |
この例外は、クライアントが遅延同期呼出しの結果を取得しようとしたが、要求の応答がまだ使用できない場合にスローされます。
|
OBJ_ADAPTER |
この例外は通常、管理上の不一致を示します。たとえば、サーバーが、すでに使用されているかリポジトリが認識しない名前で実装リポジトリに自身を登録しようとした場合、この例外がスローされます。
|
OBJECT_NOT_EXIST |
削除されたオブジェクトの呼出しが実行されるたびにスローされる例外です。
|
PERSIST_STORE |
この例外は、データベース接続の確立失敗やデータベースの破壊など、持続的な記憶領域の障害を示します。
|
PolicyError |
ポリシー・エラーが発生した場合にスローされるユーザー例外です。
|
REBIND |
現在有効なRebindPolicyがNO_REBINDまたはNO_RECONNECTの値とバインドされたオブジェクト参照の呼出しを持つことによって、LocateReplyメッセージのステータスがOBJECT_FORWARDに、またはReplyメッセージのステータスがLOCATION_FORWARDになると、
REBIND が発生します。 |
SystemException |
すべてのCORBA標準例外のルート・クラスです。
|
TIMEOUT |
TIMEOUT は、配信されずに指定された有効期間を超過した場合に発生します。 |
TRANSACTION_MODE |
CORBA
TRANSACTION_MODE 例外は、IORのInvocationPolicyと選択した呼出しパス(直接呼び出しまたは回送された呼び出し)の間に不一致がある場合に、クライアントORBによってスローされます。 |
TRANSACTION_REQUIRED |
要求でnullトランザクション・コンテキストが送られたが、アクティブなトランザクションが必要なことを示す例外です。
|
TRANSACTION_ROLLEDBACK |
要求に関連付けられているトランザクションがロールバックされた、またはロールバックするようにマークされた場合にスローされる例外です。
|
TRANSACTION_UNAVAILABLE |
Transaction Serviceへの接続が異常終了してトランザクション・サービス・コンテキストを処理できない場合、CORBA
TRANSACTION_UNAVAILABLE 例外がORBによってスローされます。 |
TRANSIENT |
ORBがオブジェクトに到達しようとして失敗した場合にスローされる例外です。
|
UNKNOWN |
オペレーション実装がCORBA以外の例外(実装のプログラミング言語に固有の例外など)をスローするか、オペレーションの発生式に指定されていないユーザー例外をオペレーションがスローする場合に、発生する例外です。
|
UnknownUserException |
サーバーから返されたユーザー例外を格納するクラスです。
|
UserException |
CORBA IDL定義のユーザー例外のルート・クラスです。
|
WrongTransaction |
CORBAの
WrongTransaction ユーザー定義例外です。 |
Java(TM) Platform, Standard Edition 6が準拠する公式のCORBA仕様のサポート・セクションの正確なリストは、「Java(TM) SE 6での正式なCORBAサポート仕様」を参照してください。
このセクションで説明するクラスとインタフェースは、ORBクラス、例外、Helperクラス、およびHolderクラスの4つにグループ化できます。
ORBは、クライアントとサーバー上のメソッドの実装間での、メソッド呼出しを処理(仲介)します。クライアントとサーバーはネットワーク上のどこにあってもよく、呼び出しと実装は異なるプログラミング言語で記述されている可能性があるため、ORBはこの通信を実現するために内部でさまざまな処理を行います。
ORBの機能のほとんどはユーザーに対して完全に透明であり、CORBAパッケージの主要部分は、ORBによって内部で使用されるクラスで構成されています。そのため、ほとんどのプログラマは、このパッケージの一部分しか直接には使用しません。実際には、ORBクラス、一部の例外、および場合によってホルダー・クラスの一部のメソッドだけを使用します。
アプリケーションをCORBA環境で使用するには、最初に以下を実行する必要があります。
アプリケーションを初期化して適切なオブジェクト参照を取得するために、次のオペレーションが用意されています。
アプリケーションがCORBA環境を必要とする場合、ORBオブジェクト参照およびルートPOAなどのOAオブジェクト参照(可能な場合)を取得するメカニズムが必要です。このことは、次の2つの目的のために行われます。まず、アプリケーションをORBとOA環境に初期化します。2つ目に、ORBオブジェクト参照とOAオブジェクト参照をアプリケーションに返し、以降のORBおよびOA操作で使用します。
ORBオブジェクト参照を取得するには、アプリケーションでORB.init操作を呼び出します。呼出しパラメータは、オブジェクト参照を必要とするORBの識別子、および環境固有のデータを呼出し先に渡すために使用するarg_listで構成できます。
次に示すのは、ORBへのアクセスを提供するORBメソッドです。
パラメータなしでinit()メソッドを使用すると、単体ORBが起動します。単体ORBは、idljがHelperクラス内で生成するコードに必要なanyを、型コード作成に提供します。
アプリケーションには、その初期のオブジェクト参照を取得するための移植性ある手段が必要です。ルートPOA、POA Current、インタフェース・リポジトリ、および各種のオブジェクト・サービス・インスタンスの参照が必要です。アプリケーションが必要とする機能は、ネーム・サービスが提供される機能と同様です。ただし、アプリケーションを移植性の高い方法で初期化するために、すべてのアプリケーションでネーム・サービスを使用可能にするよう指示することを、OMGは望んでいません。したがって、このセクションで説明する操作は、ネーム・サービスの単純なローカル・バージョンであり、アプリケーションはこれを使用して、操作に不可欠な小規模の定義済みオブジェクト参照セットを取得できます。このメカニズムでは明確に定義された小規模のオブジェクト・セットのみを対象に考えているため、ネーミング・コンテキストは単一レベルの名前空間に平板化できます。この単純化により、2つの操作を定義するだけで必要な機能を実現できます。
初期参照は、ORBオブジェクト・インタフェースで提供される2つの操作により取得され、初期オブジェクト参照のリストおよび解決機能を提供します。次に初期参照を示します。
これらのメソッドの使用例は、「Java IDL入門」を参照してください。
詳細は、「Java IDL例外」を参照してください。システム例外とユーザー定義例外の違いを説明しています。
次に、システム例外のリストを示します。これらは、org.omg.CORBAパッケージで定義されているjava.lang.RuntimeExceptionからorg.omg.CORBA.SystemExceptionを介して継承する、非チェック例外です。
BAD_CONTEXT
BAD_INV_ORDER
BAD_OPERATION
BAD_PARAM
BAD_TYPECODE
COMM_FAILURE
DATA_CONVERSION
FREE_MEM
IMP_LIMIT
INITIALIZE
INTERNAL
INTF_REPOS
INVALID_TRANSACTION
INV_FLAG
INV_IDENT
INV_OBJREF
INV_POLICY
MARSHAL
NO_IMPLEMENT
NO_MEMORY
NO_PERMISSION
NO_RESOURCES
NO_RESPONSE
OBJECT_NOT_EXIST
OBJ_ADAPTER
PERSIST_STORE
TRANSACTION_REQUIRED
TRANSACTION_ROLLEDBACK
TRANSIENT
UNKNOWN
次に、org.omg.CORBAで定義されているユーザー定義例外のリストを示します。
Bounds
UnknownUserException
WrongTransaction
PolicyError
たとえば、org.omg.CORBA.TypeCodePackageパッケージには、TypeCodeクラスのメソッドによってスローされる例外が2つあります。そのような例外は次のとおりです。
CORBAのサブパッケージである別のパッケージは、portableパッケージです。これは、あるベンダーのIDLコンパイラで生成されたコードを別のベンダーのORBで実行可能にするORB APIセットを提供します。
outおよびinoutパラメータの引渡しモードをサポートするには、追加のホルダー・クラスが必要です。Javaプログラミング言語はoutまたはinoutパラメータをサポートしないため、変更可能なパラメータを渡す手段としてホルダー・クラスが必要になります。ポータブル・スタブおよびスケルトンをサポートするため、ホルダー・クラスはorg.omg.CORBA.portable.Streamableインタフェースも実装します。
ホルダー・クラスの名前は、型の名前に「Holder」が追加されて付けられています。型の名前によって、Javaプログラミング言語での名前が参照されます。たとえば、Javaプログラミング言語でAccountという名前のインタフェースのホルダー・クラスは、AccountHolderという名前になります。
ホルダー・クラスはorg.omg.CORBAパッケージ内のすべての基本IDLデータ型に使用できます。たとえば、LongHolder、ShortHolder、FloatHolderなどには、定義済みのクラスが存在します。typedefsで定義されたものを除くすべての名前付きユーザー定義IDL型についてもクラスが生成されます。この場合、ユーザー定義には、インタフェース・リポジトリ用などのOMG仕様、およびその他のOMGサービスで定義される型が含まれます。
各ホルダー・クラスには、次の内容が含まれます。
デフォルトのコンストラクタは、値フィールドをJava言語で定義された型のデフォルト値に設定します。
たとえば、OMG IDLで定義されたインタフェースAccount
がJavaプログラミング言語にマッピングされている場合は、次のホルダー・クラスが生成されます。
public final class AccountHolder implements org.omg.CORBA.portable.Streamable { // field that holds an Account object public Account value = null; // default constructor public AccountHolder () { } // creates a new AccountHolder from initialValue public AccountHolder (Account initialValue) { value = initialValue; } // reads the contents of i and assigns the contents to value public void _read (org.omg.CORBA.portable.InputStream i) { value = AccountHelper.read (i); } // writes value to o public void _write (org.omg.CORBA.portable.OutputStream o) { AccountHelper.write (o, value); } // returns the typecode for Account public org.omg.CORBA.TypeCode _type () { return AccountHelper.type (); } }
Holderクラスの詳細は、「OMG IDLからJava言語へのマッピング」の第1.4章「基本型のマッピング」を参照してください。次に、org.omg.CORBAパッケージで定義されているHolderクラスを示します。
AnyHolder AnySeqHolder BooleanHolder BooleanSeqHolder ByteHolder CharHolder CharSeqHolder CurrentHolder DoubleHolder DoubleSeqHolder FixedHolder FloatHolder FloatSeqHolder IntHolder LongHolder LongLongSeqHolder LongSeqHolder ObjectHolder OctetSeqHolder ParameterModeHolder PolicyErrorHolder PolicyListHolder PrincipalHolder ServiceInformationHolder ShortHolder ShortSeqHolder StringHolder StringSeqHolder TypeCodeHolder ULongLongSeqHolder ULongSeqHolder UnknownUserExceptionHolder UShortSeqHolder ValueBaseHolder WCharSeqHolder WrongTransactionHolder WStringSeqHolder
ヘルパー・ファイルは、型の操作に必要な複数のstaticメソッドを提供します。たとえば、次のような場合があります。
ValueHelper
インタフェースの実装(ユーザー定義値型の場合)
マップされたIDLインタフェースまたは抽象インタフェースのヘルパー・クラスにはナロー操作も含まれます。staticナロー・メソッドにより、org.omg.CORBA.Objectがさらに特定の型のオブジェクト参照にナロー変換されます。オブジェクト参照がリクエストされた型をサポートしないためにナロー変換に失敗した場合は、IDL例外CORBA.BAD_PARAMがスローされます。その他の種類のエラーを示す場合は、異なるシステム例外がスローされます。nullのナロー変換は常に成功し、null値が返されます。一般的に、アプリケーション・プログラマが使用するヘルパー・メソッドはnarrow
メソッドのみです。その他のメソッドは、通常は内部で使用され、プログラマは意識する必要がありません。
ヘルパー・クラスは、値型のヘルパーと値型以外のヘルパーの2つに大きく分類されます。1つのカテゴリのヘルパー・クラスすべてが同じメソッドを提供するため、ここではヘルパー・クラスの各カテゴリの汎用的な説明を行います。
OMG IDLがJavaプログラミング言語にマッピングされると、各ユーザー定義型に対して「ヘルパー」クラスが生成されます。この生成されたクラスには、接尾辞Helper
が追加され、ユーザー定義型の名前が付けられます。たとえば、OMG IDLでインタフェースAccount
が定義されると、idlj
コンパイラによりAccountHelper
という名前のクラスが自動的に生成されます。AccountHelper
クラスには、型のインスタンス(この場合はAccount
オブジェクト)の操作に必要なstaticメソッドが含まれます。
narrow
メソッドorg.omg.CORBA.Object
オブジェクトまたはjava.lang.Object
オブジェクトのどちらかの形式で返されます。このオブジェクトは、操作される前に特定の型にキャストされる必要があります。たとえば、Account
オブジェクトはジェネリック・オブジェクトとして返され、Account
メソッドが呼び出されるように、Account
オブジェクトにナロー変換される必要があります。
narrow
メソッドには2つの形式があります。1つはorg.omg.CORBA.Object
オブジェクトを使用し、もう1つはjava.lang.Object
オブジェクトを使用します。インタフェースがabstractかどうかは、ヘルパー・クラスで提供されるnarrow
メソッドによって決まります。abstractではないインタフェースのヘルパー・クラスには、CORBAオブジェクトを使用するnarrow
メソッドがあります。一方、abstractインタフェースのnarrow
メソッドでは、Javaプログラミング言語のオブジェクトが使用されます。少なくとも1つのabstract基底インタフェースを持つ、abstract以外のインタフェースのヘルパー・クラスでは、2つのバージョンのnarrow
メソッドが提供されます。
「Hello World」チュートリアルでは、次のようにnarrowメソッドを使用します。
// create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. This is // part of latest Inter-Operable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // resolve the Object Reference in Naming String name = "Hello"; helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));
narrow
メソッドで指定されるメソッドを含むクラスです。値型ではない型には、それに対して生成された基本ヘルパー・クラスがあります。
たとえば、インタフェースAccount
が値型のIDL型または抽象インタフェースではなく、抽象基底インタフェースがない場合、AccountHelper
クラスは次のようになります。
abstract public class AccountHelper { private static String _id = "IDL:Account:1.0"; // inserts an Account object into an Any object public static void insert (org.omg.CORBA.Any a, Account that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); a.type (type ()); write (out, that); a.read_value (out.create_input_stream (), type ()); } // extracts an Account object from an Any object public static Account extract (org.omg.CORBA.Any a) { return read (a.create_input_stream ()); } private static org.omg.CORBA.TypeCode __typeCode = null; // gets the typecode for this type synchronized public static org.omg.CORBA.TypeCode type () { if (__typeCode == null) { __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (AccountHelper.id (), "Account"); } return __typeCode; } // gets the repository id for this type public static String id () { return _id; } // reads an Account object from an input stream public static Account read (org.omg.CORBA.portable.InputStream istream) { return narrow (istream.read_Object (_AccountStub.class)); } // writes an Account object to an outputstream public static void write (org.omg.CORBA.portable.OutputStream ostream, Account value) { ostream.write_Object ((org.omg.CORBA.Object) value); } // converts (narrows) an Object to an Account object public static Account narrow (org.omg.CORBA.Object obj) { if (obj == null) return null; else if (obj instanceof Account) return (Account)obj; else if (!obj._is_a (id ())) throw new org.omg.CORBA.BAD_PARAM (); else { org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); _AccountStub stub = new _AccountStub (); stub._set_delegate(delegate); return stub; } } }
Address
が値型の場合、AddressHelper
クラスは次のようになります。
abstract public class AddressHelper { private static String _id = "IDL:Address:1.0"; // same as for non-value type public static void insert (org.omg.CORBA.Any a, Address that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); a.type (type ()); write (out, that); a.read_value (out.create_input_stream (), type ()); } // same as for non-value type public static Address extract (org.omg.CORBA.Any a) { return read (a.create_input_stream ()); } private static org.omg.CORBA.TypeCode __typeCode = null; private static boolean __active = false; // getting the typecode for the type synchronized public static org.omg.CORBA.TypeCode type () { if (__typeCode == null) { synchronized (org.omg.CORBA.TypeCode.class) { if (__typeCode == null) { if (__active) { return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); } __active = true; org.omg.CORBA.ValueMember[] _members0 = new org.omg.CORBA.ValueMember[0]; org.omg.CORBA.TypeCode _tcOf_members0 = null; __typeCode = org.omg.CORBA.ORB.init ().create_value_tc (_id, "Address", org.omg.CORBA.VM_NONE.value, null, _members0); __active = false; } } } return __typeCode; } // same as for non-value type public static String id () { return _id; } // reads a serializable instance of Address from the given input stream public static Address read (org.omg.CORBA.portable.InputStream istream) { return (Address)((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (id ()); } // writes a serializable instance of Address to the given output stream public static void write (org.omg.CORBA.portable.OutputStream ostream, Address value) { ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, id ()); } }
次に、org.omg.CORBAパッケージで定義されているヘルパー・クラスを示します。
AnySeqHelper
BooleanSeqHelper
CharSeqHelper
CompletionStatusHelper
CurrentHelper
DefinitionKindHelper
DoubleSeqHelper
FieldNameHelper
FloatSeqHelper
IdentifierHelper
IDLTypeHelper
LongLongSeqHelper
LongSeqHelper
NameValuePairHelper
ObjectHelper
OctetSeqHelper
ParameterModeHelper
PolicyErrorCodeHelper
PolicyErrorHelper
PolicyHelper
PolicyListHelper
PolicyTypeHelper
RepositoryIdHelper
ServiceDetailHelper
ServiceInformationHelper
SetOverrideTypeHelper
ShortSeqHelper
StringSeqHelper
StringValueHelper
StructMemberHelper
ULongLongSeqHelper
ULongSeqHelper
UnionMemberHelper
UnknownUserExceptionHelper
UShortSeqHelper
ValueBaseHelper
ValueMemberHelper
VersionSpecHelper
VisibilityHelper
WCharSeqHelper
WrongTransactionHelper
WStringSeqHelper
WStringValueHelper
このため、org.omg.CORBAパッケージの複数のインタフェースがshortの単一フィールド、valueで構成されます。このフィールドは、エラー・コードまたは値修飾子などに使用される定数です。たとえば、インタフェースBAD_POLICYのvalueフィールドは、例外PolicyErrorがスローされる理由の1つになる可能性があります。このエラー・コードを指定するには、BAD_POLICY.valueを使用します。
例外PolicyErrorでは、可能なエラー・コードとして次のインタフェースのvalueフィールドが使用されます。
ValueMember
オブジェクトのアクセス・メソッドによって返され、ValueMember
オブジェクトの可視性を示します。
ORBではインタフェース・リポジトリを必要としないため、Java IDLにはインタフェース・リポジトリは含まれません。このリリースではインタフェース・リポジトリが実装されていませんが、型コードを作成するために、次のIRクラスおよびインタフェースが含まれています(インタフェースorg.omg.CORBA.ORBのcreate_value_tc、create_struct_tc、create_union_tc、およびcreate_exception_tcメソッドを参照)。
org.omgサブパッケージに含まれているAPIは、現在のOMG CORBA仕様に準拠するために提供されるものもありますが、SunのJDKTMリリースでは実装されていません。これにより、ほかのJDKのライセンス保持者は、標準拡張機能および製品でこのAPIの実装を提供できるようになります。
org.omgサブパッケージに含まれるAPIには、さまざまな理由によりNO_IMPLEMENT例外をスローするものがあります。その理由として、次の点を挙げることができます。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.