Spec-Zone.ru › OpenJDK 8

Интерфейс DynAnyFactoryOperations

Все известные дочерние интерфейсы:
DynAnyFactory
Все известные реализующие классы:
_DynAnyFactoryStub

public interface DynAnyFactoryOperations

Объекты 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.

Методы

Модификатор и тип Метод и описание
DynAny create_dyn_any_from_type_code(TypeCode type)

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

DynAny create_dyn_any(Any value)

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

Методы

create_dyn_any

DynAny create_dyn_any(Any value)
               throws InconsistentTypeCode

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

Выбрасывает:
InconsistentTypeCode - если value имеет TypeCode с TCKind tk_Principal, tk_native или tk_abstract_interface

create_dyn_any_from_type_code

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 инициализируется нулевым значением.

Выбрасывает:
InconsistentTypeCode

© 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