public abstract class DynAnyHelper extends Object
Объект DynAny может быть просмотрен как упорядоченный набор компонента DynAnys. Для DynAnys, представляющего основной тип, такой столь же длинный, или тип без компонентов, таких как пустое исключение, упорядоченный набор компонентов пуст. Каждый объект DynAny поддерживает понятие текущей позиции в ее набор компонента DynAnys. Текущая позиция идентифицируется индексировать значением, которое работает от 0 до n-1, где n является числом компонентов. Специальное предложение индексирует значение-1, указывает на текущую позицию, которая не указывает нигде. Для значений, у которых не может быть текущей позиции (такой как пустое исключение), индексировать значение фиксируется в-1. Если DynAny инициализируется со значением, у которого есть компоненты, индексирование инициализируется к 0. После создания неинициализированного DynAny (то есть, DynAny, у которого нет никакого значения, но TypeCode, который разрешает компоненты), текущая позиция зависит от типа имеющего значение, представленного DynAny. (Текущая позиция устанавливается в 0 или-1, в зависимости от того, получает ли новый DynAny значения по умолчанию для своих компонентов.)
Итеративная перемотка операций, ищите, и затем может использоваться, чтобы изменить текущую позицию, и current_component работа возвращает компонент в текущей позиции. component_count работа возвращает число компонентов DynAny. Все вместе эти операции позволяют итерации по компонентам DynAny, например, (рекурсивно) исследовать свое содержание.
Созданный объект DynAny является объектом DynAny, связанным с созданным типом. Есть различный интерфейс, наследовавшийся от интерфейса DynAny, связанный с каждым видом созданных вводят IDL (фиксированный, перечисление, struct, последовательность, объединение, массив, исключение, и оцените тип).
Созданный объект DynAny экспортирует операции, которые включают созданию новых объектов DynAny, каждому из них связанный с компонентом созданного значения данных. Как пример, DynStruct связывается со значением struct. Это означает, что DynStruct может быть замечен как обладание упорядоченного набора компонентов, один для каждого элемента структуры. Объект DynStruct экспортирует операции, которые включают созданию новых объектов DynAny, каждому из них связанный с элементом struct.
Если объект DynAny был получен от другого (создал) объект DynAny, такой как DynAny, представляющий элемент структуры, который создавался из DynStruct, элемент DynAny логически содержится в DynStruct. Вызов вставки или получает листы работы неизменная текущая позиция. Уничтожая верхний уровень объект DynAny (тот, который не был получен как компонент другого DynAny) также уничтожает любой компонент объекты DynAny, полученные из него. Уничтожая неверхний уровень объект DynAny ничего не делает. Вызывая операции на уничтоженный верхний уровень DynAny или любой из его потомков повышают OBJECT_NOT_EXIST. Если программист хочет уничтожить объект DynAny, но все еще хочет управлять некоторым компонентом значения данных, связанного с этим, то он или она должен сначала создать DynAny для компонента и после этого, сделайте копию создаваемого объекта DynAny.
Поведение объектов DynAny было определено, чтобы включить эффективным реализациям с точки зрения выделенного пространства памяти и скорости доступа. Объекты DynAny предназначаются, чтобы использоваться для того, чтобы пересечь значения, извлеченные из anys или создать значения anys во времени выполнения. Их использование в других целях не рекомендуется.
Вставьте и доберитесь, операции необходимы, чтобы обработать основные объекты DynAny, но также полезны, чтобы обработать созданные объекты DynAny. Вставка значения типа исходных данных в созданный объект DynAny подразумевает инициализацию текущего компонента созданного значения данных, связанного с объектом DynAny. Например, вызов insert_boolean на DynStruct подразумевает вставку значения булевых данных в текущей позиции связанного struct значения данных. Тип является непротиворечивым для вставки или извлечения значения, если его TypeCode эквивалентен TypeCode, содержавшемуся в DynAny или, если у DynAny есть компоненты, эквивалентно TypeCode DynAny в текущей позиции.
DynAny и объекты DynAnyFactory предназначаются, чтобы быть локальными для процесса, в котором они создаются и используются. Это означает, что ссылки на объекты DynAny и DynAnyFactory не могут быть экспортированы в другие процессы, или воплощены с Шаром object_to_string (). Если какая-либо попытка будет предпринята, чтобы сделать так, то незаконная работа повысит УПОРЯДОЧИВАТЬ системное исключение. Так как их интерфейсы определяются в IDL, операции экспорта объектов DynAny, определенные в стандарте org.omg. Интерфейс CORBA.Object. Однако, любая попытка вызвать операции, экспортируемые через Интерфейс объекта, может повысить стандартное исключение NO_IMPLEMENT. Попытка использовать объект DynAny с DII может повысить исключение NO_IMPLEMENT.
Конструктор и Описание |
---|
DynAnyHelper() |
Модификатор и Тип | Метод и Описание |
---|---|
static DynAny |
extract(Any a) |
static String |
id() |
static void |
insert(Any a, DynAny that) |
static DynAny |
narrow(Object obj) |
static DynAny |
read(InputStream istream) |
static TypeCode |
type() |
static DynAny |
unchecked_narrow(Object obj) |
static void |
write(OutputStream ostream, DynAny value) |
public static TypeCode type()
public static String id()
public static DynAny read(InputStream istream)
public static void write(OutputStream ostream, DynAny value)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92