ЗНАЙ ИНТУИТ, Лекция, Технология CORBA
Обвързване с IDL
Спецификация CORBA регулира в какво трябва да се превърне всеки елемент от езика IDL в процеса на превеждането му в изходни текстове на език за програмиране на високо ниво. Версия 2.2 на спецификацията CORBA планира подобни кореспонденции за C, C++, Smalltalk, Cobol, Ada и Java.Например, нека разгледаме по-отблизо излъчването в Java.
Коментари
Коментари IDL не се отразяват по никакъв начин върху генерираните Java код.
Резултатите от различни компилатори могат да варират. Тук става дума главно за добавяне на долни черти пред генерираните имена. Тъй като излъчването зависи от какъв вид езиков елемент IDL се обработва и броят на файловете, получени по време на процеса на генериране, е различен. За персонализирани типове например ще бъдат създадени специални файлове, чиито имена завършват със суфикси Помощник и Притежател.По спецификация компилаторът запазва следните имена:
Помощник, където е името на персонализирания тип;
Holder, където е името на потребителския тип;
Holder, където е един от примитивните видове език Java;
Package, където е името на интерфейса IDL .
Помощни класове
Ако програмистът описва собствените си типове, в резултат на техния превод се появяват два помощни класа, чиито имена се състоят от името на типа с добавяне на суфиксите Helper и Holder. Те са необходими за коректна работа с обекти. Helper съдържа набор от статични методи, които извършват същите рутинни действия. Клас с суфикса Holder действа като "обвивка" за персонализиран тип, когато трябва да бъде предаден като параметри на операцията на обект. Неговото генериране не се случва във всички случаи.
Класът Helper винаги разполага със статични методи за четене и запис на данни в потока read () и write (), опаковане на данни във всеки тип и разопаковане (вмъкване () и извличане ()), както и методи за определяне на типа () и неговия идентификатор. в хранилището id () .
По време на превода описанията на модулите се преобразуват в пакети със същите имена като самите модули. Съответно, всички описания на типове в модулите след превод в класове и интерфейси Java са обхванати в рамките на генерирани пакети. Ако описанията на типове са извън модулите, те се превеждат в глобалния пакет Java,тоест те не са включени в нито един пакет. Нека да опишем следния модул като пример:
След нейния превод в изходната директория ще се появи поддиректория с името на модула и в нея ще се запазят файловете, които се появяват в резултат на генерирането на изходните текстове за UserType. И в самите тези текстове ще се появи ред, принадлежащ на пакета UserModule: