Spec-Zone.ru › OpenJDK 8

Пакет org.omg.DynamicAny

Предоставляет классы и интерфейсы, которые позволяют просматривать значение данных, связанное с any, во время выполнения и извлекать примитивные составляющие значения данных.

См.: Описание

Интерфейс Описание
DynAny

Значения любого типа могут быть динамически интерпретированы (просмотрены) и построены с помощью объектов DynAny.

DynAnyFactory

Объекты DynAny могут быть созданы путём вызова операций объекта DynAnyFactory.

DynAnyFactoryOperations

Объекты DynAny могут быть созданы путём вызова операций объекта DynAnyFactory.

DynAnyOperations

Значения любого типа могут быть динамически интерпретированы (просмотрены) и построены с помощью объектов DynAny.

DynArray

Объекты DynArray поддерживают обработку массивов IDL.

DynArrayOperations

Объекты DynArray поддерживают обработку массивов IDL.

DynEnum

Объекты DynEnum поддерживают обработку перечислений IDL.

DynEnumOperations

Объекты DynEnum поддерживают обработку перечислений IDL.

DynFixed

Объекты DynFixed поддерживают обработку фиксированных значений IDL.

DynFixedOperations

Объекты DynFixed поддерживают обработку фиксированных значений IDL.

DynSequence

Объекты DynSequence поддерживают обработку последовательностей IDL.

DynSequenceOperations

Объекты DynSequence поддерживают обработку последовательностей IDL.

DynStruct

Объекты DynStruct поддерживают обработку структур и исключений IDL.

DynStructOperations

Объекты DynStruct поддерживают обработку структур и исключений IDL.

DynUnion

Объекты DynUnion поддерживают обработку объединений IDL.

DynUnionOperations

Объекты DynUnion поддерживают обработку объединений IDL.

DynValue

Объекты DynValue поддерживают обработку типов значений IDL без упаковки.

DynValueBox

Объекты DynValueBox поддерживают обработку типов значений IDL с упаковкой.

DynValueBoxOperations

Объекты DynValueBox поддерживают обработку типов значений IDL с упаковкой.

DynValueCommon

DynValueCommon предоставляет операции, поддерживаемые как интерфейсом DynValue, так и DynValueBox.

DynValueCommonOperations

DynValueCommon предоставляет операции, поддерживаемые как интерфейсом DynValue, так и DynValueBox.

DynValueOperations

Объекты DynValue поддерживают обработку типов значений IDL без упаковки.

Класс Описание
_DynAnyFactoryStub

Объекты DynAny могут быть созданы путём вызова операций объекта DynAnyFactory.

_DynAnyStub

Значения любого типа могут быть динамически интерпретированы (просмотрены) и построены с помощью объектов DynAny.

_DynArrayStub

Объекты DynArray поддерживают обработку массивов IDL.

_DynEnumStub

Объекты DynEnum поддерживают обработку перечислений IDL.

_DynFixedStub

Объекты DynFixed поддерживают обработку фиксированных значений IDL.

_DynSequenceStub

Объекты DynSequence поддерживают обработку последовательностей IDL.

_DynStructStub

Объекты DynStruct поддерживают обработку структур и исключений IDL.

_DynUnionStub

Объекты DynUnion поддерживают обработку объединений IDL.

_DynValueStub

Объекты DynValue поддерживают обработку типов значений IDL без упаковки.

AnySeqHelper

org/omg/DynamicAny/AnySeqHelper.java .

DynAnyFactoryHelper

Объекты DynAny могут быть созданы путём вызова операций объекта DynAnyFactory.

DynAnyHelper

Значения любого типа могут быть динамически интерпретированы (просмотрены) и построены с помощью объектов DynAny.

DynAnySeqHelper

org/omg/DynamicAny/DynAnySeqHelper.java .

DynArrayHelper

Объекты DynArray поддерживают обработку массивов IDL.

DynEnumHelper

Объекты DynEnum поддерживают обработку перечислений IDL.

DynFixedHelper

Объекты DynFixed поддерживают обработку фиксированных значений IDL.

DynSequenceHelper

Объекты DynSequence поддерживают обработку последовательностей IDL.

DynStructHelper

Объекты DynStruct поддерживают обработку структур и исключений IDL.

DynUnionHelper

Объекты DynUnion поддерживают обработку объединений IDL.

DynValueHelper

Объекты DynValue поддерживают обработку типов значений IDL без упаковки.

FieldNameHelper

org/omg/DynamicAny/FieldNameHelper.java .

NameDynAnyPair

org/omg/DynamicAny/NameDynAnyPair.java .

NameDynAnyPairHelper

org/omg/DynamicAny/NameDynAnyPairHelper.java .

NameDynAnyPairSeqHelper

org/omg/DynamicAny/NameDynAnyPairSeqHelper.java .

NameValuePair

org/omg/DynamicAny/NameValuePair.java .

NameValuePairHelper

org/omg/DynamicAny/NameValuePairHelper.java .

NameValuePairSeqHelper

org/omg/DynamicAny/NameValuePairSeqHelper.java .

Описание пакета org.omg.DynamicAny

Предоставляет классы и интерфейсы, которые позволяют перемещаться по значению данных, связанному с any во время выполнения, и извлекать примитивные составляющие значения данных.

any может быть передан программе, которая не имеет никакой статической информации о типе any (код, сгенерированный для типа компилятором IDL, не был скомпилирован с объектной реализацией). В результате, объект, получающий any, не имеет портативного метода его использования.

DynAny позволяют перемещаться по значению данных, связанному с any во время выполнения, и извлекать примитивные составляющие значения данных. Это особенно полезно для написания мощных универсальных серверов (мосты, каналы событий с поддержкой фильтрации). Аналогичным образом, эта возможность позволяет создавать any во время выполнения, не имея статических знаний о его типе. Это особенно полезно для написания универсальных клиентов (мосты, браузеры, отладчики, инструменты пользовательского интерфейса).

Значения Any могут быть динамически интерпретированы (обработаны) и созданы с помощью объектов DynAny. Объект DynAny связан со значением данных, которое соответствует копии значения, вставленной в Any. Объект DynAny можно рассматривать как упорядоченное множество компонентных DynAny. Для DynAny , представляющих базовый тип, такой как long, или тип без компонентов, такой как пустое исключение, упорядоченное множество компонентов пусто.

Каждый объект DynAny сохраняет понятие текущей позиции в своем наборе компонентных DynAny. Текущая позиция определяется значением индекса, которое варьируется от 0 до n-1, где n — количество компонентов. Специальное значение индекса -1 указывает текущую позицию, которая никуда не указывает. Для значений, которые не могут иметь текущую позицию (например, пустое исключение), значение индекса фиксируется на -1. Если объект DynAny инициализируется значением, имеющим компоненты, индекс инициализируется значением 0. После создания неинициализированного объекта DynAny (то есть, объекта DynAny, у которого нет значения, но есть объект TypeCode, разрешающий компоненты), текущая позиция зависит от типа значения, представленного DynAny. (Текущая позиция устанавливается в 0 или -1, в зависимости от того, получает ли новый объект DynAny значения по умолчанию для своих компонентов.)

Операции итерации rewind, seek, и next могут быть использованы для изменения текущей позиции, а операция current_component возвращает компонент в текущей позиции. Операция component_count возвращает количество компонентов DynAny. В совокупности эти операции позволяют итерироваться по компонентам DynAny, например, для (рекурсивного) просмотра его содержимого.

Созданный объект DynAny представляет собой объект DynAny , связанный со созданным типом. Существует отдельный интерфейс, наследуемый от интерфейса DynAny, связанный с каждым видом созданного типа в IDL (фиксированный, перечисление, структура, последовательность, объединение, массив, исключение и тип значения). Созданный объект DynAny экспортирует операции, которые позволяют создавать новые объекты DynAny, каждый из которых связан с компонентом созданного значения данных. Например, объект DynStruct связан со значением struct. Это означает, что объект DynStruct может рассматриваться как владелец упорядоченного набора компонентов, по одному для каждого члена структуры. Объект DynStruct экспортирует операции, которые позволяют создавать новые объекты DynAny, каждый из которых связан с членом struct.

Если объект DynAny был получен из другого (созданного) объекта DynAny, например, объекта DynAny, представляющего член структуры, который был создан из объекта DynStruct, член DynAny логически содержится в DynStruct. Вызов операций insert или get оставляет текущую позицию неизменной. Уничтожение верхнего уровня объекта DynAny (объекта, который не был получен в качестве компонента другого объекта DynAny) также уничтожает любые компонентные объекты DynAny , полученные из него. Уничтожение объекта DynAny не верхнего уровня ничего не делает. Вызов операций на уничтоженном объекте верхнего уровня DynAny или любом из его потомков приводит к ошибке OBJECT_NOT_EXIST. Если программист хочет уничтожить объект DynAny, но все еще хочет манипулировать некоторыми компонентами значения данных, связанного с ним, то он или она должны сначала создать объект DynAny для компонента и после этого сделать копию созданного объекта DynAny.

Поведение объектов DynAny было определено для обеспечения эффективной реализации с точки зрения выделенной памяти и скорости доступа. Объекты DynAny предназначены для обработки значений, извлеченных из any или для построения значений any во время выполнения. Их использование для других целей не рекомендуется.

Обработка объектов DynAny

Операции Insert и get необходимы для обработки базовых объектов DynAny, но также полезны для обработки созданных объектов DynAny. Вставка значения базового типа данных в созданный объект DynAny означает инициализацию текущего компонента созданного значения данных, связанного с объектом DynAny. Например, вызов insert_boolean на объекте DynStruct подразумевает вставку значения данных boolean в текущую позицию связанного значения данных struct. Тип считается совместимым для вставки или извлечения значения, если его TypeCode эквивалентен TypeCode, содержащемуся в DynAny или, если у DynAny есть компоненты, эквивалентен TypeCode объекта DynAny в текущей позиции.

Основные операции включают:

  • insert_boolean, get_boolean
  • insert_char, get_char
  • insert_short, get_short
  • insert_ushort, get_ushort
  • insert_long, get_long
  • insert_ulong, get_ulong
  • insert_double, get_double
  • insert_string, get_string
  • insert_reference, get_reference
  • insert_typecode, get_typecode
  • insert_longlong, get_longlong
  • insert_ulonglong, get_ulonglong
  • insert_longdouble, get_longdouble
  • insert_wchar, get_wchar
  • insert_wstring, get_wstring
  • insert_any, get_any
  • insert_dyn_any, get_dyn_any
  • insert_val, get_val
  • insert_octet, get_octet
  • insert_float, get_float
  • get_value
  • get_as_string
  • get_as_ulong
  • get_members
  • get_members_as_dyn_any
  • get_discriminator
  • get_length
  • get_elements
  • get_elements_as_dyn_any
  • get_boxed_value
  • get_boxed_value_as_dyn_any

Объекты DynAny и DynAnyFactory предназначены для локального использования в процессе, в котором они созданы и используются. Это означает, что ссылки на объекты DynAny и DynAnyFactory не могут быть экспортированы в другие процессы или внешне с помощью ORB.object_to_string(). Если будет сделана какая-либо попытка сделать это, то нарушающая операция сгенерирует системное исключение MARSHAL. Поскольку их интерфейсы определены в IDL, объекты DynAny экспортируют операции, определенные в стандартном интерфейсе org.omg.CORBA.Object. Однако любая попытка вызвать операции, экспортированные через интерфейс Object, может вызвать стандартное исключение NO_IMPLEMENT. Попытка использовать объект DynAny с DII может вызвать исключение NO_IMPLEMENT.

Спецификация пакета

Для получения точного списка поддерживаемых разделов официальных спецификаций, с которыми соответствует ORB Java[tm] Platform, Standard Edition 6, см. Официальные спецификации для поддержки CORBA в Java[tm] SE 6.

Since:
1.4

© 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