Spec-Zone .ru
спецификации, руководства, описания, API
|
Файлы, которые сгенерированы компилятором IDL к Java, в соответствии со
На общие имена IDL и идентификаторы отображаются на имена Java и идентификаторы без изменения. Из-за природы языка Java единственная конструкция IDL может быть отображена на несколько (по-другому названный) конструкции Java. Дополнительные имена создаются, добавляя дескриптивный суффикс. Например, интерфейс IDL, foo отображается на Java, соединяет интерфейсом с foo и fooOperations, и дополнительными классами Java fooHelper, fooHolder, fooPOA, и дополнительно fooPOATie.
Отображение в действительности резервирует использование нескольких имен в его собственных целях. Они:
Предоставление файлов помощника несколько статических методов должно было управлять типом. Они включают Any, вставляют и извлекают операции для типа, получая идентификатор репозитария, получая typecode, и читая и пишущий тип от и до потока.
Помощник class для отображенного интерфейса IDL или абстрактного интерфейса также включает узкую работу (ы). Статический узкий метод позволяет org.omg.CORBA.Object быть суженным к ссылке на объект более определенного типа. CORBA::BAD_PARAM исключения IDL бросается, если узкие сбои, потому что ссылка на объект не поддерживает требуемый тип. Различное системное исключение повышается, чтобы указать на другие виды ошибок. Попытка сузить нуль будет всегда успешно выполняться с возвращаемым значением нуля.
Поддержка и режимы передачи параметра, являющегося одновременно входным и выходным требует использования дополнительных классов держателя. Эти классы доступны для всех основных типов данных IDL в пакете org.omg.CORBA и сгенерированы для всех именованных определяемых пользователем типов IDL кроме определенных определениями типов. (Отметьте, что в этом определяемом пользователем контексте включает типы, которые определяются в спецификациях OMG, таких как те для Репозитария Интерфейса, и других служб OMG.)
Каждый держатель class имеет конструктора от экземпляра, конструктора по умолчанию, и имеет общедоступного члена экземпляра, value, который является введенным значением. Конструктор по умолчанию устанавливает поле значения в значение по умолчанию для типа как определено языком Java: ложь для булева, 0 для числового и типов случайной работы, нуля для строк, нуля для ссылок на объект.
Чтобы поддерживать переносимые тупики и скелеты, классы держателя также реализуют интерфейс org.omg.CORBA.portable.Streamable.
Файлы операций
Не абстрактный интерфейс IDL отображается на два общедоступных интерфейса Java: интерфейс подписи и интерфейс операций. Интерфейс подписи, который расширяет IDLEntity, имеет то же самое имя как имя интерфейса IDL и используется, как подпись вводит объявления метода, когда интерфейсы указанного типа используются в других интерфейсах. Интерфейс операций имеет то же самое имя как интерфейс IDL с суффиксным Operations, добавленным до конца, и используется в серверном отображении и как механизм для того, чтобы обеспечить оптимизированные призывы к соотнесенному клиенту и серверам.
Интерфейс операций Java содержит отображенные подписи работы. Интерфейс подписи Java расширяет интерфейс операций, (отображенный) основной org.omg.CORBA.Object, так же как org.omg.portable.IDLEntity. Методы могут быть вызваны на интерфейс подписи. Наследование интерфейса, выраженное в IDL, отражается и в интерфейсе подписи Java и в иерархиях интерфейса операций.
Тупики
Для отображения необъектно-ориентированного языка будет интерфейс программирования к тупикам для каждого типа интерфейса. Обычно, тупики представят доступ к OMG определенные с помощью IDL операции на объекте в пути, который легок для программистов предсказать, как только они знакомы с IDL OMG и языком, отображающимся для определенного языка программирования. Тупики делают запросы к остальной части ШАРА, используя интерфейсы, которые являются частными к, и по-видимому оптимизированный для, определенное Ядро ШАРА. Если больше чем один ШАР доступен, могут быть различные тупики, соответствующие различным ШАРАМ. В этом случае необходимо для ШАРА и языка, отображающегося сотрудничать, чтобы связать корректные тупики с определенной ссылкой на объект.
Языки объектно-ориентированного программирования, такие как Java, C++, и Smalltalk, не требуют тупиковых интерфейсов.