パッケージ org.omg.CORBA
ORB
を含む、Java™プログラミング言語へのOMG CORBA APIのマッピングを提供します。
Java(TM) Platform, Standard Edition 6が準拠する公式のCORBA仕様のサポート・セクションの正確なリストは、Java(TM) SE 6での正式なCORBAサポート仕様を参照してください。
一般情報
このセクションでは、Interface Definition Language (IDL)ファイルをコンパイルし、ORBを使用してクライアントおよびサーバーを記述するユーザーに関係する情報を提供します。このセクションで説明するクラスとインタフェースは、ORBクラス
、例外、Helperクラス
、およびHolderクラス
の4つにグループ化できます。
ORB
クラス
ORBは、クライアントとサーバー上のメソッドの実装間での、メソッド呼出しを処理(仲介)します。 クライアントとサーバーはネットワーク上のどこにあってもよく、呼び出しと実装は異なるプログラミング言語で記述されている可能性があるため、ORBはこの通信を実現するために内部でさまざまな処理を行います。
ORBの機能のほとんどはユーザーに対して完全に透明であり、CORBA
パッケージの主要部分は、ORBによって内部で使用されるクラスで構成されています。 そのため、ほとんどのプログラマは、このパッケージの一部分しか直接には使用しません。 実際には、ORB
クラス、一部の例外、および場合によってホルダー・クラスの一部のメソッドだけを使用します。
ORB
メソッド
アプリケーションをCORBA環境で使用するには、最初に以下を実行する必要があります。
- ORBおよびオブジェクト・アダプタ(POA)環境(可能な場合)で初期化する
- ORBオブジェクト(以降のORB操作で使用するため)および必要に応じてほかのオブジェクト(ルートPOAやObject Adapterオブジェクトを含む)への参照を取得する
アプリケーションを初期化して適切なオブジェクト参照を取得するために、次のオペレーションが用意されています。
- このセクションで解説したORBにアクセス可能なオペレーション
- オブジェクト・アダプタ、インタフェース・リポジトリ、ネーム・サービス、およびその他のオブジェクト・サービスにアクセス可能な操作。 これらの操作の詳細は、その他の操作を参照。
アプリケーションがCORBA環境を必要とする場合、ORBオブジェクト参照およびルートPOAなどのOAオブジェクト参照(可能な場合)を取得するメカニズムが必要です。 このことは、次の2つの目的のために行われます。 まず、アプリケーションをORBとOA環境に初期化します。 2つ目に、ORBオブジェクト参照とOAオブジェクト参照をアプリケーションに返し、以降のORBおよびOA操作で使用します。
ORBオブジェクト参照を取得するには、アプリケーションでORB.init
操作を呼び出します。 呼出しパラメータは、オブジェクト参照を必要とするORBの識別子、および環境固有のデータを呼出し先に渡すために使用するarg_listで構成できます。
次に示すのは、ORB
へのアクセスを提供するORBメソッドです。
-
init()
-
init(String [] args, Properties props)
-
init(Applet app, Properties props)
パラメータなしでinit()
メソッドを使用すると、単体ORBが起動します。単体ORBは、idlj
がHelperクラス内で生成するコードに必要なany
を、型コード作成に提供します。
アプリケーションには、その初期のオブジェクト参照を取得するための移植性ある手段が必要です。 ルートPOA、POA Current、インタフェース・リポジトリ、および各種のオブジェクト・サービス・インスタンスの参照が必要です。 アプリケーションが必要とする機能は、ネーム・サービスが提供される機能と同様です。 ただし、アプリケーションを移植性の高い方法で初期化するために、すべてのアプリケーションでネーム・サービスを使用可能にするよう指示することを、OMGは望んでいません。 したがって、このセクションで説明する操作は、ネーム・サービスの単純なローカル・バージョンであり、アプリケーションはこれを使用して、操作に不可欠な小規模の定義済みオブジェクト参照セットを取得できます。 このメカニズムでは明確に定義された小規模のオブジェクト・セットのみを対象に考えているため、ネーミング・コンテキストは単一レベルの名前空間に平板化できます。 この単純化により、2つの操作を定義するだけで必要な機能を実現できます。
初期参照は、ORBオブジェクト・インタフェースで提供される2つの操作により取得され、初期オブジェクト参照のリストおよび解決機能を提供します。 次に初期参照を示します。
-
resolve_initial_references(String name)
-
list_initial_services()
-
register_initial_reference(String id, org.omg.CORBA.Object obj)
これらのメソッドのいくつかを使用する例は「Java IDLスタート・ガイド」です。
例外
Java IDLの例外は、Javaプログラミング言語で記述されたコードの例外と似ています。 メソッドが例外をスローするように定義されている場合、そのメソッドを使用するコードには、try
/catch
ブロックを記述して、例外がスローされたときにその例外を処理しなければいけません。
詳細は、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
Subpackages
CORBA
パッケージの中には、名前の一部にPackageが付いているパッケージがいくつかあります。 これらのパッケージは、CORBA
パッケージのインタフェースおよびクラスによって使用される例外またはクラスを提供するだけなので、一般にかなり小さいものです。
たとえば、org.omg.CORBA.TypeCodePackage
パッケージには、TypeCode
クラスのメソッドによってスローされる例外が2つあります。 そのような例外は次のとおりです。
-
BadKind
-
Bounds
org.omg.CORBA.ORBPackage
パッケージには、次の2つの例外があります。
-
InvalidName
-
InconsistentTypeCode
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サービスで定義される型が含まれます。
各ホルダー・クラスには、次の内容が含まれます。
- インスタンスからのコンストラクタ
- デフォルトのコンストラクタ
- publicインスタンス・メンバー。型の値である
value
。 - 入力ストリームを読み込み、型の
value
フィールドに内容を割り当てるためのメソッド value
フィールドの値を出力ストリームに書き込むためのメソッド- 型の型コードを取得するためのメソッド
デフォルトのコンストラクタは、値フィールドをJava言語で定義された型のデフォルト値に設定します。
- booleanの場合は
false
- 数値およびchar型の場合は
0
- 文字列およびオブジェクト参照の場合は
null
たとえば、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メソッドを提供します。 これには次のものがあります。
- 型の挿入および抽出オペレーション
すべて
- リポジトリIDの取得
- 型コードの取得
- ストリームとの間で行われる型の読み込みおよび書込み
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));
基本ヘルパー・クラスの例
ここで説明する基本ヘルパー・クラスは、すべてのヘルパー・クラス、およびOMG IDLで定義された型がJavaプログラミング言語のインタフェースにマッピングされる場合に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
その他のクラス
CORBA
パッケージのほかのクラスおよびインタフェース(内部で使用される)は、4つのグループに分類できます。 そのうちの3つのグループは、要求に付随して使用され、4番目のグループ(インタフェース・リポジトリに関連)は、それ自身がカテゴリとなります。
ORBによって作成されるクラス
最初のグループには、ORBによって作成され、要求オペレーションで使用される情報を格納するクラスが含まれます。-
TCKind
--TypeCode
オブジェクトの種類(データ型)を示す -
TypeCode
-- データ型を示し、ほかの情報を示す場合もある -
Any
-- 値および値の型コードを格納する -
NamedValue
-- 名前、Any
オブジェクト、および引数モード・フラグを格納する。NamedValue
オブジェクトはメソッドの引数、メソッドの戻り値、またはコンテキストに関する情報を格納する。 -
ContextList
-- 呼出しで解決して送る必要があるコンテキストを記述する文字列のリスト -
ExceptionList
-- メソッドによってスローされる例外のTypeCode
のリスト -
Environment
-- メソッド呼出し間にスローされる例外のコンテナ -
Context
-- クライアントからサーバーに補足情報を渡すために使用されるNamedValue
オブジェクトのリスト -
NVList
-- 引数を渡すか、結果を取得するために使用されるNamedValue
オブジェクト
要求を処理するクラス
2番目のグループのクラスは、次のように要求を処理します。-
Object
-- すべてのCORBAオブジェクト参照の基底クラス -
Request
-- 要求に引数を追加するためのメソッド、呼び出されるメソッドについての情報(メソッド名、引数、スローされる例外など)にアクセスするためのメソッド、および要求の呼出しを行うためのメソッドが格納されている、DIIのmainクラス -
DynamicImplementation
-- DSIを使用するサーバー実装のための基底クラス。 このクラスの実装によって、ServerRequest
オブジェクトの状態を判定したり、その結果または例外を設定するために使用されるinvoke
メソッドを持つ -
ServerRequest
-- Dynamic Skeleton Interfaceの要求の明示的な状態を取得する
定数として機能するインタフェース
3番目のグループには、定数として機能するインタフェースが含まれます。 IDLからJavaへのマッピングでは、public static finalフィールドとして表される列挙値を含むJavaクラス(DefinitionKindなど)にIDLのenum型がマッピングされる必要があります。 また、IDLインタフェース外で定義されたIDL定数は、各定数のJavaインタフェースにマッピングされます。このため、org.omg.CORBA
パッケージの複数のインタフェースがshort
の単一フィールド、value
で構成されます。 このフィールドは、エラー・コードまたは値修飾子などに使用される定数です。 たとえば、インタフェースBAD_POLICY
のvalue
フィールドは、例外PolicyError
がスローされる理由の1つになる可能性があります。 このエラー・コードを指定するには、BAD_POLICY.value
を使用します。
例外PolicyError
では、可能なエラー・コードとして次のインタフェースのvalue
フィールドが使用されます。
-
BAD_POLICY
-
BAD_POLICY_TYPE
-
BAD_POLICY_VALUE
-
UNSUPPORTED_POLICY
-
UNSUPPORTED_POLICY_VALUE
TypeCode.type_modifier
メソッドは、次のインタフェースの1つのvalue
フィールドを返します。 これらのインタフェースの名前にあるVM
は、値修飾子を表します。
-
VM_NONE
-
VM_ABSTRACT
-
VM_CUSTOM
-
VM_TRUNCATABLE
ValueMember
オブジェクトのアクセス・メソッドによって返され、ValueMember
オブジェクトの可視性を示します。
-
PRIVATE_MEMBER
-
PUBLIC_MEMBER
NamedValue
オブジェクトで、またはメソッドへのパラメータとして使用されるこれらのフラグは、次のインタフェースで定義されます。
-
ARG_IN
-
ARG_INOUT
-
ARG_OUT
-
CTX_RESTRICT_SCOPE
インタフェース・リポジトリ・インタフェースとクラス
4番目のグループには、OMG IDLインタフェースir.idl
から、idlj
コンパイラによって生成されるインタフェース・リポジトリ・インタフェースとクラスがあります。 インタフェース・リポジトリの目的は、ORBがアクセスできるように、そこに格納されているインタフェースを識別することです。 各モジュール、型、インタフェース、属性、操作、パラメータ、例外、定数などは、インタフェース・リポジトリAPIによって完全に記述されます。
ORBではインタフェース・リポジトリを必要としないため、Java IDLにはインタフェース・リポジトリは含まれません。 このリリースにはインタフェース・リポジトリの実装は含まれていませんが、タイプ・コード(インタフェースorg.omg.CORBA.ORBのcreate_value_tc、create_struct_tc、create_union_tc、create_exception_tcの各メソッドを参照してください。)を作成する目的で、以下のIRクラスおよびインタフェースが含まれています:
- IRObject
- IDLType
- DefinitionKind
- StructMember
- UnionMember
- ValueMember
関連ドキュメント
概要、ガイド、およびチュートリアルについては、次を参照してください。Java IDLで実装されていないCORBA機能
org.omg
サブパッケージに含まれるAPIの一部は、現在のOMG CORBA仕様に準拠するために提供されていますが、JDK™のSunリリースでは実装されていません。 これにより、ほかのJDKのライセンス保持者は、標準拡張機能および製品でこのAPIの実装を提供できるようになります。
NO_IMPLEMENTをスローする機能
org.omg
サブパッケージに含まれるAPIには、さまざまな理由によりNO_IMPLEMENT
例外をスローするものがあります。 その理由として、次の点を挙げることができます。
LocalObject
などの場合、仕様に従って完全に実装するとこれらのAPIがNO_IMPLEMENT
をスローすることを示す。ORB.java
内のメソッドなどの場合、NO_IMPLEMENT
をスローするメソッドが実際にはORBコードの別のサブクラス内で実装されている。_get_interface_def()
や_get_interface
などの場合、APIが実際には未実装である。
このリリースで実装されていない機能またはAPIの概要
- インタフェース・リポジトリ インタフェース・リポジトリはJava IDLの通常の操作には不要。
-
Java IDLは
long double
をサポートしない。 -
ポリシー(
org.omg.CORBA.Policy
)およびそれらを取得するためのメソッドは実装されていない。 -
ドメイン・マネージャ(
org.omg.CORBA.DomainManager
)およびそれらを取得するためのメソッドは実装されていない。 -
サービス情報
org.omg.CORBA.ServiceInformation
およびORBメソッドpublic boolean get_service_information(short service_type, ServiceInformationHolder service_info)
は実装されていない。 - シングル・スレッドをサポートするORBメソッド(
perform_work
、work_pending
)は実装されていない。 - IDLコンテキスト。
org.omg.CORBA
パッケージで実装されていない機能のリスト
org.omg.CORBA
パッケージで実装されていないメソッド
-
ORB
-
public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val)
-
public void perform_work()
-
public boolean work_pending()
-
public org.omg.CORBA.Current get_current()
-
create_operation_list
-
get_default_context
-
get_service_information
-
DynAny
は使用しない(DynamicAny
パッケージの使用を推奨)
-
- 導入されたバージョン:
- JDK1.2
-
インタフェースのサマリー インタフェース 説明 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
のホルダーです。BoundsHelper このヘルパー・クラスは、Bounds
のマーシャリングを容易にするために使用されます。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.DynamicImplementationEnvironment クライアントで例外を使用できるようにするために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
をタグ付けするCORBAenum
のマッピングです。ポリシーでObject
の既存のポリシーを置換するか、ポリシーを既存のポリシーに追加するかを示します。SetOverrideTypeHelper SetOverrideType
のヘルパーです。ShortHolder Short
のホルダーです。ShortSeqHelper ShortSeqHelper
のヘルパーです。ShortSeqHolder ShortSeq
のホルダーです。StringHolder String
のホルダーです。StringSeqHelper Stringの配列です。StringSeqHolder Stringの配列です。StringValueHelper StringValue
のヘルパーです。StructMember インタフェース・リポジトリのIDLstruct
メンバーを記述します。これには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言語マッピング -
例外のサマリー Exception 説明 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 CORBATRANSACTION_MODE
例外は、IORのInvocationPolicyと選択した呼出しパス(直接呼び出しまたは回送された呼び出し)の間に不一致がある場合に、クライアントORBによってスローされます。TRANSACTION_REQUIRED 要求でnullトランザクション・コンテキストが送られたが、アクティブなトランザクションが必要なことを示す例外です。TRANSACTION_ROLLEDBACK 要求に関連付けられているトランザクションがロールバックされた、またはロールバックするようにマークされた場合にスローされる例外です。TRANSACTION_UNAVAILABLE Transaction Serviceへの接続が異常終了してトランザクション・サービス・コンテキストを処理できない場合、CORBATRANSACTION_UNAVAILABLE
例外がORBによってスローされます。TRANSIENT ORBがオブジェクトに到達しようとして失敗した場合にスローされる例外です。UNKNOWN オペレーション実装がCORBA以外の例外(実装のプログラミング言語に固有の例外など)をスローするか、オペレーションの発生式に指定されていないユーザー例外をオペレーションがスローする場合に、発生する例外です。UnknownUserException サーバーから返されたユーザー例外を格納するクラスです。UserException CORBA IDL定義のユーザー例外のルート・クラスです。WrongTransaction CORBAのWrongTransaction
ユーザー定義例外です。