Spec-Zone.ru › OpenJDK 8

Интерфейс DynAnyOperations

Все известные подинтерфейсы:
DynAny, DynArray, DynArrayOperations, DynEnum, DynEnumOperations, DynFixed, DynFixedOperations, DynSequence, DynSequenceOperations, DynStruct, DynStructOperations, DynUnion, DynUnionOperations, DynValue, DynValueBox, DynValueBoxOperations, DynValueCommon, DynValueCommonOperations, DynValueOperations
Все известные реализующие классы:
_DynAnyStub, _DynArrayStub, _DynEnumStub, _DynFixedStub, _DynSequenceStub, _DynStructStub, _DynUnionStub, _DynValueStub

public interface DynAnyOperations

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

Объект 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, связанный с построенным типом. Для каждого вида построенного типа в IDL (fixed, enum, struct, sequence, union, array, exception и тип значения) существует отдельный интерфейс, наследуемый от интерфейса DynAny.

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

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

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

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

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

Методы

Модификатор и тип Метод и описание
void assign(DynAny dyn_any)

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

int component_count()

Возвращает количество компонентов DynAny.

DynAny copy()

Создаёт новый объект DynAny, значение которого является глубокой копией объекта DynAny, на котором он вызван.

DynAny current_component()

Возвращает DynAny для компонента в текущей позиции.

void destroy()

Уничтожает объект DynAny.

boolean equal(DynAny dyn_any)

Сравнивает два значения DynAny на равенство.

void from_any(Any value)

Инициализирует значение, связанное с объектом DynAny, значением, содержащимся в any.

Any get_any()

Извлекает значение Any, содержащееся в Any, представленном этим объектом DynAny.

boolean get_boolean()

Извлекает булевое значение из этого DynAny.

char get_char()

Извлекает значение char из этого DynAny.

double get_double()

Извлекает значение double из этого DynAny.

DynAny get_dyn_any()

Извлекает значение Any, содержащееся в Any, представленном этим DynAny, и возвращает его, обернутым в новый DynAny.

float get_float()

Извлекает значение float из этого DynAny.

int get_long()

Извлекает целочисленное значение из этого DynAny.

long get_longlong()

Извлекает значение long из этого DynAny.

byte get_octet()

Извлекает значение byte из этого DynAny.

Object get_reference()

Извлекает ссылку на объект CORBA из этого DynAny.

short get_short()

Извлекает значение short из этого DynAny.

String get_string()

Извлекает строковое значение из этого DynAny.

TypeCode get_typecode()

Извлекает объект TypeCode из этого DynAny.

int get_ulong()

Извлекает целочисленное значение из этого DynAny.

long get_ulonglong()

Извлекает значение long из этого DynAny.

short get_ushort()

Извлекает значение short из этого DynAny.

Serializable get_val()

Извлекает объект Serializable из этого DynAny.

char get_wchar()

Извлекает значение long из этого DynAny.

String get_wstring()

Извлекает строковое значение из этого DynAny.

void insert_any(Any value)

Вставляет значение Any в Any, представленное этим DynAny.

void insert_boolean(boolean value)

Вставляет булевое значение в DynAny.

void insert_char(char value)

Вставляет значение char в DynAny.

void insert_double(double value)

Вставляет значение double в DynAny.

void insert_dyn_any(DynAny value)

Вставляет значение Any, содержащееся в параметре DynAny, в Any, представленное этим DynAny.

void insert_float(float value)

Вставляет значение float в DynAny.

void insert_long(int value)

Вставляет целочисленное значение в DynAny.

void insert_longlong(long value)

Вставляет значение long в DynAny.

void insert_octet(byte value)

Вставляет значение byte в DynAny.

void insert_reference(Object value)

Вставляет ссылку на объект CORBA в DynAny.

void insert_short(short value)

Вставляет значение short в DynAny.

void insert_string(String value)

Вставляет строковое значение в DynAny.

void insert_typecode(TypeCode value)

Вставляет объект TypeCode в DynAny.

void insert_ulong(int value)

Вставляет целочисленное значение в DynAny.

void insert_ulonglong(long value)

Вставляет значение long в DynAny.

void insert_ushort(short value)

Вставляет значение short в DynAny.

void insert_val(Serializable value)

Вставляет ссылку на объект Serializable в этот DynAny.

void insert_wchar(char value)

Вставляет значение char в DynAny.

void insert_wstring(String value)

Вставляет строковое значение в DynAny.

boolean next()

Перемещает текущую позицию к следующему компоненту.

void rewind()

Эквивалентно seek(0).

boolean seek(int index)

Устанавливает текущую позицию в index.

Any to_any()

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

TypeCode type()

Возвращает TypeCode, связанный с этим объектом DynAny.

Методы

type

TypeCode type()

Возвращает TypeCode, связанный с этим объектом DynAny. Объект DynAny создается с присвоенным ему значением TypeCode. Это значение TypeCode определяет тип значения, обрабатываемого через объект DynAny. Обратите внимание, что TypeCode, связанный с объектом DynAny, инициализируется в момент создания DynAny и не может быть изменен в течение срока службы объекта DynAny.

Возвращает:
TypeCode, связанный с этим объектом DynAny

assign

void assign(DynAny dyn_any)
     throws TypeMismatch

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

Параметры:
dyn_any -
Исключения:
TypeMismatch - если тип переданного DynAny не эквивалентен типу целевого DynAny

from_any

void from_any(Any value)
       throws TypeMismatch,
              InvalidValue

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

Исключения:
TypeMismatch - если тип переданного Any не эквивалентен типу целевого DynAny
InvalidValue - если переданный Any не содержит допустимого значения (например, нулевой строки)

to_any

Any to_any()

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

Возвращает:
новый объект Any с тем же значением и TypeCode

equal

boolean equal(DynAny dyn_any)

Сравнивает два значения DynAny на равенство. Два значения DynAny равны, если их TypeCode эквивалентны и, рекурсивно, все компоненты DynAny имеют равные значения. Текущая позиция двух сравниваемых DynAny не влияет на результат equal.

Возвращает:
true, если DynAny равны, false в противном случае

destroy

void destroy()

Уничтожает объект DynAny. Эта операция освобождает любые ресурсы, используемые для представления значения данных, связанного с объектом DynAny. Она должна вызываться для ссылок, полученных от одной из операций создания в интерфейсе ORB или для ссылки, возвращаемой DynAny.copy(), чтобы избежать утечек ресурсов. Вызов destroy для компонентных объектов DynAny (например, для объектов, возвращаемых операцией current_component) ничего не делает. Уничтожение объекта DynAny подразумевает уничтожение всех объектов DynAny, полученных из него. То есть ссылки на компоненты уничтоженного DynAny становятся недействительными. Вызовы по таким ссылкам вызывают OBJECT_NOT_EXIST. Можно управлять компонентом DynAny за пределами срока службы DynAny, из которого был получен компонент, создав копию компонента с помощью операции copy перед уничтожением DynAny, из которого был получен компонент.

copy

DynAny copy()

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

Возвращает:
глубокая копия объекта DynAny

insert_boolean

void insert_boolean(boolean value)
             throws TypeMismatch,
                    InvalidValue

Вставляет булево значение в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_octet

void insert_octet(byte value)
           throws TypeMismatch,
                  InvalidValue

Вставляет значение байта в DynAny. Тип данных IDL octet сопоставляется с типом данных Java byte.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_char

void insert_char(char value)
          throws TypeMismatch,
                 InvalidValue

Вставляет значение char в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_short

void insert_short(short value)
           throws TypeMismatch,
                  InvalidValue

Вставляет значение short в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_ushort

void insert_ushort(short value)
            throws TypeMismatch,
                   InvalidValue

Вставляет значение short в DynAny. Тип данных IDL ushort сопоставляется с типом данных Java short.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_long

void insert_long(int value)
          throws TypeMismatch,
                 InvalidValue

Вставляет целочисленное значение в DynAny. Тип данных IDL long сопоставляется с типом данных Java int.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_ulong

void insert_ulong(int value)
           throws TypeMismatch,
                  InvalidValue

Вставляет целочисленное значение в DynAny. Тип данных IDL ulong сопоставляется с типом данных Java int.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_float

void insert_float(float value)
           throws TypeMismatch,
                  InvalidValue

Вставляет значение float в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_double

void insert_double(double value)
            throws TypeMismatch,
                   InvalidValue

Вставляет значение double в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_string

void insert_string(String value)
            throws TypeMismatch,
                   InvalidValue

Вставляет строковое значение в DynAny. Как ограниченные, так и неограниченные строки вставляются с помощью этого метода.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
InvalidValue - если вставленная строка длиннее границы ограниченной строки
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_reference

void insert_reference(Object value)
               throws TypeMismatch,
                      InvalidValue

Вставляет ссылку на объект CORBA в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_typecode

void insert_typecode(TypeCode value)
              throws TypeMismatch,
                     InvalidValue

Вставляет объект TypeCode в DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_longlong

void insert_longlong(long value)
              throws TypeMismatch,
                     InvalidValue

Вставляет длинное значение в DynAny. Тип данных IDL long long сопоставляется с типом данных Java long.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_ulonglong

void insert_ulonglong(long value)
               throws TypeMismatch,
                      InvalidValue

Вставляет длинное значение в DynAny. Тип данных IDL unsigned long long сопоставляется с типом данных Java long.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_wchar

void insert_wchar(char value)
           throws TypeMismatch,
                  InvalidValue

Вставляет значение char в DynAny. Тип данных IDL wchar сопоставляется с типом данных Java char.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_wstring

void insert_wstring(String value)
             throws TypeMismatch,
                    InvalidValue

Вставляет строковое значение в DynAny. Как ограниченные, так и неограниченные строки вставляются с помощью этого метода.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
InvalidValue - если вставленная строка длиннее границы ограниченной строки
TypeMismatch

insert_any

void insert_any(Any value)
         throws TypeMismatch,
                InvalidValue

Вставляет значение Any в Any, представленное этим DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_dyn_any

void insert_dyn_any(DynAny value)
             throws TypeMismatch,
                    InvalidValue

Вставляет значение Any, содержащееся в параметре DynAny, в Any, представленное этим DynAny.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

insert_val

void insert_val(Serializable value)
         throws TypeMismatch,
                InvalidValue

Вставляет ссылку на сериализуемый объект в этот DynAny. Тип IDL ValueBase сопоставляется с типом Java Serializable.

Исключения:
InvalidValue - если этот DynAny имеет компоненты, но имеет текущую позицию -1
TypeMismatch - если вызывается на DynAny, чей текущий компонент сам имеет компоненты

get_boolean

boolean get_boolean()
             throws TypeMismatch,
                    InvalidValue

Извлекает булево значение из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_octet

byte get_octet()
        throws TypeMismatch,
               InvalidValue

Извлекает значение байта из этого DynAny. Тип IDL octet сопоставляется с типом Java byte.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_char

char get_char()
       throws TypeMismatch,
              InvalidValue

Извлекает значение char из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_short

short get_short()
         throws TypeMismatch,
                InvalidValue

Извлекает значение short из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_ushort

short get_ushort()
          throws TypeMismatch,
                 InvalidValue

Извлекает значение short из этого DynAny. Тип IDL ushort сопоставляется с типом Java short.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_long

int get_long()
      throws TypeMismatch,
             InvalidValue

Извлекает целое значение из этого DynAny. Тип IDL long сопоставляется с типом Java int.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_ulong

int get_ulong()
       throws TypeMismatch,
              InvalidValue

Извлекает целое значение из этого DynAny. Тип IDL ulong сопоставляется с типом Java int.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_float

float get_float()
         throws TypeMismatch,
                InvalidValue

Извлекает значение float из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_double

double get_double()
           throws TypeMismatch,
                  InvalidValue

Извлекает значение double из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_string

String get_string()
           throws TypeMismatch,
                  InvalidValue

Извлекает строковое значение из этого DynAny. Оба ограниченные и неограниченные строки извлекаются с помощью этого метода.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_reference

Object get_reference()
              throws TypeMismatch,
                     InvalidValue

Извлекает ссылку на объект CORBA из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_typecode

TypeCode get_typecode()
               throws TypeMismatch,
                      InvalidValue

Извлекает объект TypeCode из этого DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_longlong

long get_longlong()
           throws TypeMismatch,
                  InvalidValue

Извлекает значение long из этого DynAny. Тип IDL long long сопоставляется с типом Java long.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_ulonglong

long get_ulonglong()
            throws TypeMismatch,
                   InvalidValue

Извлекает значение long из этого DynAny. Тип IDL unsigned long long сопоставляется с типом Java long.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_wchar

char get_wchar()
        throws TypeMismatch,
               InvalidValue

Извлекает значение long из этого DynAny. Тип IDL wchar сопоставляется с типом Java char.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_wstring

String get_wstring()
            throws TypeMismatch,
                   InvalidValue

Извлекает строковое значение из этого DynAny. Оба ограниченные и неограниченные строки извлекаются с помощью этого метода.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue

get_any

Any get_any()
     throws TypeMismatch,
            InvalidValue

Извлекает значение Any, содержащееся в Any, представленное этим DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_dyn_any

DynAny get_dyn_any()
            throws TypeMismatch,
                   InvalidValue

Извлекает значение Any, содержащееся в Any, представленное этим DynAny, и возвращает его, обернутым в новый DynAny.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

get_val

Serializable get_val()
              throws TypeMismatch,
                     InvalidValue

Извлекает объект Serializable из этого DynAny. Тип IDL ValueBase сопоставляется с типом Java Serializable.

Исключения:
TypeMismatch - если доступный компонент в DynAny имеет тип, не эквивалентный запрошенному типу.
TypeMismatch - если вызов производится на DynAny, текущий компонент которого сам имеет компоненты
InvalidValue - если этот DynAny имеет компоненты, но текущая позиция равна -1

seek

boolean seek(int index)

Устанавливает текущую позицию в индекс. Текущая позиция индексируется от 0 до n-1, то есть индекс 0 соответствует первому компоненту. Операция возвращает true, если результирующая текущая позиция указывает на компонент DynAny, и false, если индекс указывает на позицию, которая не соответствует компоненту. Вызов seek с отрицательным индексом является законным. Он устанавливает текущую позицию в -1, чтобы указать на отсутствие компонента, и возвращает false. Передача ненулевого индекса для DynAny, у которого нет компонента в соответствующей позиции, устанавливает текущую позицию в -1 и возвращает false.

rewind

void rewind()

Эквивалентно seek(0).

next

boolean next()

Перемещает текущую позицию к следующему компоненту. Операция возвращает true, пока результирующая текущая позиция указывает на компонент, в противном случае — false. Значение false оставляет текущую позицию на -1. Вызов next на DynAny без компонентов оставляет текущую позицию на -1 и возвращает false.

component_count

int component_count()

Возвращает количество компонентов DynAny. Для DynAny без компонентов возвращается ноль. Операция учитывает только компоненты на верхнем уровне. Например, если component_count вызывается на DynStruct с одним членом, значение возврата будет 1, независимо от типа члена.

  • Для последовательностей операция возвращает текущее число элементов.
  • Для структур, исключений и типов значений операция возвращает количество членов.
  • Для массивов операция возвращает количество элементов.
  • Для объединений операция возвращает 2, если дискриминатор указывает, что активен именованный член, иначе возвращает 1.
  • Для DynFixed и DynEnum операция возвращает ноль.

current_component

DynAny current_component()
                  throws TypeMismatch

Возвращает DynAny для компонента в текущей позиции. Он не перемещает текущую позицию, поэтому повторные вызовы current_component без промежуточного вызова rewind, next или seek возвращают тот же компонент. Возвращаемая ссылка на объект DynAny может использоваться для получения/установки значения текущего компонента. Если текущий компонент представляет собой сложный тип, возвращённую ссылку можно сузить на основе TypeCode, чтобы получить интерфейс, соответствующий сложному типу. Вызов current_component на DynAny, который не может иметь компоненты, например, DynEnum или пустое исключение, вызывает TypeMismatch. Вызов current_component на DynAny, текущая позиция которого -1, возвращает ссылку nil. Операции итерации вместе с current_component могут использоваться для динамического составления значения any. После создания динамического any, например, DynStruct, current_component и next могут использоваться для инициализации всех компонентов значения. После того, как динамическое значение будет полностью инициализировано, to_any создаёт соответствующее значение any.

Исключения:
TypeMismatch - Если вызвано на DynAny, который не может иметь компоненты, например, DynEnum или пустое исключение

© 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