Spec-Zone.ru › OpenJDK 8

Класс _DynAnyFactoryStub

  • java.lang.Object
    • org.omg.CORBA.portable.ObjectImpl
      • org.omg.DynamicAny._DynAnyFactoryStub
Все реализованные интерфейсы:
Serializable, Object, IDLEntity, DynAnyFactory, DynAnyFactoryOperations

public class _DynAnyFactoryStub
extends ObjectImpl
implements DynAnyFactory

Объекты DynAny могут быть созданы, вызвав операции на объекте DynAnyFactory. Обычно есть только два способа создания объекта DynAny:

  • вызов операции на существующем объекте DynAny
  • вызов операции на объекте DynAnyFactory
Созданный объект DynAny поддерживает операции, которые позволяют создавать новые объекты DynAny, инкапсулирующие доступ к значению некоторых составляющих. Объекты DynAny также поддерживают операцию копирования для создания новых объектов DynAny. Ссылка на объект DynAnyFactory получается путем вызова ORB.resolve_initial_references() с параметром идентификатора, установленным на строковую константу "DynAnyFactory".

Динамическая интерпретация any обычно включает в себя создание объекта DynAny с использованием create_dyn_any() как первого шага. В зависимости от типа any, ссылка на получившийся объект DynAny может быть сужена до ссылки на объект DynFixed, DynStruct, DynSequence, DynArray, DynUnion, DynEnum или DynValue.

Динамическое создание any включает в себя создание объекта DynAny с использованием create_dyn_any_from_type_code(), передавая TypeCode, связанный со значением, которое нужно создать. Возвращённая ссылка сужается до одного из сложных типов, таких как DynStruct, если это уместно. Затем значение может быть инициализировано путём вызова операций на полученном объекте. Наконец, может быть вызван метод to_any для создания значения any из созданного DynAny.

Сводка полей

Модификатор и тип Поле и описание
static Class _opsClass

Сводка конструкторов

Конструктор и описание
_DynAnyFactoryStub()

Сводка методов

Модификатор и тип Метод и описание
String[] _ids()

Получает массив строк, содержащий идентификаторы репозитория, поддерживаемые этим ObjectImpl объектом.

DynAny create_dyn_any_from_type_code(TypeCode type)

Создаёт DynAny из TypeCode.

DynAny create_dyn_any(Any value)

Создаёт новый объект DynAny из значения any.

Методы, унаследованные от класса org.omg.CORBA.portable.ObjectImpl

_create_request, _create_request, _duplicate, _get_delegate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_delegate, _set_policy_override, equals, hashCode, toString

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, унаследованные от интерфейса org.omg.CORBA.Object

_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override

Подробное описание полей

_opsClass

public static final Class _opsClass

Подробное описание конструкторов

_DynAnyFactoryStub

public _DynAnyFactoryStub()

Подробное описание методов

create_dyn_any

public DynAny create_dyn_any(Any value)
                      throws InconsistentTypeCode

Создаёт новый объект DynAny из значения any. Копия TypeCode, связанного со значением any, присваивается получившемуся объекту DynAny. Значение, связанное с объектом DynAny, является копией значения в исходном any. Текущая позиция созданного DynAny устанавливается в ноль, если переданное значение имеет компоненты, в противном случае в -1.

Указано в:
create_dyn_any в интерфейсе DynAnyFactoryOperations
Исключения:
InconsistentTypeCode - если значение имеет TypeCode с TCKind tk_Principal, tk_native или tk_abstract_interface

create_dyn_any_from_type_code

public DynAny create_dyn_any_from_type_code(TypeCode type)
                                     throws InconsistentTypeCode

Создаёт DynAny из TypeCode. В зависимости от TypeCode, созданный объект может быть типа DynAny или одного из его производных типов, например, DynStruct. Возвращённую ссылку можно сузить до производного типа. Во всех случаях DynAny, созданный из TypeCode, имеет начальное значение по умолчанию. Значения по умолчанию для основных типов:

  • false для boolean
  • ноль для числовых типов
  • ноль для типов octet, char и wchar
  • пустая строка для string и wstring
  • null для ссылок на объекты
  • TypeCode со значением TCKind tk_null для TypeCode
  • для any значений — any, содержащий TypeCode со значением TCKind tk_null и без значения
Для сложных типов создание соответствующего DynAny присваивает значение по умолчанию следующим образом:
  • Для DynSequence устанавливает текущую позицию в -1 и создаёт пустую последовательность.
  • Для DynEnum устанавливает текущую позицию в -1 и устанавливает значение перечислителя в первое значение перечислителя, указанное в TypeCode.
  • Для DynFixed устанавливает текущую позицию в -1 и устанавливает значение в ноль.
  • Для DynStruct устанавливает текущую позицию в -1 для пустых исключений и в ноль для всех других TypeCode. Члены (если они есть) (рекурсивно) инициализируются их значениями по умолчанию.
  • Для DynArray устанавливает текущую позицию в ноль и (рекурсивно) инициализирует элементы их значениями по умолчанию.
  • Для DynUnion устанавливает текущую позицию в ноль. Значение дискриминатора устанавливается в значение, согласованное с первым именованным членом объединения. Этот член активируется и (рекурсивно) инициализируется его значением по умолчанию.
  • Для DynValue и DynValueBox инициализируется значением null.

Указано в:
create_dyn_any_from_type_code в интерфейсе DynAnyFactoryOperations
Исключения:
InconsistentTypeCode

_ids

public String[] _ids()

Описание скопировано из класса: ObjectImpl

Получает массив строк, содержащий идентификаторы репозитория, поддерживаемые этим ObjectImpl объектом. Например, для stub этот метод возвращает информацию обо всех интерфейсах, поддерживаемых stub.

Указано в:
_ids в классе ObjectImpl
Возвращает:
массив всех идентификаторов репозитория, поддерживаемых этим ObjectImpl экземпляром

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API