Spec-Zone.ru › OpenJDK 8

Пакет org.omg.CosNaming

Обеспечивает службу именования для Java IDL.

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

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

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

BindingIteratorOperations

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

NamingContext

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

NamingContextExt

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

NamingContextExtOperations

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

NamingContextOperations

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

Класс Описание
_BindingIteratorImplBase
_BindingIteratorStub

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

_NamingContextExtStub

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

_NamingContextImplBase
_NamingContextStub

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

Binding

org/omg/CosNaming/Binding.java .

BindingHelper

org/omg/CosNaming/BindingHelper.java .

BindingHolder

org/omg/CosNaming/BindingHolder.java .

BindingIteratorHelper

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

BindingIteratorHolder

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

BindingIteratorPOA

Интерфейс BindingIterator позволяет клиенту итерировать по связям, используя операции next_one или next_n.

BindingListHelper

Список связей.

BindingListHolder

Список связей.

BindingType

Указывает, относится ли данная связь к объекту (не являющемуся контекстом именования) или к контексту именования.

BindingTypeHelper

Указывает, относится ли данная связь к объекту (не являющемуся контекстом именования) или к контексту именования.

BindingTypeHolder

Указывает, относится ли данная связь к объекту (не являющемуся контекстом именования) или к контексту именования.

IstringHelper

org/omg/CosNaming/IstringHelper.java .

NameComponent

org/omg/CosNaming/NameComponent.java .

NameComponentHelper

org/omg/CosNaming/NameComponentHelper.java .

NameComponentHolder

org/omg/CosNaming/NameComponentHolder.java .

NameHelper

Имя — это последовательность компонентов имени.

NameHolder

Имя — это последовательность компонентов имени.

NamingContextExtHelper

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

NamingContextExtHolder

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

NamingContextExtPOA

NamingContextExt является расширением NamingContext, содержащим набор связей имен, в которых каждое имя уникально и является частью межплатформенной службы именования.

NamingContextHelper

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

NamingContextHolder

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

NamingContextPOA

Контекст именования — это объект, содержащий набор связей имен, в котором каждое имя уникально.

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

Предоставляет службу именования для Java IDL. Объектный запрос брокер демона (ORBD) также включает в себя службу именования как транзиентного, так и постоянного типа.

Пакет и все его классы и интерфейсы были сгенерированы с помощью инструмента idlj по файлу nameservice.idl, который является модулем, написанным на OMG IDL.

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

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

Интерфейсы

Пакет org.omg.CosNaming содержит два публичных интерфейса и несколько вспомогательных классов.

Интерфейсы следующие:

  • NamingContext
  • BindingIterator

Эти два интерфейса предоставляют средства для связывания/развязывания имен и ссылок на объекты, для получения связанных ссылок на объекты и для итерации по списку связей. Интерфейс NamingContext предоставляет основную функциональность службы именования, а интерфейс BindingIterator предоставляет способ итерации по списку связей имя/ссылка на объект.

Вспомогательные классы

Для сопоставления интерфейса OMG IDL с языком программирования Java компилятор idlj создаёт Java-классы, которые можно рассматривать как вспомогательные классы. Комментарии к сгенерированным вспомогательным классам, используемым интерфейсами NamingContext и BindingIterator, включены здесь.

Классы, используемые NamingContext и BindingIterator

Ниже приведены классы, используемые службой именования. (Вспомогательные и holder-классы, которые генерируются для каждого из перечисленных здесь классов, обсуждаются ниже.)
  • public final class NameComponent — строительный блок для имён. (Имена связаны со ссылками на объекты в контексте именования.)

    Имя представляет собой массив из одного или более NameComponent объектов. Имя с одним NameComponent называется простым именем; имя с несколькими NameComponent объектами называется составным именем.

    NameComponent объект состоит из двух полей:

    1. id — String используемый в качестве идентификатора
    2. kind — String, который может использоваться для любых описательных целей. Его важность заключается в том, что он может использоваться для описания объекта без влияния на синтаксис. Например, язык программирования C использует синтаксическую соглашение добавления расширения ".c" к имени файла для обозначения того, что это файл исходного кода. В NameComponent объекте поле kind может использоваться для описания типа объекта, а не расширения файла или какой-либо другой синтаксической соглашения. Примеры значений поля kind включают строки "c_source", "object_code", "executable", "postscript", и "". Не является необычным, если поле kind пустая строка.

    В имени каждый NameComponent объект, кроме последнего, обозначает NamingContext объект; последний NameComponent объект обозначает связанную ссылку на объект. Это похоже на имя пути, в котором последнее имя — имя файла, а все имена перед ним — имена каталогов.

  • public final class Binding — объект, который связывает имя с ссылкой на объект или контекстом именования. Объект Binding имеет два поля:
    1. binding_name - массив из одного или более NameComponent объектов, представляющий связанное имя
    2. binding_type - BindingType объект, указывающий, является ли связь между именем и ссылкой на объект или между именем и контекстом именования

    Интерфейс NamingContext имеет методы для связывания/развязывания имён со ссылками на объекты или контекстами именования, для перечисления связей и для разрешения связей (при заданном имени метод resolve возвращает связанную с ним ссылку на объект).

  • public final class BindingType — объект, определяющий, является ли данный Binding объект связью между именем и ссылкой на объект (то есть, не является контекстом именования) или между именем и контекстом именования.

    Класс BindingType состоит из двух методов и четырёх констант. Две из этих констант являются BindingType объектами, а две — int.

    BindingType объекты могут быть переданы в конструктор класса Binding или использованы в качестве параметров или возвращаемых значений. Эти BindingType объекты:

    • public static final BindingType nobject — для указания того, что связь осуществляется с ссылкой на объект
    • public static final BindingType ncontext — для указания того, что связь осуществляется с контекстом именования

    int константы могут быть переданы в метод from_int для создания BindingType объектов, или они могут быть возвращаемыми значениями для метода value. Эти константы:

    • public static final int _nobject
    • public static final int _ncontext
    Если методу from_int передано значение, отличное от _nobject или _ncontext, он выбросит исключение org.omg.CORBA.BAD_PARAM.

    Использование:

    BindingType btObject = from_int(_nobject);
           BindingType btContext = from_int(_ncontext);
    Переменная btObject ссылается на объект BindingType, инициализированный для представления связи с ссылкой на объект. Переменная btContext ссылается на объект BindingType , инициализированный для представления связи с объектом NamingContex.

    Метод value возвращает либо _nobject , либо _ncontext, поэтому в следующей строке кода переменная bt будет содержать _nobject или _ncontext:

    int bt = BindingType.value();

Классы-держатели

OMG IDL использует параметры OUT и INOUT для возвращения значений из операций. Сопоставление с языком программирования Java, в котором нет параметров OUT и INOUT, создаёт специальный класс для каждого типа, называемый классом-держателем. Экземпляр класса-держателя можно передать в метод Java в качестве параметра, и значение можно присвоить его полю value. Это позволяет ему выполнять функцию параметра OUT или INOUT.

Для пакета org.omg.CosNaming сгенерированы следующие классы-держатели:

  • NamingContextHolder
  • BindingIteratorHolder
  • BindingHolder
  • BindingListHolder
  • BindingTypeHolder
  • NameComponentHolder
  • NameHolder

Обратите внимание, что в пакете org.omg.CORBA существует класс-держатель для каждого из основных типов Java: IntHolder, ShortHolder, StringHolder, и так далее.

Обратите также внимание, что существует класс NameHolder, хотя нет класса Name; аналогично, есть класс BindingListHolder, хотя нет класса BindingList. Это верно, потому что в интерфейсе OMG IDL Name и BindingList являются typedef. Нет сопоставления от IDL typedef к конструкции Java, но классы-держатели генерируются, если typedef относится к последовательности или массиву. В соответствии с языком программирования Java, Name является массивом из NameComponent объектов, а BindingList — массивом из Binding объектов. Все классы-держатели имеют как минимум два конструктора и одно поле:

  • поле value — экземпляр типа, используемого в качестве параметра OUT или INOUT. Например, поле value объекта NamingContextHolder будет объектом NamingContext.
  • конструктор по умолчанию — конструктор, который создаёт новый объект-держатель, инициализированный значением по умолчанию для типа. Например, новый объект BindingHolder, созданный с помощью конструктора по умолчанию, будет иметь своё поле value установленным в значение null, так как это значение по умолчанию для объекта. Другие значения по умолчанию: false для boolean, 0 для числовых и символьных типов и null для ссылок на объекты.
  • конструктор из экземпляра — конструктор, который создаёт новый объект-держатель, поле value которого инициализируется переданным экземпляром

Класс-держатель для пользовательского типа (класса Java) имеет ещё три метода, но разработчики приложений не используют их напрямую.

Вспомогательные классы

Вспомогательные классы, сгенерированные для всех пользовательских типов в OMG IDL-интерфейсе, предоставляют статические методы для работы с этими типами.

Только один метод в классе-помощнике используется программистом приложения: метод narrow. Только Java-интерфейсы, сопоставленные с IDL-интерфейсами, будут иметь класс-помощник, содержащий метод narrow, поэтому в пакете CosNaming только классы NamingContextHelper и BindingIteratorHelper имеют метод narrow.

  • public static NamingContext narrow(org.omg.CORBA.Object obj) — преобразует данный объект CORBA в объект NamingContext
  • public static BindingIterator narrow(org.omg.CORBA.Object obj) — преобразует данный объект CORBA в объект BindingIterator

Пакет org.omg.CosNaming.NamingContextPackage

Этот пакет предоставляет классы-помощники и классы-держатели для исключений, используемых в пакете org.omg.CosNaming, а также для класса NotFoundReason, который предоставляет причину исключения NotFound.

Существуют классы-помощники и классы-держатели для следующих исключений:

  • AlreadyBound
  • CannotProceed
  • InvalidName
  • NotEmpty
  • NotFound

Совместимость службы именования

Реализация Sun пакета CosNaming соответствует спецификации OMG COSNaming. Другими словами, API в службе именования Sun реализованы в соответствии с рекомендациями для службы именования, предоставленными OMG. Следовательно, если сторонний поставщик реализовал службу именования, которая соответствует OMG, то возможно переключение между реализацией службы именования Sun CosNaming и реализацией стороннего поставщика. Однако важно понимать, что могут быть небольшие различия в способе реализации службы именования разными поставщиками, например, различия в строках исключений.

Инструкции по использованию службы именования стороннего поставщика

Хотя мы рекомендуем использовать ORB и услуги ORB от одного поставщика, возможно подключение реализации службы именования COSNaming стороннего поставщика к ORB Sun RMI-IIOP. Вот шаги, которые необходимо выполнить:
  1. Создайте файл свойств для сервера Bootstrap и добавьте в него две записи. Например, вы можете назвать этот файл /tmp/services и поместить в него следующее: NameService, <Stringified IOR of the Root Naming Context>.

    Это связывает NameService с корневым контекстом именования реализации CosNaming, которую вы хотите использовать.

  2. Запустите автономный сервер Bootstrap, используя следующую команду:
    java -classpath $(CLASSPATH)
          com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile
          "/tmp/services" [-ORBInitialPort port]

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

Теперь, когда приложение вызывает метод org.omg.CORBA.ORB.resolve_initial_references, процессы CORBA будут обращаться к серверу Bootstrap, чтобы получить корневой контекст именования.

С момента:
JDK1.3

© 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