- java.lang.Object
-
- javax.rmi.CORBA.Util
-
public class Util extends Object
共通の操作を実行するためにスタブおよびTieが使用できるユーティリティ・メソッドを提供します。
-
-
メソッドのサマリー
すべてのメソッド staticメソッド 具象メソッド 修飾子と型 メソッド 説明 static Object
copyObject(Object obj, ORB orb)
オブジェクトをコピーまたは接続します。static Object[]
copyObjects(Object[] obj, ORB orb)
オブジェクトの配列をコピーまたは接続します。static ValueHandler
createValueHandler()
ValueHandler
インタフェースを実装するクラスの単独インスタンスを返します。static String
getCodebase(Class clz)
指定されたクラスのコード・ベースがあれば、そのコード・ベースを返します。static Tie
getTie(Remote target)
指定されたターゲット・オブジェクトのTieがあれば、そのTieを返します。static boolean
isLocal(Stub stub)
isLocal
メソッドがRemoteException
をスローできることを除き、ObjectImpl._is_local
と同じセマンティックスを持ちます。static Class
loadClass(String className, String remoteCodebase, ClassLoader loader)
指定されたクラスのクラス・インスタンスを返します。static RemoteException
mapSystemException(SystemException ex)
SystemExceptionをRemoteExceptionへマップします。static Object
readAny(InputStream in)
java.lang.ObjectをCORBAのAny型として読み込みます。static void
registerTarget(Tie tie, Remote target)
Tieのターゲットを登録します。static void
unexportObject(Remote target)
関連付けられたTieを内部テーブルから削除し、Tie.deactivate()
を呼び出してオブジェクトを終了します。static RemoteException
wrapException(Throwable orig)
実装メソッドによってスローされた例外をラップします。static void
writeAbstractObject(OutputStream out, Object obj)
java.lang.Objectを値またはCORBA Objectとして書き込みます。static void
writeAny(OutputStream out, Object obj)
java.lang.ObjectをCORBAのAny型として書き込みます。static void
writeRemoteObject(OutputStream out, Object obj)
java.lang.ObjectをCORBA Objectとして書き込みます。
-
-
-
メソッドの詳細
-
mapSystemException
public static RemoteException mapSystemException(SystemException ex)
SystemExceptionをRemoteExceptionへマップします。- パラメータ:
ex
- マップするSystemException。- 戻り値:
- マップされた例外。
-
writeAny
public static void writeAny(OutputStream out, Object obj)
java.lang.ObjectをCORBAのAny型として書き込みます。- パラメータ:
out
- Any型を書き込むストリーム。obj
- Any型として書き込むオブジェクト。
-
readAny
public static Object readAny(InputStream in)
java.lang.ObjectをCORBAのAny型として読み込みます。- パラメータ:
in
- Any型の読込み元ストリーム。- 戻り値:
- ストリームから読み込まれたオブジェクト。
-
writeRemoteObject
public static void writeRemoteObject(OutputStream out, Object obj)
java.lang.ObjectをCORBA Objectとして書き込みます。obj
がエクスポートされたRMI-IIOPサーバー・オブジェクトである場合、Tieが検索されてobj
に結び付けられ、続いてout.write_Object(org.omg.CORBA.Object)
に書き込まれます。obj
がCORBA Objectの場合は、out.write_Object(org.omg.CORBA.Object)
に書き込まれます。- パラメータ:
out
- オブジェクトを書き込むストリーム。obj
- 書き込むオブジェクト。
-
writeAbstractObject
public static void writeAbstractObject(OutputStream out, Object obj)
java.lang.Objectを値またはCORBA Objectとして書き込みます。obj
が値オブジェクトまたはスタブ・オブジェクトの場合は、out.write_abstract_interface(java.lang.Object)
に書き込まれます。obj
がエクスポートされたRMI-IIOPサーバー・オブジェクトである場合、Tieが検索されてobj
に結び付けられ、続いてout.write_abstract_interface(java.lang.Object)
に書き込まれます。- パラメータ:
out
- オブジェクトを書き込むストリーム。obj
- 書き込むオブジェクト。
-
registerTarget
public static void registerTarget(Tie tie, Remote target)
Tieのターゲットを登録します。 Tieを内部テーブルに追加して、TieオブジェクトのTie.setTarget(java.rmi.Remote)
を呼び出します。- パラメータ:
tie
- 登録するTie。target
- Tieのターゲット。
-
unexportObject
public static void unexportObject(Remote target) throws NoSuchObjectException
関連付けられたTieを内部テーブルから削除し、Tie.deactivate()
を呼び出してオブジェクトを終了します。- パラメータ:
target
- アンエクスポートするオブジェクト。- 例外:
NoSuchObjectException
-
getTie
public static Tie getTie(Remote target)
指定されたターゲット・オブジェクトのTieがあれば、そのTieを返します。- 戻り値:
- Tie、または指定されたターゲットに登録されているTieがない場合はnull。
-
createValueHandler
public static ValueHandler createValueHandler()
ValueHandler
インタフェースを実装するクラスの単独インスタンスを返します。- 戻り値:
- ValueHandlerインタフェースを実装するクラス。
-
getCodebase
public static String getCodebase(Class clz)
指定されたクラスのコード・ベースがあれば、そのコード・ベースを返します。- パラメータ:
clz
- コード・ベースが取得されるクラス。- 戻り値:
- 空白で区切られたURLのリスト、またはnull。
-
loadClass
public static Class loadClass(String className, String remoteCodebase, ClassLoader loader) throws ClassNotFoundException
指定されたクラスのクラス・インスタンスを返します。このメソッドの仕様は「Java to IDL language mapping」(ptc/00-01-06)に規定されています。
Java SEプラットフォームでは、このメソッドは次のように動作します。
- 呼出しスタックで、最初のnull以外の
ClassLoader
を検出し、このClassLoader
を使用してクラスのロードを試行する。 - 最初のステップが失敗した場合、および
remoteCodebase
がnull以外でuseCodebaseOnly
がfalseの場合、java.rmi.server.RMIClassLoader.loadClass(remoteCodebase, className)
を呼び出す。 remoteCodebase
がnullまたはuseCodebaseOnly
がtrueの場合、java.rmi.server.RMIClassLoader.loadClass(className)
を呼び出す。- クラスがステップ1、2、または3によって正常にロードされず、
loader
がnull以外の場合、loader.loadClass(className)
を呼び出す。 - クラスがステップ1、2、3、または4によって正常にロードされない場合、ロードされたクラスを返すか、または
ClassNotFoundException
をスローする。
- パラメータ:
className
- クラスの名前。remoteCodebase
- クラスの検索場所となる空白で区切られたURLのリスト。 nullも可。loader
- ほかのメソッドがすべて失敗した場合に、クラスをロードするために使用できるClassLoader
。- 戻り値:
- ロードされたクラスを表す
Class
オブジェクト。 - 例外:
ClassNotFoundException
- クラスをロードできない場合。
- 呼出しスタックで、最初のnull以外の
-
isLocal
public static boolean isLocal(Stub stub) throws RemoteException
isLocal
メソッドがRemoteException
をスローできることを除き、ObjectImpl._is_local
と同じセマンティックスを持ちます。 スタブが、特定のオブジェクトがローカル・サーバントによって実装され、したがって、ローカル呼び出しAPIが使用できるかどうかを判定できるように_is_local()
が提供されます。- パラメータ:
stub
- テストするスタブ。- 戻り値:
- オブジェクトを生成するサーバントがスタブと同じプロセスに置かれ、両方が同じORBインスタンスを共有する場合、
_is_local()
メソッドはtrueを返す。 そうでない場合、_is_local()
メソッドはfalseを返す。_is_local()
のデフォルトの動作はfalseを返す。 - 例外:
RemoteException
- Java to IDL仕様にRemoteException
をスローさせる条件が指定されていない。
-
wrapException
public static RemoteException wrapException(Throwable orig)
実装メソッドによってスローされた例外をラップします。 該当するクライアント側の例外を返します。- パラメータ:
orig
- ラップする例外。- 戻り値:
- ラップされた例外。
-
copyObjects
public static Object[] copyObjects(Object[] obj, ORB orb) throws RemoteException
オブジェクトの配列をコピーまたは接続します。 ローカル・スタブが実際のパラメータを任意の数コピーするのに使用し、必要に応じてパラメータ間で共有しRMIセマンティックスをサポートします。- パラメータ:
obj
- コピーまたは接続対象のオブジェクト。orb
- ORB。- 戻り値:
- コピーまたは接続されたオブジェクト。
- 例外:
RemoteException
- コピーまたは接続できないオブジェクトがある場合。
-
copyObject
public static Object copyObject(Object obj, ORB orb) throws RemoteException
オブジェクトをコピーまたは接続します。 ローカル・スタブが実際のパラメータ、結果オブジェクト、または例外をコピーするのに使用します。- パラメータ:
obj
- コピー対象のオブジェクト。orb
- ORB。- 戻り値:
- コピーまたは接続されたオブジェクト。
- 例外:
RemoteException
- オブジェクトをコピーまたは接続できない場合。
-
-