См.: Описание
Интерфейс | Описание |
---|---|
ARG_IN |
Показывает "входной" параметр вызову, означая, что параметр передают от клиента к серверу.
|
ARG_INOUT |
Показывает параметр, используемый для обоих вводов и выводов в вызове, означая, что параметр передают от клиента к серверу и затем назад от сервера до клиента.
|
ARG_OUT |
Константа, которая показывает "выходной" параметр вызову, означая, что параметр передают от сервера до клиента.
|
BAD_POLICY |
PolicyErrorCode, который был бы заполнен в исключении PolicyError.
|
BAD_POLICY_TYPE |
PolicyErrorCode, который был бы заполнен в исключении PolicyError.
|
BAD_POLICY_VALUE |
Содержит значение, используемое, чтобы указать на значение политики, которое является неправильным для допустимой политики, вводят звонок
create_policy метод, определенный в ШАРЕ class. |
CTX_RESTRICT_SCOPE |
Флаг, который может использоваться в качестве второго параметра к методу
Context.get_values ограничить контекст поиска. |
Ток |
Интерфейсы, полученные из интерфейса Current, позволяют ШАРУ и службам CORBA обеспечить доступ к информации (контекст), связанный с потоком выполнения, в котором они работают.
|
CurrentOperations |
Интерфейс для Current.
|
CustomMarshal |
Абстрактный тип значения, который предназначается, чтобы использоваться ШАРОМ, не пользователем.
|
DataInputStream |
Определяет методы, используемые, чтобы считать примитивные типы данных из входных потоков для того, чтобы неупорядочить пользовательские типы значения.
|
DataOutputStream |
Определяет методы, используемые, чтобы записать примитивные типы данных в потоки вывода для того, чтобы упорядочить пользовательские типы значения.
|
DomainManager |
Обеспечивает механизмы для установления и навигации по отношениям к превосходящим и зависимым доменам, так же как для создания и доступа к политикам.
|
DomainManagerOperations |
Предоставляет DomainManager средства получить доступ к политикам.
|
DynAny | Осуждаемый Используйте новый DynAny вместо этого
|
DynArray | Осуждаемый Используйте новый DynArray вместо этого
|
DynEnum | Осуждаемый Используйте новый DynEnum вместо этого
|
DynFixed | Осуждаемый Используйте новый DynFixed вместо этого
|
DynSequence | Осуждаемый Используйте новый DynSequence вместо этого
|
DynStruct | Осуждаемый Используйте новый DynStruct вместо этого
|
DynUnion | Осуждаемый Используйте новый DynUnion вместо этого
|
DynValue | Осуждаемый Используйте новый DynValue вместо этого
|
IDLType |
Абстрактный интерфейс, наследованный всем Репозитарием Интерфейса (IR) объекты, которые представляют типы IDL OMG.
|
IDLTypeOperations |
Этот интерфейс должен быть реализован всеми объектами IDLType.
|
IRObject |
Интерфейс IDL IRObject представляет самый универсальный интерфейс, из которого все другие интерфейсы Репозитария Интерфейса получаются, даже Репозитарий непосредственно.
|
IRObjectOperations |
Это - интерфейс Операций для отображения от IRObject.
|
Объект |
Определение для ссылки на объект CORBA.
|
OMGVMCID |
Поставщик незначительный ID кода зарезервирован для OMG.
|
Политика |
Интерфейсы, полученные из интерфейса Policy, позволяют ШАР или доступ службы CORBA к определенным вариантам, которые влияют на его работу.
|
PolicyOperations |
Обеспечивает операции для a
Policy объект. |
PRIVATE_MEMBER |
Постоянный, чтобы определить члена парламента, не занимающего официального поста в
ValueMember class. |
PUBLIC_MEMBER |
Постоянный, чтобы определить общедоступный элемент в
ValueMember class. |
UNSUPPORTED_POLICY |
Один из PolicyErrorCode s, который был бы заполнен, если требуемый Policy, как понимают, допустим ШАРОМ, но в настоящий момент не поддерживается.
|
UNSUPPORTED_POLICY_VALUE |
PolicyErrorCode, который был бы заполнен, если значение, которое требуют на Policy, имеет допустимый тип и в пределах допустимого диапазона для того типа, но этого допустимого значения, в настоящий момент не поддерживается.
|
VM_ABSTRACT |
Определяет код, используемый, чтобы представить Абстрактный интерфейс в typecode.
|
VM_CUSTOM |
Определяет код, используемый, чтобы представить пользовательское упорядоченное значение, вводят typecode.
|
VM_NONE |
Определяет код, используемый, чтобы представить то из значений значения, вводят typecode.
|
VM_TRUNCATABLE |
Определяет код, используемый, чтобы представить значение truncatable, вводят typecode.
|
Класс | Описание |
---|---|
_IDLTypeStub |
Тупик для IDLType.
|
_PolicyStub |
Тупик для Policy.
|
Любой |
Служит контейнером для любых данных, которые могут быть описаны в IDL или для любого типа примитива IDL.
|
AnyHolder |
Держатель для Any.
|
AnySeqHelper |
Помощник для AnySeq.
|
AnySeqHolder |
Держатель для AnySeq.
|
BooleanHolder |
Держатель для Boolean.
|
BooleanSeqHelper |
Помощник для BooleanSeq.
|
BooleanSeqHolder |
Держатель для BooleanSeq.
|
ByteHolder |
Держатель для Byte.
|
CharHolder |
Держатель для Char.
|
CharSeqHelper |
Помощник для CharSeq.
|
CharSeqHolder |
Держатель для CharSeq.
|
CompletionStatus |
Объект, который указывает, завершил ли метод выполнение когда a
SystemException был брошен. |
CompletionStatusHelper |
Помощник для CompletionStatus.
|
Контекст |
Объект, используемый в
Request операции, чтобы определить объект контекста, в котором строки контекста должны быть разрешены прежде, чем быть отправленным наряду с вызовом запроса. |
ContextList |
Объект, содержащий поддающийся изменению список
String объекты, которые представляют имена свойства. |
CurrentHelper |
Помощник для Current.
|
CurrentHolder |
Держатель для Current.
|
DefinitionKind |
class, который обеспечивает константы, используемые, чтобы идентифицировать тип Объекта репозитария Интерфейса.
|
DefinitionKindHelper |
Помощник для DefinitionKind.
|
DoubleHolder |
Держатель для Double.
|
DoubleSeqHelper |
Помощник для DoubleSeq.
|
DoubleSeqHolder |
Держатель для DoubleSeq.
|
DynamicImplementation | Осуждаемый org.omg. CORBA.DynamicImplementation
|
Среда |
Контейнер (держатель) для исключения, которое используется в
Request операции, чтобы сделать исключения, доступные для клиента. |
ExceptionList |
Объект, используемый в
Request операции, чтобы описать исключения, которые могут быть выданы методом. |
FieldNameHelper |
Помощник для FieldName.
|
FixedHolder |
Держатель для Fixed.
|
FloatHolder |
Держатель для Float.
|
FloatSeqHelper |
Помощник для FloatSeq.
|
FloatSeqHolder |
Держатель для FloatSeq.
|
IdentifierHelper |
Помощник для Identifier.
|
IDLTypeHelper |
Помощник для IDLType.
|
IntHolder |
Держатель для Int.
|
LocalObject |
Используемый в качестве основного class для реализации локального IDL взаимодействуют через интерфейс в отображении языка Java.
|
LongHolder |
Держатель для Long.
|
LongLongSeqHelper |
Помощник для LongLongSeq.
|
LongLongSeqHolder |
Держатель для LongLongSeq.
|
LongSeqHelper |
Помощник для LongSeqHelper.
|
LongSeqHolder |
Держатель для LongSeq.
|
NamedValue |
Объект, используемый в DII и DSI, чтобы описать параметры и возвращаемые значения.
|
NameValuePair |
Связывает имя со значением, которое является атрибутом IDL struct, и используется в API DynStruct.
|
NameValuePairHelper |
Помощник для NameValuePair.
|
NVList |
Поддающийся изменению список, содержащий
NamedValue объекты. |
ObjectHelper | |
ObjectHolder |
Держатель для Object.
|
OctetSeqHelper |
Помощник для OctetSeq.
|
OctetSeqHolder |
Держатель для OctetSeq.
|
ШАР |
class, обеспечивающий API для функций Посредника запросов к объектам CORBA.
|
ParameterMode |
Перечисление режимов параметра для Параметра.
|
ParameterModeHelper |
Перечисление режимов параметра для Параметра.
|
ParameterModeHolder |
Перечисление режимов параметра для Параметра.
|
PolicyErrorCodeHelper |
Инкапсулирует причину, Политика может быть недопустимой.
|
PolicyErrorHelper |
Брошенный, чтобы указать на проблемы со значениями параметра, которые передают к
ORB.create_policy работа. |
PolicyErrorHolder |
Брошенный, чтобы указать на проблемы со значениями параметра, которые передают к
ORB.create_policy работа. |
PolicyHelper |
Помощник для Policy.
|
PolicyHolder |
Держатель для Policy.
|
PolicyListHelper |
Помощник для PolicyList.
|
PolicyListHolder |
Держатель для PolicyList.
|
PolicyTypeHelper |
Помощник для PolicyType.
|
Принципал | Осуждаемый Осуждаемый CORBA 2.2.
|
PrincipalHolder | Осуждаемый Осуждаемый CORBA 2.2.
|
RepositoryIdHelper |
Помощник для RepositoryId.
|
Запрос |
Объект, содержащий информацию, необходимую для того, чтобы вызвать метод.
|
ServerRequest |
Объект, который получает явное состояние запроса на Динамический Скелетный Интерфейс (DSI).
|
ServiceDetail |
Объект, который представляет службу ШАРА:
service_detail_type поле содержит тип службы ШАРА, и service_detail поле содержит описание службы ШАРА. |
ServiceDetailHelper | |
ServiceInformation |
IDL struct в модуле CORBA, который хранит информацию о службе CORBA, доступной в реализации ШАРА, и получается из метода ORB.get_service_information.
|
ServiceInformationHelper | |
ServiceInformationHolder |
Держатель для ServiceInformation.
|
SetOverrideType |
Отображение CORBA
enum тегирование SET_OVERRIDE и ADD_OVERRIDE , которые указывают, должны ли политики заменить существующие политики Object или быть добавленным к ним. |
SetOverrideTypeHelper |
Помощник для SetOverrideType.
|
ShortHolder |
Держатель для Short.
|
ShortSeqHelper |
Помощник для ShortSeqHelper.
|
ShortSeqHolder |
Держатель для ShortSeq.
|
StringHolder |
Держатель для String.
|
StringSeqHelper |
Массив Строк
|
StringSeqHolder |
Массив Строк
|
StringValueHelper |
Помощник для StringValue.
|
StructMember |
Описывает элемент IDL
struct в Репозитарии Интерфейса, включая имя struct элемент, тип struct элемент, и определение типа, которое представляет тип IDL struct элемент, описанный struct задействованный объект. |
StructMemberHelper |
Помощник для StructMember.
|
TCKind |
Отображение Java перечисления IDL
TCKind , который определяет вид a TypeCode объект. |
TypeCode |
Контейнер для информации об определенном типе данных CORBA.
|
TypeCodeHolder |
Держатель для TypeCode.
|
ULongLongSeqHelper |
Помощник для ULongLongSeq.
|
ULongLongSeqHolder |
Держатель для ULongLongSeq.
|
ULongSeqHelper |
Помощник для ULongSeq.
|
ULongSeqHolder |
Держатель для ULongSeq.
|
UnionMember |
Описание в Репозитарии Интерфейса элемента объединения IDL.
|
UnionMemberHelper |
Помощник для UnionMember.
|
UnknownUserExceptionHelper |
Помощник для UnknownUserException.
|
UnknownUserExceptionHolder |
Держатель для UnknownUserException.
|
UShortSeqHelper |
Помощник для UShortSeq.
|
UShortSeqHolder |
Держатель для UShortSeq.
|
ValueBaseHelper | |
ValueBaseHolder |
Держатель для ValueBase.
|
ValueMember |
Описание в Репозитарии Интерфейса элемента a
value объект. |
ValueMemberHelper |
Помощник для ValueMember.
|
VersionSpecHelper |
Помощник для VersionSpec.
|
VisibilityHelper |
Помощник для Visibility.
|
WCharSeqHelper |
Помощник для WCharSeq.
|
WCharSeqHolder |
Держатель для WCharSeq.
|
WrongTransactionHelper |
Помощник для WrongTransaction.
|
WrongTransactionHolder |
Держатель для WrongTransaction.
|
WStringSeqHelper |
Массив WStrings
|
WStringSeqHolder |
Массив WStrings
|
WStringValueHelper |
org/omg/CORBA/WStringValueHelper.java, Сгенерированный (переносимым) компилятором IDL к Java, версия "3.0" от orb.idl 31 мая 1999 час 22:27:30 GMT+00:00, определение class было изменено, чтобы соответствовать следующим спецификациям OMG: ядро ШАРА столь же определенное CORBA 2.3.1
|
Исключение | Описание |
---|---|
ACTIVITY_COMPLETED |
ACTIVITY_COMPLETED системное исключение может быть повышено на любом методе, для которого получают доступ к контексту Действия. |
ACTIVITY_REQUIRED |
ACTIVITY_REQUIRED системное исключение может быть повышено на любом методе, для которого требуется контекст Действия. |
BAD_CONTEXT |
Исключение, выданное, когда работа вызывается клиентом, но переданным контекстом, не содержит значения контекста, требуемые работой.
|
BAD_INV_ORDER |
Это исключение указывает, что вызывающая сторона вызвала операции в неправильном порядке.
|
BAD_OPERATION |
Исключение, выданное, когда ссылка на объект обозначает существующий объект, но что объект не поддерживает работу, которая была вызвана.
|
BAD_PARAM |
Исключение, выданное, когда параметр, который передают к вызову, испытывает недостаток диапазона или иначе рассмотренный недопустимым.
|
BAD_QOS |
BAD_QOS исключение повышается всякий раз, когда объект не может поддерживать качество службы, требуемой параметром вызова, у которого есть качество семантики службы, связанной с этим. |
BAD_TYPECODE |
Исключение, выданное, когда ШАР встретился с уродливым кодом типа (например, кодом типа с недопустимым значением TCKind).
|
Границы |
Пользовательское исключение, выданное, когда параметр не в пределах юридических границ для объекта, к которому метод пытается получить доступ.
|
CODESET_INCOMPATIBLE |
Это исключение повышается всякий раз, когда значимая передача не возможна между наборами собственного кода клиента и сервера.
|
COMM_FAILURE |
Это исключение повышается, если передача теряется, в то время как работа происходит, после того, как запрос был отправлен клиентом, но прежде, чем ответ от сервера был возвращен клиенту.
|
DATA_CONVERSION |
Это исключение повышается, если ШАР не может преобразовать представление данных как упорядочено в его собственное представление или наоборот.
|
FREE_MEM |
Исключение, выданное, когда ШАР, отказавший в попытке освободить динамическую память, например из-за повреждения "кучи" или заблокированных сегментов памяти.
|
IMP_LIMIT |
Это исключение указывает, что предел реализации был превышен во время выполнения ШАРА.
|
ИНИЦИАЛИЗИРОВАТЬ |
Исключение, выданное, когда ШАР встретился с отказом во время своей инициализации, такой как отказ получить объединяющиеся в сеть ресурсы или обнаружение ошибки конфигурации.
|
ВНУТРЕННИЙ |
Это исключение указывает на внутренний отказ в ШАРЕ, например, если ШАР обнаружил повреждение своих внутренних структур данных.
|
INTF_REPOS |
Исключение, повышенное, когда ШАР не может достигнуть репозитария интерфейса, или некоторого другого отказа, касающегося репозитария интерфейса, обнаруживается.
|
INV_FLAG |
Исключение, выданное, когда недопустимый флаг передали к работе (например, создавая запрос DII).
|
INV_IDENT |
Это исключение указывает, что идентификатор IDL синтаксически недопустим.
|
INV_OBJREF |
Это исключение указывает, что ссылка на объект внутренне уродлива.
|
INV_POLICY |
Стандартное исключение, выданное, когда вызов не может быть сделан из-за несовместимости между переопределениями Policy, которые применяются к определенному вызову.
|
INVALID_ACTIVITY |
INVALID_ACTIVITY системное исключение может быть повышено на методах резюме служб Действия или Транзакции, если транзакция или Действие возобновляются в контексте, отличающемся от этого, от которого это было приостановлено. |
INVALID_TRANSACTION |
Исключение, выданное, когда запрос, который переносят недопустимый контекст транзакции.
|
УПОРЯДОЧИТЬ |
Запрос или ответ от сети структурно недопустимы.
|
NO_IMPLEMENT |
Это исключение указывает, что даже при том, что работа, которая была вызвана, существует (у этого есть определение IDL), никакая реализация для той работы не существует.
|
NO_MEMORY |
Исключение, выданное, когда время выполнения ШАРА исчерпало память.
|
NO_PERMISSION |
Исключение, выданное, когда вызов перестал работать, потому что у вызывающей стороны есть недостаточные полномочия.
|
NO_RESOURCES |
Исключение, выданное, когда ШАР встретился с некоторым общим ограничением ресурса.
|
NO_RESPONSE |
Это исключение повышается, если клиент пытается получить результат задержанного синхронного вызова, но ответ для запроса еще не доступен.
|
OBJ_ADAPTER |
Это исключение обычно указывает на административное несоответствие, например, сервер, возможно, предпринял попытку зарегистрировать себя в репозитарии реализации под именем, которое уже находится в использовании, или неизвестно репозитарию.
|
OBJECT_NOT_EXIST |
Исключение, повышенное всякий раз, когда вызов на удаленном объекте выполнялся.
|
PERSIST_STORE |
Это исключение указывает на персистентный отказ хранения, например, отказ установить соединение с базой данных или повреждение базы данных.
|
PolicyError |
Пользовательское исключение, выданное, когда ошибка политики происходит.
|
СНОВА ПЕРЕПЛЕСТИ |
REBIND повышается, когда текущий эффективный RebindPolicy, имеет значение NO_REBIND или NO_RECONNECT, и вызов на связанной ссылке на объект приводит к сообщению LocateReply с состоянием OBJECT_FORWARD или ответное сообщение с состоянием LOCATION_FORWARD. |
SystemException |
Корневой class для всех стандартных исключений CORBA.
|
ТАЙМ-АУТ |
TIMEOUT повышается, когда никакая поставка не была сделана, и период требуемого-времени-к-живому был превышен. |
TRANSACTION_MODE |
CORBA
TRANSACTION_MODE исключение выдается клиентским ШАРОМ, если это обнаруживает несоответствие между InvocationPolicy в IOR и выбранным путем вызова (то есть, прямой или направленный вызов). |
TRANSACTION_REQUIRED |
Исключение указывает, что запрос, который переносят нулевой контекст транзакции, но активная транзакция, требуется.
|
TRANSACTION_ROLLEDBACK |
Исключение, выданное, когда транзакция, связанная с запросом, уже откатывалась или отмечена, чтобы откатывать.
|
TRANSACTION_UNAVAILABLE |
CORBA
TRANSACTION_UNAVAILABLE исключение выдается ШАРОМ, когда это не может обработать контекст службы транзакции, потому что его соединение со Службой Транзакции было неправильно завершено. |
ПЕРЕХОДНЫЙ ПРОЦЕСС |
Исключение, выданное, когда ШАР, предпринятый, чтобы достигнуть объекта и отказавший.
|
НЕИЗВЕСТНЫЙ |
Это исключение повышается, если реализация работы выдает non-CORBA исключение (такое как исключение, определенное для языка программирования реализации), или если работа повышает пользовательское исключение, которое не появляется в выражении повышений работы.
|
UnknownUserException |
class, который содержит пользовательские исключения, возвращенные сервером.
|
UserException |
Корневой class для CORBA определенные с помощью IDL пользовательские исключения.
|
WrongTransaction |
CORBA
WrongTransaction определяемое пользователем исключение. |
Для точного списка поддерживаемых разделов официальных спецификаций CORBA, которым Java [ТМ] подчиняется Платформа, Standard Edition 6, см. Официальные Спецификации для поддержки CORBA в Java [ТМ] SE 6.
Классы и интерфейсы, описанные в этом разделе, могут быть помещены в четыре группы: ORB classes, Исключения, классы Helper, и классы Holder.
ШАР обрабатывает (или брокеры) вызовы метода между клиентом и реализацией метода на сервере. Поскольку клиент и сервер может быть где угодно на сети, и потому что вызов и реализация могут быть записаны в различных языках программирования, ШАР делает большую работу негласно, чтобы выполнить эту передачу.
Большая часть того, что делает ШАР, абсолютно прозрачна пользователю, и главная часть пакета CORBA состоит из классов, используемых ШАРОМ негласно. Результат состоит в том, что большинство программистов будет использовать только небольшую часть этого пакета непосредственно. Фактически, большинство программистов будет использовать только несколько методов от ORB class, некоторые исключения, и иногда, держатель class.
Прежде, чем приложение может ввести среду CORBA, оно должно сначала:
Следующие операции обеспечиваются, чтобы инициализировать приложения и получить соответствующие ссылки на объект:
Когда приложение требует среды CORBA, оно нуждается в механизме, чтобы получить ссылку на объект ШАРА и возможно ПОЛНУЮ ссылку на объект (такую как корневой POA). Это служит двум целям. Во-первых, это инициализирует приложение в ШАР и ПОЛНЫЕ среды. Во-вторых, это возвращает ссылку на объект ШАРА и ПОЛНУЮ ссылку на объект на приложение для использования в будущем ШАРЕ и ПОЛНЫХ операций.
Чтобы получить ссылку на объект ШАРА, приложения вызывают работу ORB.init. Параметры к вызову могут включить идентификатор для ШАРА, для которого ссылка на объект требуется, и arg_list, который используется, чтобы позволить специфичным для среды данным быть переданными в вызов.
Они - методы ORB, которые обеспечивают доступ к ШАРУ:
Используя метод init() без новичков параметров одноэлементный ШАР, который может только дать typecode созданию any s необходимый в коде, сгенерированном в классах Помощника idlj.
Приложения требуют переносимого средства, которым можно получить их начальные ссылки на объект. Ссылки требуются для корневого POA, Тока POA, Репозитария Интерфейса, и различных Объектных экземпляров Служб. Функциональность, требуемая приложением, подобна обеспеченному Службой Именования. Однако, OMG не хочет передавать под мандат это Служба Именования быть сделанным доступным для всех приложений, чтобы они могли быть портативно инициализированы. Следовательно, операции, показанные в этом разделе, обеспечивают упрощенную, локальную версию Службы Именования, которую приложения могут использовать, чтобы получить маленький, определенный набор ссылок на объект, которые важны для его работы. Поскольку только маленький четко определенный набор объектов ожидается с этим механизмом, контекст именования может быть сглажен, чтобы быть одноуровневым пространством имен. Это упрощение приводит только к двум операциям, определяемым, чтобы достигнуть требуемой функциональности.
Начальные ссылки получаются через две операции, обеспеченные в интерфейсе объекта ШАРА, предоставляя услуги, чтобы перечислить и разрешить начальные ссылки на объект. Они:
Пример, который использует некоторые из этих методов , Начинает с IDL Java.
Документация относительно исключений IDL Java имеет больше информации и объясняет различие между системными исключениями и определяемыми пользователем исключениями.
Следующее является списком системных исключений (которые являются исключениями непроверенными, наследовавшимися через org.omg.CORBA.SystemException от java.lang.RuntimeException), которые определяются в пакете org.omg.CORBA:
BAD_CONTEXT
BAD_INV_ORDER
BAD_OPERATION
BAD_PARAM
BAD_TYPECODE
COMM_FAILURE
DATA_CONVERSION
FREE_MEM
IMP_LIMIT
INITIALIZE
INTERNAL
INTF_REPOS
INVALID_TRANSACTION
INV_FLAG
INV_IDENT
INV_OBJREF
INV_POLICY
MARSHAL
NO_IMPLEMENT
NO_MEMORY
NO_PERMISSION
NO_RESOURCES
NO_RESPONSE
OBJECT_NOT_EXIST
OBJ_ADAPTER
PERSIST_STORE
TRANSACTION_REQUIRED
TRANSACTION_ROLLEDBACK
TRANSIENT
UNKNOWN
Следующее является списком определяемых пользователем исключений, определенных в пакете org.omg.CORBA.
Bounds
UnknownUserException
WrongTransaction
PolicyError
Например, пакет org.omg.CORBA.TypeCodePackage содержит два исключения, выданные методами в class TypeCode. Эти исключения:
Другой пакет, который является подпакетом CORBA, является пакетом portable. Это обеспечивает ряд API ШАРА, который позволяет коду, сгенерированному компилятором IDL одного поставщика работать на ШАРЕ другого поставщика.
Поддержка и режимы передачи параметра, являющегося одновременно входным и выходным требует использования дополнительных классов держателя. Поскольку язык программирования Java не поддерживает или параметры, являющиеся одновременно входным и выходным, классы держателя необходимы как средство передачи параметра, который может быть изменен. Чтобы поддерживать переносимые тупики и скелеты, классы держателя также реализуют интерфейс org.omg.CORBA.portable.Streamable .
Классы держателя называют, добавляя "Держателя" к имени типа. Имя типа обращается к его имени в языке программирования Java. Например, держателя class для интерфейса под названием Account в языке программирования Java назвали бы AccountHolder.
Классы держателя доступны для всех основных типов данных IDL в пакете org.omg.CORBA. Так, например, есть уже определенные классы для LongHolder, ShortHolder, FloatHolder, и так далее. Классы также сгенерированы для всех именованных определяемых пользователем типов IDL кроме определенных typedefs. (Отметьте, что в этом определяемом пользователем контексте включает типы, которые определяются в спецификациях OMG, таких как те для Репозитария Интерфейса, и других служб OMG.)
Каждый держатель class имеет:
Конструктор по умолчанию устанавливает поле значения в значение по умолчанию для типа как определено языком Java:
Как пример, если интерфейс Account
, определенный в IDL OMG, были отображены на язык программирования Java, следующий держатель, class будет сгенерирован:
public final class AccountHolder implements org.omg.CORBA.portable.Streamable { // field that holds an Account object public Account value = null; // default constructor public AccountHolder () { } // creates a new AccountHolder from initialValue public AccountHolder (Account initialValue) { value = initialValue; } // reads the contents of i and assigns the contents to value public void _read (org.omg.CORBA.portable.InputStream i) { value = AccountHelper.read (i); } // writes value to o public void _write (org.omg.CORBA.portable.OutputStream o) { AccountHelper.write (o, value); } // returns the typecode for Account public org.omg.CORBA.TypeCode _type () { return AccountHelper.type (); } }
Для получения дополнительной информации по классам Держателя см. Главу 1.4, Отображающуюся для Основных типов в
AnyHolder AnySeqHolder BooleanHolder BooleanSeqHolder ByteHolder CharHolder CharSeqHolder CurrentHolder DoubleHolder DoubleSeqHolder FixedHolder FloatHolder FloatSeqHolder IntHolder LongHolder LongLongSeqHolder LongSeqHolder ObjectHolder OctetSeqHolder ParameterModeHolder PolicyErrorHolder PolicyListHolder PrincipalHolder ServiceInformationHolder ShortHolder ShortSeqHolder StringHolder StringSeqHolder TypeCodeHolder ULongLongSeqHolder ULongSeqHolder UnknownUserExceptionHolder UShortSeqHolder ValueBaseHolder WCharSeqHolder WrongTransactionHolder WStringSeqHolder
Предоставление файлов помощника несколько статических методов должно было управлять типом. Они включают:
ValueHelper
интерфейс (если это - определяемый пользователем тип значения), Помощник class для отображенного интерфейса IDL или абстрактного интерфейса также включает узкую работу (ы). Статический узкий метод позволяет org.omg.CORBA.Object быть суженным к ссылке на объект более определенного типа. CORBA.BAD_PARAM исключения IDL бросается, если узкие сбои, потому что ссылка на объект не поддерживает требуемый тип. Различное системное исключение повышается, чтобы указать на другие виды ошибок. Попытка сузить null будет всегда успешно выполняться с возвращаемым значением null. Обычно, единственный метод помощника, который использует прикладной программист, narrow
метод. Другие методы обычно используются негласно и прозрачны программисту.
Классы помощника попадают в две широких категории, помощники для типов значения и помощники для не оценивают типы. Поскольку все классы помощника в одной категории обеспечивают те же самые методы, одно универсальное объяснение каждой категории классов помощника представляется здесь.
Когда IDL OMG отображается на язык программирования Java, "помощник", class сгенерирован для каждого определяемого пользователем типа. Это генерировало class, будет иметь имя определяемого пользователем типа с суффиксом Helper
добавленный. Например, если интерфейс Account
определяется в IDL OMG, idlj
компилятор автоматически генерирует названный class AccountHelper
. AccountHelper
class будет содержать статические методы, необходимые для того, чтобы управлять экземплярами типа, в этом случае, Account
объекты.
narrow
Методorg.omg.CORBA.Object
объект или a java.lang.Object
объект. Этот объект должен быть брошен к его более определенному типу прежде, чем на нем можно будет управлять. Например, Account
объект будет возвращен как универсальный объект и должен быть сужен к Account
объект так, чтобы Account
методы можно вызвать на этом. narrow
у метода есть две формы, тот, который берет org.omg.CORBA.Object
объект и тот, который берет a java.lang.Object
объект. Абстрактен ли интерфейс или не определяет который narrow
метод его помощник class обеспечит. У помощника class для интерфейса, который не абстрактен, будет a narrow
метод, который берет объект CORBA, тогда как narrow
метод для интерфейса, который абстрактен, возьмет объект в языке программирования Java. Помощник class для неабстрактного интерфейса, у которого есть по крайней мере один абстрактный интерфейс, обеспечит обе версии narrow
метод.
Привет Мировое учебное руководство использует метод narrow, который похож на это:
// create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. This is // part of latest Inter-Operable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // resolve the Object Reference in Naming String name = "Hello"; helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));
narrow
метод, если тип, определенный в IDL OMG, отображается на интерфейс в языке программирования Java. У типов, которые не являются типами значения, будет основной помощник class сгенерированный для них. Например, предполагая, что интерфейс Account
не тип IDL типа значения и также не абстрактный интерфейс и не имеет никаких абстрактных интерфейсов, AccountHelper
class будет похож на это:
abstract public class AccountHelper { private static String _id = "IDL:Account:1.0"; // inserts an Account object into an Any object public static void insert (org.omg.CORBA.Any a, Account that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); a.type (type ()); write (out, that); a.read_value (out.create_input_stream (), type ()); } // extracts an Account object from an Any object public static Account extract (org.omg.CORBA.Any a) { return read (a.create_input_stream ()); } private static org.omg.CORBA.TypeCode __typeCode = null; // gets the typecode for this type synchronized public static org.omg.CORBA.TypeCode type () { if (__typeCode == null) { __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (AccountHelper.id (), "Account"); } return __typeCode; } // gets the repository id for this type public static String id () { return _id; } // reads an Account object from an input stream public static Account read (org.omg.CORBA.portable.InputStream istream) { return narrow (istream.read_Object (_AccountStub.class)); } // writes an Account object to an outputstream public static void write (org.omg.CORBA.portable.OutputStream ostream, Account value) { ostream.write_Object ((org.omg.CORBA.Object) value); } // converts (narrows) an Object to an Account object public static Account narrow (org.omg.CORBA.Object obj) { if (obj == null) return null; else if (obj instanceof Account) return (Account)obj; else if (!obj._is_a (id ())) throw new org.omg.CORBA.BAD_PARAM (); else { org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); _AccountStub stub = new _AccountStub (); stub._set_delegate(delegate); return stub; } } }
Принятие этого Address
тип значения, AddressHelper
class будет похож на это:
abstract public class AddressHelper { private static String _id = "IDL:Address:1.0"; // same as for non-value type public static void insert (org.omg.CORBA.Any a, Address that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); a.type (type ()); write (out, that); a.read_value (out.create_input_stream (), type ()); } // same as for non-value type public static Address extract (org.omg.CORBA.Any a) { return read (a.create_input_stream ()); } private static org.omg.CORBA.TypeCode __typeCode = null; private static boolean __active = false; // getting the typecode for the type synchronized public static org.omg.CORBA.TypeCode type () { if (__typeCode == null) { synchronized (org.omg.CORBA.TypeCode.class) { if (__typeCode == null) { if (__active) { return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); } __active = true; org.omg.CORBA.ValueMember[] _members0 = new org.omg.CORBA.ValueMember[0]; org.omg.CORBA.TypeCode _tcOf_members0 = null; __typeCode = org.omg.CORBA.ORB.init ().create_value_tc (_id, "Address", org.omg.CORBA.VM_NONE.value, null, _members0); __active = false; } } } return __typeCode; } // same as for non-value type public static String id () { return _id; } // reads a serializable instance of Address from the given input stream public static Address read (org.omg.CORBA.portable.InputStream istream) { return (Address)((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (id ()); } // writes a serializable instance of Address to the given output stream public static void write (org.omg.CORBA.portable.OutputStream ostream, Address value) { ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, id ()); } }
Классы Помощника, определенные в пакете org.omg.CORBA:
AnySeqHelper
BooleanSeqHelper
CharSeqHelper
CompletionStatusHelper
CurrentHelper
DefinitionKindHelper
DoubleSeqHelper
FieldNameHelper
FloatSeqHelper
IdentifierHelper
IDLTypeHelper
LongLongSeqHelper
LongSeqHelper
NameValuePairHelper
ObjectHelper
OctetSeqHelper
ParameterModeHelper
PolicyErrorCodeHelper
PolicyErrorHelper
PolicyHelper
PolicyListHelper
PolicyTypeHelper
RepositoryIdHelper
ServiceDetailHelper
ServiceInformationHelper
SetOverrideTypeHelper
ShortSeqHelper
StringSeqHelper
StringValueHelper
StructMemberHelper
ULongLongSeqHelper
ULongSeqHelper
UnionMemberHelper
UnknownUserExceptionHelper
UShortSeqHelper
ValueBaseHelper
ValueMemberHelper
VersionSpecHelper
VisibilityHelper
WCharSeqHelper
WrongTransactionHelper
WStringSeqHelper
WStringValueHelper
Это - то, почему несколько интерфейсов в пакете org.omg.CORBA состоят из единственного поля, value, который является short. Это поле является константой, используемой для таких вещей как модификатор значения или код ошибки. Например, поле value интерфейса BAD_POLICY является одной из возможных причин исключения PolicyError, который будет брошен. Чтобы определить этот код ошибки, Вы использовали бы BAD_POLICY.value.
Исключение PolicyError использует поле value следующих интерфейсов как его возможные коды ошибки.
ValueMember
метод доступа объекта, чтобы обозначить видимость ValueMember
объект. ШАР не требует, чтобы был репозитарий интерфейса, и IDL Java не включает тот. Даже при том, что этот выпуск не включает реализацию репозитария интерфейса, следующие классы IR и интерфейсы были включены с целью создания typecodes (см. create_value_tc, create_struct_tc, create_union_tc и create_exception_tc методы в интерфейсе org.omg. CORBA.ORB):
&nbs
Часть API, включенного в подпакеты org.omg, обеспечивается для соответствия с текущим OMG спецификацию CORBA, но не реализуется в выпуске Sun JDKTM. Это позволяет другим лицам, имеющим патент JDK обеспечить реализации этого API в стандартных расширениях и продуктах.
Часть API, включенного в подпакеты org.omg, выдает исключения NO_IMPLEMENT по различным причинам. Среди этих причин:
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92