Класс Util
- java.lang.Object
-
- javax.rmi.CORBA.Util
public class Util extends Object
Предоставляет служебные методы, которые могут использоваться заглушками и связями для выполнения общих операций.
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static Object |
copyObject(Object obj,
ORB orb) Копирует или подключает объект. |
static Object[] |
copyObjects(Object[] obj,
ORB orb) Копирует или подключает массив объектов. |
static ValueHandler |
createValueHandler() Возвращает одиночный экземпляр класса, реализующего интерфейс |
static String |
getCodebase(Class clz) Возвращает базу кода, если таковая имеется, для данного класса. |
static Tie |
getTie(Remote target) Возвращает ссылку (если таковая имеется) для заданного целевого объекта. |
static boolean |
isLocal(Stub stub) Метод |
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) Регистрирует целевой объект для ссылки. |
static void |
unexportObject(Remote target) Удаляет связанную ссылку из внутренней таблицы и вызывает |
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 сервера, ищется ссылка, связывается с 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 сервера, ищется ссылка, связывается с obj, затем записывается в out.write_abstract_interface(java.lang.Object).
- Параметры:
-
out- поток для записи объекта. -
obj- объект для записи.
registerTarget
public static void registerTarget(Tie tie,
Remote target)
Регистрирует целевой объект для ссылки. Добавляет ссылку в внутреннюю таблицу и вызывает Tie.setTarget(java.rmi.Remote) в объекте ссылки.
- Параметры:
-
tie- регистрируемая ссылка. -
target- целевой объект для ссылки.
unexportObject
public static void unexportObject(Remote target)
throws NoSuchObjectException
Удаляет связанную ссылку из внутренней таблицы и вызывает Tie.deactivate() для деактивации объекта.
- Параметры:
-
target- объект для удаления экспорта. - Исключения:
NoSuchObjectException
getTie
public static Tie getTie(Remote target)
Возвращает ссылку (если таковая имеется) для заданного целевого объекта.
- Возвращает:
- ссылку или 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 в IDL", ptc/00-01-06.
В Java SE Platform этот метод работает следующим образом:
- Находит первое не-null значение
ClassLoaderв стеке вызовов и пытается загрузить класс с помощью этогоClassLoader. - Если первый шаг завершился неудачей, и если
remoteCodebaseне-null иuseCodebaseOnlyложно, то вызываетсяjava.rmi.server.RMIClassLoader.loadClass(remoteCodebase, className). - Если
remoteCodebaseравно null илиuseCodebaseOnlyистинно, то вызывается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- если класс не может быть загружен.
isLocal
public static boolean isLocal(Stub stub)
throws RemoteException
Метод isLocal имеет ту же семантику, что и метод ObjectImpl._is_local, за исключением того, что он может бросить исключение RemoteException. Метод _is_local() предоставляется, чтобы заглушки могли определить, реализуется ли конкретный объект локальным сервером, и, следовательно, могут ли использоваться локальные API вызовов.
- Параметры:
-
stub- заглушка для проверки. - Возвращает:
- Метод
_is_local()возвращает true, если сервер, воплощающий объект, находится в том же процессе, что и заглушка, и они оба используют один и тот же экземпляр ORB. Метод_is_local()возвращает false в противном случае. По умолчанию_is_local()возвращает false. - Исключения:
-
RemoteException- Спецификация Java-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- если объект не удалось скопировать или подключить.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.