See: 描述
接口 | 描述 |
---|---|
ARG_IN |
表示一个“输入”参数到一个调用,这意味着该参数是从客户端传递到服务器。
|
ARG_INOUT |
表示用于在调用中输入和输出的参数,这意味着该参数将从客户端传递给服务器,然后从服务器返回给客户端。
|
ARG_OUT |
一个常量,表示一个“输出”参数到一个调用,这意味着该参数是从服务器传递给客户端。
|
BAD_POLICY |
一个
PolicyErrorCode将填充在
PolicyError例外。
|
BAD_POLICY_TYPE |
一个
PolicyErrorCode将填充在
PolicyError例外。
|
BAD_POLICY_VALUE |
包含用于表示一个有效的政策型电话到ORB类定义的方法是不正确的
create_policy 政策价值。
|
CTX_RESTRICT_SCOPE |
一个标志,可作为第二参数的方法
Context.get_values 限制搜索范围。
|
Current |
来自
Current接口使ORB和CORBA服务提供信息访问接口(上下文)与执行,他们正在运行的线程关联。
|
CurrentOperations |
对于
Current接口。
|
CustomMarshal |
一个抽象的价值类型,是由ORB使用,而不是用户。
|
DataInputStream |
定义用于从输入流读取原始数据类型为解封自定义的值类型的方法。
|
DataOutputStream |
定义用于将原始数据类型写入编组自定义值类型的输出流的方法。
|
DomainManager |
提供建立和导航到上级和下属域的关系的机制,以及用于创建和访问策略的机制。
|
DomainManagerOperations |
提供
DomainManager与准入政策的手段。
|
DynAny | Deprecated
使用新的DynAny相反
|
DynArray | Deprecated
使用新的DynArray相反
|
DynEnum | Deprecated
使用新的DynEnum相反
|
DynFixed | Deprecated
使用新的DynFixed相反
|
DynSequence | Deprecated
使用新的DynSequence相反
|
DynStruct | Deprecated
使用新的DynStruct相反
|
DynUnion | Deprecated
使用新的DynUnion相反
|
DynValue | Deprecated
使用新的DynValue相反
|
IDLType |
一个抽象接口,所有接口库继承(IR)对象表示OMG IDL类型。
|
IDLTypeOperations |
这个接口必须由所有idltype对象实现。
|
IRObject |
一个irobject IDL接口是最通用的接口,其它接口库的接口派生,甚至库本身。
|
IRObjectOperations |
这是从
IRObject映射的操作界面。
|
Object |
对CORBA对象的引用的定义。
|
OMGVMCID |
OMG保留供应商小代码ID。
|
Policy |
来自
Policy接口允许一个球体或CORBA服务获得一定的选择影响其操作。
|
PolicyOperations |
一
Policy 对象提供的操作。
|
PRIVATE_MEMBER |
常在
ValueMember 类定义一个私有成员。
|
PUBLIC_MEMBER |
常在
ValueMember 类定义一个公共成员。
|
UNSUPPORTED_POLICY |
其中的一个
PolicyErrorCodes将填充如果请求的
Policy了解通过ORB是有效的,但目前不支持。
|
UNSUPPORTED_POLICY_VALUE |
一个
PolicyErrorCode将填写要求的
Policy价值是一个有效的类型和在有效范围内,型,但这种有效值目前不支持。
|
VM_ABSTRACT |
定义代码用来表示在一个TypeCode抽象接口。
|
VM_CUSTOM |
定义代码用来表示一个自定义整理在TypeCode值类型。
|
VM_NONE |
定义代码用来表示某一TypeCode值类型的值。
|
VM_TRUNCATABLE |
定义代码用来表示在一个可裁剪的TypeCode值类型。
|
类 | 描述 |
---|---|
_IDLTypeStub |
对于
IDLType存根。
|
_PolicyStub |
对于
Policy存根。
|
Any |
作为一个可以在IDL或任何IDL描述原始类型的任何数据容器。
|
AnyHolder |
对于
Any持有人。
|
AnySeqHelper |
对于
AnySeq帮手。
|
AnySeqHolder |
对于
AnySeq持有人。
|
BooleanHolder |
对于
Boolean持有人。
|
BooleanSeqHelper |
对于
BooleanSeq帮手。
|
BooleanSeqHolder |
对于
BooleanSeq持有人。
|
ByteHolder |
对于
Byte持有人。
|
CharHolder |
对于
Char持有人。
|
CharSeqHelper |
对于
CharSeq帮手。
|
CharSeqHolder |
对于
CharSeq持有人。
|
CompletionStatus |
一个对象是否有一个方法完成运行时,
SystemException 扔。
|
CompletionStatusHelper |
对于
CompletionStatus帮手。
|
Context |
一个对象用于
Request 操作指定上下文的语境中字符串前必须随请求发送的解决。
|
ContextList |
包含一个可修改的列表的
String 对象代表一个对象的属性名。
|
CurrentHelper |
对于
Current帮手。
|
CurrentHolder |
对于
Current持有人。
|
DefinitionKind |
提供用于识别接口库对象类型的常量的类。
|
DefinitionKindHelper |
对于
DefinitionKind帮手。
|
DoubleHolder |
对于
Double持有人。
|
DoubleSeqHelper |
对于
DoubleSeq帮手。
|
DoubleSeqHolder |
对于
DoubleSeq持有人。
|
DynamicImplementation | Deprecated
org.omg.corba.dynamicimplementation
|
Environment |
一个集装箱(架)为一种用
Request 业务向客户提供例外的例外。
|
ExceptionList |
一个对象用于描述
Request 操作可以通过方法抛出的异常。
|
FieldNameHelper |
对于
FieldName帮手。
|
FixedHolder |
对于
Fixed持有人。
|
FloatHolder |
对于
Float持有人。
|
FloatSeqHelper |
对于
FloatSeq帮手。
|
FloatSeqHolder |
对于
FloatSeq持有人。
|
IdentifierHelper |
对于
Identifier帮手。
|
IDLTypeHelper |
对于
IDLType帮手。
|
IntHolder |
对于
Int持有人。
|
LocalObject |
作为一个在java语言映射本地的IDL接口实现的基类。
|
LongHolder |
对于
Long持有人。
|
LongLongSeqHelper |
对于
LongLongSeq帮手。
|
LongLongSeqHolder |
对于
LongLongSeq持有人。
|
LongSeqHelper |
对于
LongSeqHelper帮手。
|
LongSeqHolder |
对于
LongSeq持有人。
|
NamedValue |
一个对象用DiI和DSI描述参数和返回值。
|
NameValuePair |
公司名称的值是一个IDL定义一个属性,并用
DynStruct API。
|
NameValuePairHelper |
对于
NameValuePair帮手。
|
NVList |
一个可修改的列表包含
NamedValue 对象。
|
ObjectHelper | |
ObjectHolder |
对于
Object持有人。
|
OctetSeqHelper |
对于
OctetSeq帮手。
|
OctetSeqHolder |
对于
OctetSeq持有人。
|
ORB |
提供的API为CORBA对象请求代理的功能类。
|
ParameterMode |
参数参数模式的枚举。
|
ParameterModeHelper |
参数参数模式的枚举。
|
ParameterModeHolder |
参数参数模式的枚举。
|
PolicyErrorCodeHelper |
封装了一个理性的政策可能无效。
|
PolicyErrorHelper |
抛出的参数值传递给
ORB.create_policy 操作问题。
|
PolicyErrorHolder |
抛出的参数值传递给
ORB.create_policy 操作问题。
|
PolicyHelper |
对于
Policy帮手。
|
PolicyHolder |
对于
Policy持有人。
|
PolicyListHelper |
对于
PolicyList帮手。
|
PolicyListHolder |
对于
PolicyList持有人。
|
PolicyTypeHelper |
对于
PolicyType帮手。
|
Principal | Deprecated
通过CORBA 2.2否决。
|
PrincipalHolder | Deprecated
通过CORBA 2.2否决。
|
RepositoryIdHelper |
对于
RepositoryId帮手。
|
Request |
包含调用方法所必需的信息的对象。
|
ServerRequest |
一个对象,捕捉一个动态框架接口要求显式状态(DSI)。
|
ServiceDetail |
对象是一个ORB服务:其
service_detail_type 字段包含ORB服务类型,其
service_detail 字段包含一个描述ORB服务。
|
ServiceDetailHelper | |
ServiceInformation |
在CORBA的IDL结构模块存储信息关于CORBA服务的ORB实现可从
ORB.get_service_information方法得到的。
|
ServiceInformationHelper | |
ServiceInformationHolder |
对于
ServiceInformation持有人。
|
SetOverrideType |
一个CORBA
枚举 标注
SET_OVERRIDE 和
ADD_OVERRIDE 映射,这表明政策是否应该更换一个
Object 现有政策或加入他们。
|
SetOverrideTypeHelper |
对于
SetOverrideType帮手。
|
ShortHolder |
对于
Short持有人。
|
ShortSeqHelper |
对于
ShortSeqHelper帮手。
|
ShortSeqHolder |
对于
ShortSeq持有人。
|
StringHolder |
对于
String持有人。
|
StringSeqHelper |
字符串数组
|
StringSeqHolder |
字符串数组
|
StringValueHelper |
对于
StringValue帮手。
|
StructMember |
在介绍接口库IDL
struct 成员,包括对
struct 成员的名字,
struct 成员的类型和定义的成员表示
struct IDL类型描述的
struct 成员对象。
|
StructMemberHelper |
对于
StructMember帮手。
|
TCKind |
TCKind java枚举的IDL映射,它指定一个
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 |
在一个
value 对象的一个成员的接口库描述。
|
ValueMemberHelper |
对于
ValueMember帮手。
|
VersionSpecHelper |
对于
VersionSpec帮手。
|
VisibilityHelper |
对于
Visibility帮手。
|
WCharSeqHelper |
对于
WCharSeq帮手。
|
WCharSeqHolder |
对于
WCharSeq持有人。
|
WrongTransactionHelper |
对于
WrongTransaction帮手。
|
WrongTransactionHolder |
对于
WrongTransaction持有人。
|
WStringSeqHelper |
对wstrings数组
|
WStringSeqHolder |
对wstrings数组
|
WStringValueHelper |
通过IDL生成组织/天/ CORBA / wstringvaluehelper.java到java编译器(便携式),版本“3”从orb.idl 31可能1999 22:27:30点GMT+00:00类定义被修改以符合以下规格:OMG的CORBA ORB核心2.3.1定义(
formal/99-10-07)/ java语言IDL映射的定义
ptc/00-01-08
|
异常 | 描述 |
---|---|
ACTIVITY_COMPLETED |
的
ACTIVITY_COMPLETED 系统异常可能是任何方法,活动上下文访问了。
|
ACTIVITY_REQUIRED |
的
ACTIVITY_REQUIRED 系统异常可能提出的任何方法,活动背景是必要的。
|
BAD_CONTEXT |
当客户端调用一个操作时引发的异常,但通过的上下文不包含操作所需的上下文值。
|
BAD_INV_ORDER |
此异常指示调用方以错误的顺序调用操作。
|
BAD_OPERATION |
当对象引用表示现有对象时引发的异常,但该对象不支持调用的操作。
|
BAD_PARAM |
传递给调用的参数在范围内或以其他方式被认为是非法时引发的异常。
|
BAD_QOS |
的
BAD_QOS 异常引发当对象不支持通过调用参数,具有服务质量的语义与它所需的服务质量。
|
BAD_TYPECODE |
异常抛出时遇到了一个畸形的球体类型代码(例如,一个类型代码无效
TCKind值)。
|
Bounds |
当一个参数不在试图访问该方法的对象的合法范围内时引发的用户异常。
|
CODESET_INCOMPATIBLE |
当客户端和服务器本地代码组之间不可能进行有意义的通信时,会引发此异常。
|
COMM_FAILURE |
当一个操作正在进行中时,这个异常被引发,当一个操作正在进行中,请求被客户端发送后,但是在服务器的答复已经返回到客户端之前。
|
DATA_CONVERSION |
这个例外是如果一个球体无法转换数据为领到其原生的表示或反之亦然的表示了。
|
FREE_MEM |
异常抛出时球在试图免费动态内存失败,例如由于堆损坏或内存段被锁定。
|
IMP_LIMIT |
该异常表示实施限制超过ORB运行时间。
|
INITIALIZE |
异常时抛出一个球就遇到初始化失败,如未能获得网络资源或配置错误检测。
|
INTERNAL |
此异常指示例如一个球体,球体内部故障,如果检测到的内部数据结构中的腐败。
|
INTF_REPOS |
例外的时候提出一个球不能到达接口库,或其他一些故障有关的接口库检测。
|
INV_FLAG |
异常抛出时,无效的参数被传递给一个操作(例如,创建DII请求时)。
|
INV_IDENT |
该异常表示一个IDL标识符语法无效。
|
INV_OBJREF |
该异常表示一个对象引用内畸形。
|
INV_POLICY |
标准异常时抛出一个调用,不能因为
Policy之间不兼容覆盖适用于特定的调用。
|
INVALID_ACTIVITY |
的
INVALID_ACTIVITY 系统异常可能是在活动或交易服务的恢复方法如果交易或恢复活动在语境的不同,从它被暂停。
|
INVALID_TRANSACTION |
当请求进行了无效的事务上下文时引发的异常。
|
MARSHAL |
从网络的请求或答复结构无效。
|
NO_IMPLEMENT |
该异常表示即使操作调用的存在(它有一个IDL定义),没有实现,操作存在。
|
NO_MEMORY |
当球抛出的异常运行时内存不足。
|
NO_PERMISSION |
当调用失败时引发的异常,因为调用方具有足够的权限。
|
NO_RESOURCES |
抛出异常时,球已经遇到了一些通用资源限制。
|
NO_RESPONSE |
如果客户端试图检索延迟同步调用的结果,则引发此异常,但尚未提供请求的响应。
|
OBJ_ADAPTER |
这个异常通常表示一个管理不匹配,例如,一个服务器可能试图注册一个实现存储库,它在一个已经使用的名称下,或者是未知的存储库。
|
OBJECT_NOT_EXIST |
在已删除对象上的调用时引发的异常。
|
PERSIST_STORE |
这个异常表示一个持久性存储失败,例如,未能建立数据库的数据库连接或损坏的数据库。
|
PolicyError |
当发生策略错误时引发的用户异常。
|
REBIND |
REBIND 时引发的电流有效rebindpolicy,有价值的no_rebind或no_reconnect和绑定的对象的引用的结果与现状object_forward或状态location_forward回复消息locatereply消息调用。
|
SystemException |
所有的CORBA标准异常的根类。
|
TIMEOUT |
TIMEOUT 升高时没有交付了指定时间的生存期已经超过。
|
TRANSACTION_MODE |
被客户端ORB如果检测到不匹配之间的invocationpolicy IOR中选择路径和调用CORBA
TRANSACTION_MODE 例外(即直接或路由调用)。
|
TRANSACTION_REQUIRED |
异常表示该请求具有一个空的事务上下文,但需要一个活动事务。
|
TRANSACTION_ROLLEDBACK |
当与请求关联的事务已回滚或标记为回滚时引发的异常抛出。
|
TRANSACTION_UNAVAILABLE |
抛出的球时,它不能处理的事务服务上下文因为其交易服务连接被异常终止是CORBA
TRANSACTION_UNAVAILABLE 例外。
|
TRANSIENT |
异常抛出时球试图达成目标和失败。
|
UNKNOWN |
这个例外是如果一个操作执行引发非CORBA异常升高(如特定于实现的编程语言的一个例外),或者如果一个操作提出了一个用户异常,没有出现在操作的培养表达。
|
UnknownUserException |
包含由服务器返回的用户异常的类。
|
UserException |
CORBA IDL定义用户异常的根类。
|
WrongTransaction |
CORBA
WrongTransaction 用户自定义异常。
|
对于精确的名单支持官方的CORBA规范的java [商标]平台部分,标准版6符合,看到Official Specifications for CORBA support in Java[TM] SE 6。
在本节中描述的类和接口可以分为四组:ORB classes,例外,Helper类,和Holder类。
ORB处理(或经纪人)服务器上的客户端和方法的实现方法调用之间。因为客户端和服务器可以在网络的任何地方,因为调用的实现可能是写在不同的编程语言,一个球体做大量的幕后工作,完成通信。
大多数是ORB确实对用户是完全透明的,和CORBA包的主要部分由幕后的ORB使用的类。其结果是,大多数程序员将只使用这个包的一小部分。事实上,大多数程序员都会使用从ORB类,只有少数方法有些例外,偶尔,一架类。
在一个应用程序进入CORBA环境,它必须首先:
下列操作提供初始化应用程序,并获得适当的对象引用:
当应用程序需要一个CORBA环境需要一种机制来获得一个对象引用,可能一个OA对象引用(如根POA)。这有两个目的。首先,它初始化应用程序到ORB和办公环境。其次,它返回的对象引用和对象引用OA在将来使用ORB和OA操作中的应用。
为了获得一个对象引用,应用程序调用ORB.init操作。在调用参数可以包括该对象引用所需的ORB的标识符,和arg_list,以允许特定环境下的数据被传递到调用。
这些都是ORB方法提供访问ORB:
没有参数init()方法启动一个单独的天体,它只能给anys TypeCode创作的idlj在辅助类生成的代码需要。
应用程序需要一个便携式的装置,以获得他们的初始对象引用。引用的根早熟,早熟的电流,接口库,以及各种服务的对象实例。应用程序所需的功能与命名服务提供的功能类似。然而,OMG不想授权,命名服务可以为所有的应用程序,他们可以随身携带的初始化。因此,在本节中显示的操作提供了一个简化的、应用程序可以使用的本地版本的命名服务,以获得一个小的、定义的对象引用集,其操作是必不可少的。由于只有一个小的定义的一组对象的预期与这个机制,命名上下文可以被夷为平地是一个单一的级名称空间。这种简化的结果只有两个操作被定义,以实现所需的功能。
通过两个作业在ORB对象接口提供了初步参考,列出和解决初始对象的引用提供设施。这些都是:
一个例子,使用这些方法的一些 Getting Started with Java IDL。
在Java IDL exceptions文档有更多的信息和解释之间的差异,系统异常和自定义异常。
下面是一个列表的系统异常(即未检查的异常继承通过 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包含两个例外用类中的方法被TypeCode。这些例外是:
另一个包,一个分装CORBA是 portable包。它提供了一组API,使得ORB代码通过一个供应商的IDL编译器生成的运行在另一个供应商的宝珠。
支持out和inout参数传递模式需要额外的支架类的使用。因为java编程语言不支持或INOUT参数,人类需要传递一个参数,可以修改的方法。支持便携式的存根和骨架,人类也实现org.omg.CORBA.portable.Streamable 接口。
人类所指定的附加“持有人”的类型的名称。该类型的名称是指它的名字在java编程语言。例如,一个界面的java编程语言中的类命名Account持有人将被命名为AccountHolder。
人的类可用于所有的org.omg.CORBA包IDL基本数据类型。所以,例如,已经有LongHolder,ShortHolder,FloatHolder定义类,等等。课程还为所有用户定义的IDL类型命名的除外typedefs定义的产生。(请注意,在这种情况下,用户定义类型,包括在OMG规范如界面库,定义和其他OMG服务。)
每个持有人类都有:
默认构造函数设置值字段的类型由java语言定义的默认值:
作为一个例子,如果界面Account
,在OMG IDL定义,映射到java编程语言,下面的人会产生类:
最终实现公共类账户org.omg.corba.portable.streamable{持有帐户对象的字段公共帐户值=空;/默认构造函数公共账户(){}//创建一个新账户初值公共账户(账户初始值){价值=初值;}读写我的内容,并将内容分配给价值公共无效_read(org.omg.corba.portable.inputstream我){价值= accounthelper.read(我);}将值写入到公共无效_write(org.omg.corba.portable.outputstream O){accounthelper.write(O,值);}//返回账户TypeCode公共org.omg.corba.typecode _type(){返回accounthelper.type();}}
在人类的更多信息,参见1.4章,在 OMG IDL to Java Language Mapping基本类型映射。人类包中定义的org.omg.CORBA是:
z-c4b398a1- 315d-424a-88c7-4c4c27be6069帮助文件提供了操作类型所需的几种静态方法。这些措施包括:
ValueHelper
接口(如果它是一个用户定义的值类型)一个映射的IDL接口或抽象接口的辅助类,也包括狭义的操作(S)。静态方法允许一个org.omg.CORBA.Object窄被缩小到一个更具体的类型的对象的引用。IDL的例外是如果CORBA.BAD_PARAM窄不能因为对象的引用不支持请求的类型扔。提出了一个不同的系统异常来表示其他类型的错误。在狭窄的null总会有null返回值成功。通常,一个应用程序采用的是narrow
方法唯一的辅助方法。其他方法通常是在幕后使用,对程序员来说是透明的。
辅助类可分为两大类,helpers for value types和helpers for non value types。由于在一个类别中的所有辅助类提供了相同的方法,这里介绍了一个类的辅助类的一个通用的解释。
当OMG IDL映射到java编程语言,一个“帮手”班是为每个用户定义类型的产生。这个生成的类将有名称的用户定义类型的后缀Helper
附加。例如,如果界面Account
是OMG IDL定义的idlj
编译器会自动生成一个名为AccountHelper
类。的AccountHelper
类将包含操纵类型的实例的静态方法,在这种情况下,Account
对象。
narrow
方法org.omg.CORBA.Object
对象或
java.lang.Object
对象。此对象必须被转换到它的更具体的类型之前,它可以操作。例如,一个
Account
对象将作为一个通用的对象又必须缩小到一个
Account
对象使
Account
方法可能会叫它。
的narrow
法有两种形式,一种以org.omg.CORBA.Object
对象之一,以java.lang.Object
对象。接口是否是抽象的或不确定的narrow
方法其助手类将提供。一个接口,而不是抽象的辅助类都会有一个narrow
方法采用CORBA对象,而接口是抽象的narrow
方法将对象在java编程语言。对于一个非抽象接口,至少有一个抽象基类的接口将提供的narrow
法版本的助手类。
的Hello World教程使用narrow方法看起来像这样:
//创建和初始化ORB球球=球体。init(args,null);获取根命名上下文org.omg.corba.object ObjRef =球体。resolve_initial_references(“命名服务”);/ /使用而不是NamingContext namingcontextext。这是最新的可操作的命名服务的一部分。namingcontextext ncref = namingcontextexthelper窄(对象引用);在命名中解析对象引用字符串名称=“你好”;helloimpl = hellohelper。窄(ncref。resolve_str(名字));
narrow
方法如果在OMG IDL映射到java编程语言接口定义的类型。不为值类型的类型将有一个为它们生成的基本辅助类。
例如,假设界面Account
不是值类型的IDL类型也不是一个抽象的接口,没有抽象的接口,其AccountHelper
类将看起来像这样:
摘要公共类accounthelper{私有静态字符串_id =“IDL:帐号:1”;将一个帐户对象插入到一个对象中public static void插入(org.omg.corba.any,帐户){org.omg.corba.portable.outputstream = a.create_output_stream();用户类型(式());写(出来,那);a.read_value(out.create_input_stream(),式());}从任何对象提取一个帐户对象公共静态账户提取(org.omg.corba.any一){回读(a.create_input_stream());}私有静态org.omg.corba.typecode __typecode = null;//获取TypeCode这种类型同步静态org.omg.corba.typecode型(){如果(__typecode = = null){__typecode = org.omg.corba.orb.init()。create_interface_tc(accounthelper.id(),“帐户”);}返回__typecode;}获取此类型的存储库标识公共静态字符串标识(){返回_id;}从输入流读取一个帐户对象公共静态账户读(org.omg.corba.portable.inputstream istream){返回窄(istream.read_object(_accountstub。类));}/ /写一个帐户对象的输出流public static void写(org.omg.corba.portable.outputstream ostream,账户价值){ostream.write_object((org。OMG CORBA对象。)值);}/ /转换(缩小)一个对象的帐户对象公共静态账户窄(org.omg.corba.object obj){如果(obj = = null)返回null;else if(obj instanceof帐户)返回(账户)对象;否则如果(!obj。_is_a(ID()))把新的org.omg.corba.bad_param();其他的{org.omg.corba.portable.delegate代表=((org。OMG的CORBA。便携式。objectimpl)obj)。_get_delegate();_accountstub存根=新_accountstub();存根。_set_delegate(委托);返回存根;}}}
假设Address
是值类型,类的AddressHelper
将看起来像这样:
摘要公共类addresshelper{私有静态字符串_id =“IDL:地址:1”;和非值型相同public static void插入(org.omg.corba.any,地址){org.omg.corba.portable.outputstream = a.create_output_stream();用户类型(式());写(出来,那);a.read_value(out.create_input_stream(),式());}和非值型相同公共静态地址提取(org.omg.corba.any一){回读(a.create_input_stream());}私有静态org.omg.corba.typecode __typecode = null;私有静态布尔__active = false;//得到TypeCode的类型同步静态org.omg.corba.typecode型(){如果(__typecode = = null){同步(org。OMG的CORBA。TypeCode。类){如果(__typecode = = null){如果(__active){回到牛津。OMG的CORBA ORB()。。。。create_recursive_tc(_id);}__active =真;org。OMG CORBA。ValueMember [ ] _members0 =新组织。OMG的CORBA ValueMember [ 0 ];org.omg.corba.typecode _tcof_members0 = null;__typecode = org.omg.corba.orb.init()。create_value_tc(_id,“地址”,org.omg.corba.vm_none.value,null,_members0);__active = false;}}}返回__typecode;}和非值型相同公共静态字符串标识(){返回_id;}//读取序列化实例的地址从给定的输入流公共静态地址读(org.omg.corba.portable.inputstream istream){返回(地址)((org。OMG。corba_2_3。便携式。InputStream)istream)。read_value(ID());}/ /写地址的序列化实例给出的输出流public static void写(org.omg.corba.portable.outputstream ostream,地址值){((org。OMG。corba_2_3。便携式。OutputStream)ostream)。write_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。此字段是一个常量用于这些东西的错误代码或值修改剂。例如,该接口BAD_POLICY的value场是一种例外PolicyError被抛出的可能原因。指定的错误代码,你可以使用BAD_POLICY.value。
例外PolicyError使用下列接口的value场为可能的错误代码。
ValueMember
返回的对象的访问的方法来表示的
ValueMember
对象的可见性。
一个球不需要有一个接口库,和java IDL不包含一个。尽管这个版本不包括一个接口库的实现,下面的红外类和接口已被列入创建typecodes的目的(见create_value_tc,create_struct_tc,界面组织。create_union_tc和OMG的CORBA ORB create_exception_tc方法。。):
&nbs
一些API包含在org.omg子包提供了与目前OMG的CORBA规范的一致性而不是在jdkTM Sun发布实施。这使得其他JDK的持牌人在标准的扩展和产品提供的API实现。
一些API包含在org.omg子包扔NO_IMPLEMENT因各种原因例外。在这些原因中:
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.