JavaTM 2
Platform
Std. Ed. v1.4.0

javax.rmi.CORBA
クラス Util

java.lang.Object
  |
  +--javax.rmi.CORBA.Util

public class Util
extends Object

共通の操作を実行するためにスタブおよび Tie が使用できるユーティリティメソッドを提供します。


メソッドの概要
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.
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 として書き込みます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

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 である場合、objout.write_Object(org.omg.CORBA.Object) に書き込まれます。

パラメータ:
out - オブジェクトを書き込むストリーム
obj - 書き込むオブジェクト

writeAbstractObject

public static void writeAbstractObject(OutputStream out,
                                       Object obj)
java.lang.Object を値または CORBA Object として書き込みます。obj が値オブジェクトまたはスタブオブジェクトである場合、objout.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 2 プラットフォームでは、このメソッドは次のように動作します。

パラメータ:
className - クラスの名前
remoteCodebase - クラスを検索する、スペースで区切られた URL のリスト。null の場合あり
loader - 他のメソッドがすべて失敗した場合に、クラスをロードするために使用する ClassLoader
戻り値:
ロードされたクラスを表す Class オブジェクト
例外:
ClassNotFoundException - クラスをロードできない場合

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 - IDL 仕様の Java は 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 - オブジェクトをコピーまたは接続できない場合

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.