summaryrefslogtreecommitdiff
path: root/src/java.corba/share/classes/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/java.corba/share/classes/org')
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java86
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java84
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java53
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java54
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java53
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Any.java721
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java107
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java101
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java86
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java90
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java39
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java39
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java41
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java109
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Bounds.java54
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java97
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java110
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java90
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java52
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CharHolder.java111
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java142
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Context.java244
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ContextList.java106
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Current.java48
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java87
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java65
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java41
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java57
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java344
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java283
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java501
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java80
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DomainManager.java44
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java50
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java109
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAny.java732
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java51
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java52
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java53
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java52
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html42
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynArray.java58
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynEnum.java65
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynFixed.java57
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynSequence.java74
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynStruct.java70
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynUnion.java94
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynValue.java73
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java47
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Environment.java61
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java110
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java81
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java98
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java105
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IDLType.java49
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java95
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java58
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java87
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java87
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java80
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java89
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java80
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IRObject.java42
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/IntHolder.java112
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LocalObject.java514
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LongHolder.java108
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java87
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java86
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java80
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java80
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NVList.java177
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java63
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java109
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/NamedValue.java125
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java89
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java84
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java42
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ORB.java1406
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java52
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java53
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java98
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html50
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Object.java282
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java111
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java46
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java47
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Policy.java47
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyError.java71
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java95
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java65
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java89
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java72
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Principal.java58
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java93
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/REBIND.java86
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java84
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/Request.java301
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java314
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java68
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java62
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java94
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java110
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java122
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java110
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/StringHolder.java109
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java138
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/StructMember.java89
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java117
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/SystemException.java119
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TCKind.java554
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java79
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java82
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCode.java516
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java110
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java55
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java98
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java55
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java98
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html52
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java88
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java40
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java41
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UnionMember.java95
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java124
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java106
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java65
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/UserException.java57
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java39
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java39
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java44
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java41
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java86
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java107
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ValueMember.java121
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java149
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java83
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java85
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java99
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java66
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java142
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java56
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java98
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java65
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java153
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java164
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html143
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html118
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/ir.idl793
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/orb.idl47
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/package.html982
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java64
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java39
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java45
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java408
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java37
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java68
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java320
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java72
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java534
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java287
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java46
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java54
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java48
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java60
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java41
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java58
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java50
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java57
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java51
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java49
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA/portable/package.html96
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java89
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/package.html67
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java54
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java153
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java59
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java130
-rw-r--r--src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html40
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html53
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html56
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java108
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java407
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl509
-rw-r--r--src/java.corba/share/classes/org/omg/CosNaming/package.html351
-rw-r--r--src/java.corba/share/classes/org/omg/Dynamic/package.html53
-rw-r--r--src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html56
-rw-r--r--src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html54
-rw-r--r--src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl1280
-rw-r--r--src/java.corba/share/classes/org/omg/DynamicAny/package.html211
-rw-r--r--src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html50
-rw-r--r--src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html53
-rw-r--r--src/java.corba/share/classes/org/omg/IOP/package.html60
-rw-r--r--src/java.corba/share/classes/org/omg/Messaging/package.html55
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl69
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl617
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl2214
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl44
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html52
-rw-r--r--src/java.corba/share/classes/org/omg/PortableInterceptor/package.html103
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java113
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html61
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java43
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java101
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html51
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html82
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/Servant.java266
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java57
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html51
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/corba.idl101
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/package.html230
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/poa.idl1191
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java115
-rw-r--r--src/java.corba/share/classes/org/omg/PortableServer/portable/package.html49
-rw-r--r--src/java.corba/share/classes/org/omg/SendingContext/RunTime.java43
-rw-r--r--src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java43
-rw-r--r--src/java.corba/share/classes/org/omg/SendingContext/package.html76
-rw-r--r--src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java61
-rw-r--r--src/java.corba/share/classes/org/omg/stub/java/rmi/package.html40
269 files changed, 35931 insertions, 0 deletions
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java
new file mode 100644
index 0000000..b733453
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The <code>ACTIVITY_COMPLETED</code> system exception may be raised on any
+ * method for which Activity context is accessed. It indicates that the
+ * Activity context in which the method call was made has been completed due
+ * to a timeout of either the Activity itself or a transaction that encompasses
+ * the Activity, or that the Activity completed in a manner other than that
+ * originally requested.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class ACTIVITY_COMPLETED extends SystemException {
+
+ /**
+ * Constructs an <code>ACTIVITY_COMPLETED</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public ACTIVITY_COMPLETED() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public ACTIVITY_COMPLETED(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public ACTIVITY_COMPLETED(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public ACTIVITY_COMPLETED(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java
new file mode 100644
index 0000000..1e31993
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The <code>ACTIVITY_REQUIRED</code> system exception may be raised on any
+ * method for which an Activity context is required. It indicates that an
+ * Activity context was necessary to perform the invoked operation, but one
+ * was not found associated with the calling thread.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class ACTIVITY_REQUIRED extends SystemException {
+
+ /**
+ * Constructs an <code>ACTIVITY_REQUIRED</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public ACTIVITY_REQUIRED() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public ACTIVITY_REQUIRED(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public ACTIVITY_REQUIRED(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public ACTIVITY_REQUIRED(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java
new file mode 100644
index 0000000..14d415e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Signifies an "input" argument to an invocation,
+ * meaning that the argument is being passed from the client to
+ * the server.
+ * <code>ARG_IN.value</code> is one of the possible values used to
+ * indicate the direction in
+ * which a parameter is being passed during an invocation performed
+ * using the Dynamic Invocation Interface (DII).
+ * <P>
+ * The code fragment below shows a typical usage:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * org.omg.CORBA.NamedValue nv = orb.create_named_value(
+ * "IDLArgumentIdentifier", myAny, org.omg.CORBA.ARG_IN.value);
+ * </PRE>
+ *
+ * @see org.omg.CORBA.NamedValue
+ * @since JDK1.2
+ */
+public interface ARG_IN {
+
+ /**
+ * The value indicating an input argument.
+ */
+ int value = 1;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java
new file mode 100644
index 0000000..b33b8c0
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Signifies an argument used for both input and output in an invocation,
+ * meaning that the argument is being passed from the client to
+ * the server and then back from the server to the client.
+ * <code>ARG_INOUT.value</code> is one of the possible values used to
+ * indicate the direction in
+ * which a parameter is being passed during a dynamic invocation
+ * using the Dynamic Invocation Interface (DII).
+ * <P>
+ * The code fragment below shows a typical usage:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * org.omg.CORBA.NamedValue nv = orb.create_named_value(
+ * "argumentIdentifier", myAny, org.omg.CORBA.ARG_INOUT.value);
+ * </PRE>
+ *
+ * @see org.omg.CORBA.NamedValue
+ * @since JDK1.2
+ */
+public interface ARG_INOUT {
+
+/**
+ * The constant value indicating an argument used for both
+ * input and output.
+ */
+ int value = 3;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java
new file mode 100644
index 0000000..8d4443b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A constant that signifies an "output" argument to an invocation,
+ * meaning that the argument is being passed from the server to
+ * the client.
+ * <code>ARG_OUT.value</code> is one of the possible values used
+ * to indicate the direction in
+ * which a parameter is being passed during a dynamic invocation
+ * using the Dynamic Invocation Interface (DII).
+ * <P>
+ * The code fragment below shows a typical usage:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * org.omg.CORBA.NamedValue nv = orb.create_named_value(
+ * "argumentIdentifier", myAny, org.omg.CORBA.ARG_OUT.value);
+ * </PRE>
+ *
+ * @see org.omg.CORBA.NamedValue
+ * @since JDK1.2
+ */
+public interface ARG_OUT {
+
+/**
+ * The constant value indicating an output argument.
+ */
+ int value = 2;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Any.java b/src/java.corba/share/classes/org/omg/CORBA/Any.java
new file mode 100644
index 0000000..c02b4fa
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Any.java
@@ -0,0 +1,721 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.IDLEntity;
+
+/**
+ * Serves as a container for any data that can be
+ * described in IDL or for any IDL primitive type.
+ * An <code>Any</code> object is used as a component of a
+ * <code>NamedValue</code> object, which provides information about
+ * arguments or return values in requests, and which is used to define
+ * name/value pairs in <code>Context</code> objects.
+ <p>
+ *
+ * An <code>Any</code> object consists of two parts:
+ * <OL>
+ * <LI>a data value
+ * <LI>a <code>TypeCode</code> object describing the type of the data
+ * value contained in the <code>Any</code> object. For example,
+ * a <code>TypeCode</code> object for an array contains
+ * a field for the length of the array and a field for
+ * the type of elements in the array. (Note that in this case, the
+ * second field of the <code>TypeCode</code> object is itself a
+ * <code>TypeCode</code> object.)
+ * </OL>
+ *
+ * <P>
+ * <a id="anyOps"></a>
+ * A large part of the <code>Any</code> class consists of pairs of methods
+ * for inserting values into and extracting values from an
+ * <code>Any</code> object.
+ * <P>
+ * For a given primitive type X, these methods are:
+ * <dl>
+ * <dt><code><b>void insert_X(X x)</b></code>
+ * <dd> This method allows the insertion of
+ * an instance <code>x</code> of primitive type <code>X</code>
+ * into the <code>value</code> field of the <code>Any</code> object.
+ * Note that the method
+ * <code>insert_X</code> also resets the <code>Any</code> object's
+ * <code>type</code> field if necessary.
+ * <dt> <code><b>X extract_X()</b></code>
+ * <dd> This method allows the extraction of an instance of
+ * type <code>X</code> from the <code>Any</code> object.
+ * <BR>
+ * <P>
+ * This method throws the exception <code>BAD_OPERATION</code> under two conditions:
+ * <OL>
+ * <LI> the type of the element contained in the <code>Any</code> object is not
+ * <code>X</code>
+ * <LI> the method <code>extract_X</code> is called before
+ * the <code>value</code> field of the <code>Any</code> object
+ * has been set
+ * </OL>
+ * </dl>
+ * <P>
+ * There are distinct method pairs for each
+ * primitive IDL data type (<code>insert_long</code> and <code>extract_long</code>,
+ * <code>insert_string</code> and <code>extract_string</code>, and so on).<BR>
+ * <P>
+ * The class <code>Any</code> also has methods for
+ * getting and setting the type code,
+ * for testing two <code>Any</code> objects for equality,
+ * and for reading an <code>Any</code> object from a stream or
+ * writing it to a stream.
+ * <BR>
+ * @since JDK1.2
+ */
+abstract public class Any implements IDLEntity {
+
+ /**
+ * Checks for equality between this <code>Any</code> object and the
+ * given <code>Any</code> object. Two <code>Any</code> objects are
+ * equal if both their values and type codes are equal.
+ *
+ * @param a the <code>Any</code> object to test for equality
+ * @return <code>true</code> if the <code>Any</code> objects are equal;
+ * <code>false</code> otherwise
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ abstract public boolean equal(Any a);
+
+ /**
+ * Returns type information for the element contained in this
+ * <code>Any</code> object.
+ *
+ * @return the <code>TypeCode</code> object containing type information
+ * about the value contained in this <code>Any</code> object
+ */
+ abstract public TypeCode type();
+
+ /**
+ * Sets this <code>Any</code> object's <code>type</code> field
+ * to the given <code>TypeCode</code> object and clears its value.
+ * <P>
+ * Note that using this method to set the type code wipes out the
+ * value if there is one. The method
+ * is provided primarily so that the type may be set properly for
+ * IDL <code>out</code> parameters. Generally, setting the type
+ * is done by the <code>insert_X</code> methods, which will set the type
+ * to X if it is not already set to X.
+ *
+ * @param t the <code>TypeCode</code> object giving
+ * information for the value in
+ * this <code>Any</code> object
+ */
+ abstract public void type(TypeCode t);
+
+ ///////////////////////////////////////////////////////////////////////////
+ // marshalling/unmarshalling routines
+
+ /**
+ * Reads off (unmarshals) the value of an <code>Any</code> object from
+ * the given input stream using the given typecode.
+ *
+ * @param is the <code>org.omg.CORBA.portable.InputStream</code>
+ * object from which to read
+ * the value contained in this <code>Any</code> object
+ *
+ * @param t a <code>TypeCode</code> object containing type information
+ * about the value to be read
+ *
+ * @exception MARSHAL when the given <code>TypeCode</code> object is
+ * not consistent with the value that was contained
+ * in the input stream
+ */
+ abstract public void read_value(InputStream is, TypeCode t)
+ throws MARSHAL;
+
+ /**
+ * Writes out the value of this <code>Any</code> object
+ * to the given output stream. If both <code>typecode</code>
+ * and <code>value</code> need to be written, use
+ * <code>create_output_stream()</code> to create an <code>OutputStream</code>,
+ * then use <code>write_any</code> on the <code>OutputStream</code>.
+ * <P>
+ * If this method is called on an <code>Any</code> object that has not
+ * had a value inserted into its <code>value</code> field, it will throw
+ * the exception <code>java.lang.NullPointerException</code>.
+ *
+ * @param os the <code>org.omg.CORBA.portable.OutputStream</code>
+ * object into which to marshal the value
+ * of this <code>Any</code> object
+ *
+ */
+ abstract public void write_value(OutputStream os);
+
+ /**
+ * Creates an output stream into which this <code>Any</code> object's
+ * value can be marshalled.
+ *
+ * @return the newly-created <code>OutputStream</code>
+ */
+ abstract public OutputStream create_output_stream();
+
+ /**
+ * Creates an input stream from which this <code>Any</code> object's value
+ * can be unmarshalled.
+ *
+ * @return the newly-created <code>InputStream</code>
+ */
+ abstract public InputStream create_input_stream();
+
+ ///////////////////////////////////////////////////////////////////////////
+ // basic insertion/extraction methods
+
+ /**
+ * Extracts the <code>short</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>short</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>short</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public short extract_short() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>short</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param s the <code>short</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_short(short s);
+
+ /**
+ * Extracts the <code>int</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>int</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than an <code>int</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public int extract_long() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>int</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param l the <code>int</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_long(int l);
+
+
+ /**
+ * Extracts the <code>long</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>long</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>long</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public long extract_longlong() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>long</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param l the <code>long</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_longlong(long l);
+
+ /**
+ * Extracts the <code>short</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>short</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>short</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public short extract_ushort() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>short</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param s the <code>short</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_ushort(short s);
+
+ /**
+ * Extracts the <code>int</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>int</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than an <code>int</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public int extract_ulong() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>int</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param l the <code>int</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_ulong(int l);
+
+ /**
+ * Extracts the <code>long</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>long</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>long</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public long extract_ulonglong() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>long</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param l the <code>long</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_ulonglong(long l);
+
+ /**
+ * Extracts the <code>float</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>float</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>float</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public float extract_float() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>float</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param f the <code>float</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_float(float f);
+
+ /**
+ * Extracts the <code>double</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>double</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>double</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public double extract_double() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>double</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param d the <code>double</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_double(double d);
+
+ /**
+ * Extracts the <code>boolean</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>boolean</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>boolean</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public boolean extract_boolean() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>boolean</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param b the <code>boolean</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_boolean(boolean b);
+
+ /**
+ * Extracts the <code>char</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>char</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>char</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public char extract_char() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>char</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param c the <code>char</code> to insert into this
+ * <code>Any</code> object
+ * @exception DATA_CONVERSION if there is a data conversion
+ * error
+ */
+ abstract public void insert_char(char c) throws DATA_CONVERSION;
+
+ /**
+ * Extracts the <code>char</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>char</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>char</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public char extract_wchar() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>char</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param c the <code>char</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_wchar(char c);
+
+ /**
+ * Extracts the <code>byte</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>byte</code> stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>byte</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public byte extract_octet() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>byte</code>
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param b the <code>byte</code> to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_octet(byte b);
+
+ /**
+ * Extracts the <code>Any</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>Any</code> object stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than an <code>Any</code> object or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public Any extract_any() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>Any</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param a the <code>Any</code> object to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_any(Any a);
+
+ /**
+ * Extracts the <code>org.omg.CORBA.Object</code> in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>org.omg.CORBA.Object</code> stored in
+ * this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than an
+ * <code>org.omg.CORBA.Object</code> or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public org.omg.CORBA.Object extract_Object() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>org.omg.CORBA.Object</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param o the <code>org.omg.CORBA.Object</code> object to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_Object(org.omg.CORBA.Object o);
+
+ /**
+ * Extracts the <code>java.io.Serializable</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>java.io.Serializable</code> object stored in
+ * this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>java.io.Serializable</code>
+ * object or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public java.io.Serializable extract_Value() throws BAD_OPERATION ;
+
+ /**
+ * Inserts the given <code>java.io.Serializable</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param v the <code>java.io.Serializable</code> object to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_Value(java.io.Serializable v) ;
+
+ /**
+ * Inserts the given <code>java.io.Serializable</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param v the <code>java.io.Serializable</code> object to insert into this
+ * <code>Any</code> object
+ * @param t the <code>TypeCode</code> object that is to be inserted into
+ * this <code>Any</code> object's <code>type</code> field
+ * and that describes the <code>java.io.Serializable</code>
+ * object being inserted
+ * @throws MARSHAL if the ORB has a problem marshalling or
+ * unmarshalling parameters
+ */
+ abstract public void insert_Value(java.io.Serializable v, TypeCode t)
+ throws MARSHAL ;
+/**
+ * Inserts the given <code>org.omg.CORBA.Object</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param o the <code>org.omg.CORBA.Object</code> instance to insert into this
+ * <code>Any</code> object
+ * @param t the <code>TypeCode</code> object that is to be inserted into
+ * this <code>Any</code> object and that describes
+ * the <code>Object</code> being inserted
+ * @exception BAD_OPERATION if this method is invalid for this
+ * <code>Any</code> object
+ *
+ */
+ abstract public void insert_Object(org.omg.CORBA.Object o, TypeCode t)
+ throws BAD_PARAM;
+
+ /**
+ * Extracts the <code>String</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>String</code> object stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>String</code> object or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public String extract_string() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>String</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param s the <code>String</code> object to insert into this
+ * <code>Any</code> object
+ * @exception DATA_CONVERSION if there is a data conversion error
+ * @exception MARSHAL if the ORB has a problem marshalling or
+ * unmarshalling parameters
+ */
+ abstract public void insert_string(String s) throws DATA_CONVERSION, MARSHAL;
+
+ /**
+ * Extracts the <code>String</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>String</code> object stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>String</code> object or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public String extract_wstring() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>String</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param s the <code>String</code> object to insert into this
+ * <code>Any</code> object
+ * @exception MARSHAL if the ORB has a problem marshalling or
+ * unmarshalling parameters
+ */
+ abstract public void insert_wstring(String s) throws MARSHAL;
+
+ /**
+ * Extracts the <code>TypeCode</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>TypeCode</code> object stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a <code>TypeCode</code> object or the
+ * <code>value</code> field has not yet been set
+ */
+ abstract public TypeCode extract_TypeCode() throws BAD_OPERATION;
+
+ /**
+ * Inserts the given <code>TypeCode</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param t the <code>TypeCode</code> object to insert into this
+ * <code>Any</code> object
+ */
+ abstract public void insert_TypeCode(TypeCode t);
+
+ /**
+ * Extracts the <code>Principal</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ * Note that the class <code>Principal</code> has been deprecated.
+ *
+ * @return the <code>Principal</code> object stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a
+ * <code>Principal</code> object or the
+ * <code>value</code> field has not yet been set
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public Principal extract_Principal() throws BAD_OPERATION {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+
+ /**
+ * Inserts the given <code>Principal</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ * Note that the class <code>Principal</code> has been deprecated.
+ *
+ * @param p the <code>Principal</code> object to insert into this
+ * <code>Any</code> object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public void insert_Principal(Principal p) {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // insertion/extraction of streamables
+
+ /**
+ * Extracts a <code>Streamable</code> from this <code>Any</code> object's
+ * <code>value</code> field. This method allows the extraction of
+ * non-primitive IDL types.
+ *
+ * @return the <code>Streamable</code> stored in the <code>Any</code> object.
+ * @throws BAD_INV_ORDER if the caller has invoked operations in the wrong order
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.portable.Streamable extract_Streamable()
+ throws org.omg.CORBA.BAD_INV_ORDER {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+
+ /**
+ * Inserts the given <code>Streamable</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ * This method allows the insertion of non-primitive IDL types.
+ *
+ * @param s the <code>Streamable</code> object to insert into this
+ * <code>Any</code> object; may be a non-primitive
+ * IDL type
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void insert_Streamable(Streamable s) {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+
+ /**
+ * Extracts the <code>java.math.BigDecimal</code> object in this
+ * <code>Any</code> object's <code>value</code> field.
+ *
+ * @return the <code>java.math.BigDecimal</code> object
+ * stored in this <code>Any</code> object
+ * @exception BAD_OPERATION if this <code>Any</code> object
+ * contains something other than a
+ * <code>java.math.BigDecimal</code> object or the
+ * <code>value</code> field has not yet been set
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public java.math.BigDecimal extract_fixed() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Throws an <a href="package-summary.html#NO_IMPLEMENT">
+ * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception.
+ * <P>
+ * Inserts the given <code>java.math.BigDecimal</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param value the <code>java.math.BigDecimal</code> object
+ * to insert into this <code>Any</code> object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void insert_fixed(java.math.BigDecimal value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Throws an <a href="package-summary.html#NO_IMPLEMENT">
+ * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception.
+ * <P>
+ * Inserts the given <code>java.math.BigDecimal</code> object
+ * into this <code>Any</code> object's <code>value</code> field.
+ *
+ * @param value the <code>java.math.BigDecimal</code> object
+ * to insert into this <code>Any</code> object
+ * @param type the <code>TypeCode</code> object that is to be inserted into
+ * this <code>Any</code> object's <code>type</code> field
+ * and that describes the <code>java.math.BigDecimal</code>
+ * object being inserted
+ * @throws org.omg.CORBA.BAD_INV_ORDER if this method is invoked improperly
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void insert_fixed(java.math.BigDecimal value, org.omg.CORBA.TypeCode type)
+ throws org.omg.CORBA.BAD_INV_ORDER
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java b/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java
new file mode 100644
index 0000000..fed1979
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Any}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for {@code Any} objects
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code any} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code AnyHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myAnyHolder} is an instance of {@code AnyHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myAnyHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class AnyHolder implements Streamable {
+ /**
+ * The {@code Any} value held by this {@code AnyHolder} object.
+ */
+
+ public Any value;
+
+ /**
+ * Constructs a new {@code AnyHolder} object with its
+ * {@code value} field initialized to {@code null}.
+ */
+ public AnyHolder() {
+ }
+
+ /**
+ * Constructs a new {@code AnyHolder} object for the given
+ * {@code Any} object.
+ * @param initial the {@code Any} object with which to initialize
+ * the {@code value} field of the new
+ * {@code AnyHolder} object
+ */
+ public AnyHolder(Any initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in the Holder
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire.
+ */
+ public void _read(InputStream input) {
+ value = input.read_any();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code AnyHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data.
+ */
+ public void _write(OutputStream output) {
+ output.write_any(value);
+ }
+
+ /**
+ * Returns the {@code TypeCode} object corresponding to the value
+ * held in this {@code AnyHolder} object.
+ *
+ * @return the TypeCode of the value held in
+ * this {@code AnyHolder} object
+ */
+ public TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_any);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java
new file mode 100644
index 0000000..1897a8e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code AnySeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/AnySeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class AnySeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/AnySeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Any[] 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 ());
+ }
+
+ public static org.omg.CORBA.Any[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.AnySeqHelper.id (), "AnySeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Any[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.Any value[] = null;
+ int _len0 = istream.read_long ();
+ value = new org.omg.CORBA.Any[_len0];
+ for (int _o1 = 0;_o1 < value.length; ++_o1)
+ value[_o1] = istream.read_any ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Any[] value)
+ {
+ ostream.write_long (value.length);
+ for (int _i0 = 0;_i0 < value.length; ++_i0)
+ ostream.write_any (value[_i0]);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java
new file mode 100644
index 0000000..4f5dd59
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code AnySeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/AnySeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class AnySeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.Any value[] = null;
+
+ public AnySeqHolder ()
+ {
+ }
+
+ public AnySeqHolder (org.omg.CORBA.Any[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.AnySeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.AnySeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.AnySeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java
new file mode 100644
index 0000000..f32f686
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when an operation is invoked by a client but the passed
+ * context does not contain the context values required by the operation.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class BAD_CONTEXT extends SystemException {
+
+ /**
+ * Constructs a <code>BAD_CONTEXT</code> exception
+ * with a default minor code
+ * of 0 and a completion state of COMPLETED_NO.
+ */
+ public BAD_CONTEXT() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>BAD_CONTEXT</code> exception
+ * with the specified detail message, a minor code
+ * of 0 and a completion state of COMPLETED_NO.
+ * @param s a <code>String</code> object containing a detail message
+ */
+ public BAD_CONTEXT(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>BAD_CONTEXT</code> exception
+ * with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code> indicating
+ * the completion status
+ */
+ public BAD_CONTEXT(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>BAD_CONTEXT</code> exception
+ * with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code> indicating
+ * the completion status
+ */
+ public BAD_CONTEXT(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java
new file mode 100644
index 0000000..1830428
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates that the caller has invoked operations in
+ * the wrong order. For example, it can be raised by an ORB if an
+ * application makes an ORB-related call without having correctly
+ * initialized the ORB first.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class BAD_INV_ORDER extends SystemException {
+
+ /**
+ * Constructs a <code>BAD_INV_ORDER</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public BAD_INV_ORDER() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>BAD_INV_ORDER</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the String containing a detail message
+ */
+ public BAD_INV_ORDER(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>BAD_INV_ORDER</code> exceptionBAD_INV_ORDER with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code> indicating
+ * the completion status
+ */
+ public BAD_INV_ORDER(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>BAD_INV_ORDER</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public BAD_INV_ORDER(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java
new file mode 100644
index 0000000..44ce517
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when an object reference denotes an existing object,
+ * but that the object does not support the operation that was invoked.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class BAD_OPERATION extends SystemException {
+
+ /**
+ * Constructs a <code>BAD_OPERATION</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public BAD_OPERATION() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>BAD_OPERATION</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public BAD_OPERATION(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>BAD_OPERATION</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code> indicating
+ * the completion status
+ */
+ public BAD_OPERATION(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>BAD_OPERATION</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code> indicating
+ * the completion status
+ */
+ public BAD_OPERATION(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java
new file mode 100644
index 0000000..cdeee3b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown
+ * when a parameter passed to a call is out of range or
+ * otherwise considered illegal. An ORB may raise this exception
+ * if null values or null pointers are passed to an operation (for
+ * language mappings where the concept of a null pointers or null
+ * values applies). BAD_PARAM can also be raised as a result of a
+ * client generating requests with incorrect parameters using the DII. <P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions},
+ * {@extLink jidlexception_minorcodes meaning of minor codes}
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class BAD_PARAM extends SystemException {
+
+ /**
+ * Constructs a <code>BAD_PARAM</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public BAD_PARAM() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>BAD_PARAM</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the String containing a detail message describing this
+ * exception
+ */
+ public BAD_PARAM(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>BAD_PARAM</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public BAD_PARAM(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>BAD_PARAM</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a <code>String</code> that describes
+ * this particular exception.
+ *
+ * @param s the <code>String</code> containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public BAD_PARAM(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java
new file mode 100644
index 0000000..91ff0f6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+/**
+ * A {@code PolicyErrorCode} which would be filled in
+ * the {@code PolicyError} exception.
+ *
+ * @author rip-dev
+ */
+
+public interface BAD_POLICY {
+ /**
+ * The Error code in PolicyError exception.
+ */
+ final short value = (short) (0L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java
new file mode 100644
index 0000000..532797d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A {@code PolicyErrorCode} which would be filled in
+ * the {@code PolicyError} exception.
+ *
+ * @author rip-dev
+ */
+public interface BAD_POLICY_TYPE {
+ /**
+ * The Error code in PolicyError exception.
+ */
+ final short value = (short) (2L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java
new file mode 100644
index 0000000..94ff3e2
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+* Contains the value used to indicate a policy value that is
+* incorrect for a valid policy type in a call to the
+* <code>create_policy</code> method defined in the ORB class.
+*
+*/
+public interface BAD_POLICY_VALUE {
+ /**
+ * The value used to represent a bad policy value error
+ * in a <code>PolicyError</code> exception.
+ * @see org.omg.CORBA.PolicyError
+ */
+ final short value = (short) (3L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java
new file mode 100644
index 0000000..c21b30a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The <code>BAD_QOS</code> exception is raised whenever an object cannot
+ * support the quality of service required by an invocation parameter that
+ * has a quality of service semantics associated with it.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class BAD_QOS extends SystemException {
+
+ /**
+ * Constructs an <code>BAD_QOS</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public BAD_QOS() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>BAD_QOS</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public BAD_QOS(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>BAD_QOS</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public BAD_QOS(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>BAD_QOS</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public BAD_QOS(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java
new file mode 100644
index 0000000..076aea3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when the ORB has encountered a malformed type code
+ * (for example, a type code with an invalid {@code TCKind} value).<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class BAD_TYPECODE extends SystemException {
+
+ /**
+ * Constructs a {@code BAD_TYPECODE} exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public BAD_TYPECODE() {
+ this("");
+ }
+
+ /**
+ * Constructs a {@code BAD_TYPECODE} exception with the specified detail,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the String containing a detail message
+ */
+ public BAD_TYPECODE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a {@code BAD_TYPECODE} exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of {@code CompletionStatus} indicating
+ * the completion status
+ */
+ public BAD_TYPECODE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a {@code BAD_TYPECODE} exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of {@code CompletionStatus} indicating
+ * the completion status
+ */
+ public BAD_TYPECODE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java
new file mode 100644
index 0000000..f0f14e6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+
+/**
+ * The Holder for {@code Boolean}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code boolean}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code boolean} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code BooleanHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myBooleanHolder} is an instance of {@code BooleanHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myBooleanHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class BooleanHolder implements Streamable {
+
+ /**
+ * The {@code boolean} value held by this {@code BooleanHolder}
+ * object.
+ */
+ public boolean value;
+
+ /**
+ * Constructs a new {@code BooleanHolder} object with its
+ * {@code value} field initialized to {@code false}.
+ */
+ public BooleanHolder() {
+ }
+
+ /**
+ * Constructs a new {@code BooleanHolder} object with its
+ * {@code value} field initialized with the given {@code boolean}.
+ * @param initial the {@code boolean} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code BooleanHolder} object
+ */
+ public BooleanHolder(boolean initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads unmarshalled data from {@code input} and assigns it to this
+ * {@code BooleanHolder} object's {@code value} field.
+ *
+ * @param input the {@code InputStream} object containing
+ * CDR formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = input.read_boolean();
+ }
+
+ /**
+ * Marshals the value in this {@code BooleanHolder} object's
+ * {@code value} field to the output stream {@code output}.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ output.write_boolean(value);
+ }
+
+ /**
+ * Retrieves the {@code TypeCode} object that corresponds to the
+ * value held in this {@code BooleanHolder} object.
+ *
+ * @return the {@code TypeCode} for the value held
+ * in this {@code BooleanHolder} object
+ */
+ public TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_boolean);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java
new file mode 100644
index 0000000..c072b5f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code BooleanSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/BooleanSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class BooleanSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/BooleanSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, boolean[] 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 ());
+ }
+
+ public static boolean[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_boolean);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.BooleanSeqHelper.id (), "BooleanSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static boolean[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ boolean value[] = null;
+ int _len0 = istream.read_long ();
+ value = new boolean[_len0];
+ istream.read_boolean_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, boolean[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_boolean_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java
new file mode 100644
index 0000000..0c45eff
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code BooleanSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/BooleanSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class BooleanSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public boolean value[] = null;
+
+ public BooleanSeqHolder ()
+ {
+ }
+
+ public BooleanSeqHolder (boolean[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.BooleanSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.BooleanSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.BooleanSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Bounds.java b/src/java.corba/share/classes/org/omg/CORBA/Bounds.java
new file mode 100644
index 0000000..3c6c023
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Bounds.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A user exception thrown when a parameter is not within
+ * the legal bounds for the object that a method is trying
+ * to access.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class Bounds extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs an <code>Bounds</code> with no specified detail message.
+ */
+ public Bounds() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>Bounds</code> with the specified detail message.
+ *
+ * @param reason the detail message.
+ */
+ public Bounds(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java b/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java
new file mode 100644
index 0000000..0d5d6cc
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+
+/**
+ * This Helper class is used to facilitate the marshalling of {@code Bounds}.
+ * For more information on Helper files, see
+ * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.
+ */
+
+abstract public class BoundsHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/Bounds:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Bounds 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 ());
+ }
+
+ public static org.omg.CORBA.Bounds 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [0];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.BoundsHelper.id (), "Bounds", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Bounds read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.Bounds value = new org.omg.CORBA.Bounds ();
+ // read and discard the repository ID
+ istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Bounds value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java
new file mode 100644
index 0000000..75c76c5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Byte}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code byte}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code octet} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code ByteHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myByteHolder} is an instance of {@code ByteHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myByteHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class ByteHolder implements Streamable {
+ /**
+ * The {@code byte} value held by this {@code ByteHolder}
+ * object.
+ */
+
+ public byte value;
+
+ /**
+ * Constructs a new {@code ByteHolder} object with its
+ * {@code value} field initialized to 0.
+ */
+ public ByteHolder() {
+ }
+
+ /**
+ * Constructs a new {@code ByteHolder} object for the given
+ * {@code byte}.
+ * @param initial the {@code byte} with which to initialize
+ * the {@code value} field of the new
+ * {@code ByteHolder} object
+ */
+ public ByteHolder(byte initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in
+ * this {@code ByteHolder} object
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire.
+ */
+ public void _read(InputStream input) {
+ value = input.read_octet();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code ByteHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data.
+ */
+ public void _write(OutputStream output) {
+ output.write_octet(value);
+ }
+
+ /**
+ * Returns the TypeCode corresponding to the value held in
+ * this {@code ByteHolder} object.
+ *
+ * @return the TypeCode of the value held in
+ * this {@code ByteHolder} object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_octet);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java b/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java
new file mode 100644
index 0000000..5b1e465
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception is raised whenever meaningful communication is not possible
+ * between client and server native code sets.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class CODESET_INCOMPATIBLE extends SystemException {
+
+ /**
+ * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public CODESET_INCOMPATIBLE() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public CODESET_INCOMPATIBLE(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public CODESET_INCOMPATIBLE(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public CODESET_INCOMPATIBLE(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java b/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java
new file mode 100644
index 0000000..b85c267
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception is raised if communication is lost while an operation
+ * is in progress, after the request was sent by the client, but before
+ * the reply from the server has been returned to the client.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class COMM_FAILURE extends SystemException {
+
+ /**
+ * Constructs a <code>COMM_FAILURE</code> exception with
+ * a default minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public COMM_FAILURE() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>COMM_FAILURE</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the <code>String</code> containing a detail message describing
+ * this exception
+ */
+ public COMM_FAILURE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>COMM_FAILURE</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status, which must be one of
+ * <code>COMPLETED_YES</code>, <code>COMPLETED_NO</code>, or
+ * <code>COMPLETED_MAYBE</code>.
+ */
+ public COMM_FAILURE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>COMM_FAILURE</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status, which must be one of
+ * <code>COMPLETED_YES</code>, <code>COMPLETED_NO</code>, or
+ * <code>COMPLETED_MAYBE</code>.
+ */
+ public COMM_FAILURE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java b/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java
new file mode 100644
index 0000000..dbfa9f8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A flag that can be used as the second parameter to the method
+ * <code>Context.get_values</code> to restrict the search scope.
+ * When this flag is used, it restricts the search for
+ * context values to this particular <code>Context</code> object
+ * or to the scope specified in the first parameter to
+ * <code>Context.get_values</code>.
+ * <P>
+ * Usage:
+ * <PRE>
+ * NVList props = myContext.get_values("_USER",
+ * CTX_RESTRICT_SCOPE.value, "id*");
+ * </PRE>
+ *
+ * @see org.omg.CORBA.Context#get_values(String, int, String)
+ * @since JDK1.2
+ */
+public interface CTX_RESTRICT_SCOPE {
+
+/**
+ * The field containing the <code>int</code> value of a
+ * <code>CTX_RESTRICT_SCOPE</code> flag.
+ */
+ int value = 15;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java
new file mode 100644
index 0000000..35ce03c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Char}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code char}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code char} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code CharHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myCharHolder} is an instance of {@code CharHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myCharHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class CharHolder implements Streamable {
+
+ /**
+ * The {@code char} value held by this {@code CharHolder}
+ * object.
+ */
+ public char value;
+
+ /**
+ * Constructs a new {@code CharHolder} object with its
+ * {@code value} field initialized to {@code 0}.
+ */
+ public CharHolder() {
+ }
+
+ /**
+ * Constructs a new {@code CharHolder} object for the given
+ * {@code char}.
+ * @param initial the {@code char} with which to initialize
+ * the {@code value} field of the new
+ * {@code CharHolder} object
+ */
+ public CharHolder(char initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in
+ * this {@code CharHolder} object
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = input.read_char();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code CharHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ output.write_char(value);
+ }
+
+ /**
+ * Returns the {@code TypeCode} object corresponding
+ * to the value held in
+ * this {@code CharHolder} object.
+ *
+ * @return the TypeCode of the value held in
+ * this {@code CharHolder} object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_char);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java
new file mode 100644
index 0000000..2a0f112
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code CharSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/CharSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class CharSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/CharSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, char[] 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 ());
+ }
+
+ public static char[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_char);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.CharSeqHelper.id (), "CharSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static char[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ char value[] = null;
+ int _len0 = istream.read_long ();
+ value = new char[_len0];
+ istream.read_char_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, char[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_char_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java
new file mode 100644
index 0000000..739a128
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code CharSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/CharSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class CharSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public char value[] = null;
+
+ public CharSeqHolder ()
+ {
+ }
+
+ public CharSeqHolder (char[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.CharSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.CharSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.CharSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java
new file mode 100644
index 0000000..a8ad47d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+ * An object that indicates whether a method had completed running
+ * when a <code>SystemException</code> was thrown.
+ * <P>
+ * The class <code>CompletionStatus</code>
+ * contains three <code>CompletionStatus</code> instances, which are constants
+ * representing each
+ * possible completion status: <code>COMPLETED_MAYBE</code>,
+ * <code>COMPLETED_NO</code>, and <code>COMPLETED_YES</code>.
+ * It also contains
+ * three <code>int</code> members, each a constant corresponding to one of
+ * the <code>CompletionStatus</code> instances. These <code>int</code>
+ * members make it possible to use a <code>switch</code> statement.
+ * <P>
+ * The class also contains two methods:
+ * <UL>
+ * <LI><code>public int <b>value</b>()</code> -- which accesses the
+ * <code>value</code> field of a <code>CompletionStatus</code> object
+ * <LI><code>public static CompletionStatus
+ * <b>from_int</b>(int i)</code> --
+ * for creating an instance from one of the <code>int</code> members
+ * </UL>
+ * @see org.omg.CORBA.SystemException
+ * @since JDK1.2
+ */
+
+public final class CompletionStatus implements org.omg.CORBA.portable.IDLEntity
+{
+/**
+ * The constant indicating that a method completed running
+ * before a <code>SystemException</code> was thrown.
+ */
+ public static final int _COMPLETED_YES = 0,
+
+/**
+ * The constant indicating that a method had not completed running
+ * when a <code>SystemException</code> was thrown.
+ */
+ _COMPLETED_NO = 1,
+
+/**
+ * The constant indicating that it is unknown whether a method had
+ * completed running when a <code>SystemException</code> was thrown.
+ */
+ _COMPLETED_MAYBE = 2;
+
+
+/**
+ * An instance of <code>CompletionStatus</code> initialized with
+ * the constant <code>_COMPLETED_YES</code>.
+ */
+ public static final CompletionStatus COMPLETED_YES = new CompletionStatus(_COMPLETED_YES);
+
+/**
+ * An instance of <code>CompletionStatus</code> initialized with
+ * the constant <code>_COMPLETED_NO</code>.
+ */
+ public static final CompletionStatus COMPLETED_NO = new CompletionStatus(_COMPLETED_NO);
+
+ /**
+ * An instance of <code>CompletionStatus</code> initialized with
+ * the constant <code>_COMPLETED_MAYBE</code>.
+ */
+ public static final CompletionStatus COMPLETED_MAYBE = new CompletionStatus(_COMPLETED_MAYBE);
+
+ /**
+ * Retrieves the value of this <code>CompletionStatus</code> object.
+ *
+ * @return one of the possible <code>CompletionStatus</code> values:
+ * <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
+ * <code>_COMPLETED_MAYBE</code>
+ *
+ */
+ public int value() { return _value; }
+
+/**
+ * Creates a <code>CompletionStatus</code> object from the given <code>int</code>.
+ *
+ * @param i one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
+ * <code>_COMPLETED_MAYBE</code>
+ *
+ * @return one of the possible <code>CompletionStatus</code> objects
+ * with values:
+ * <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
+ * <code>_COMPLETED_MAYBE</code>
+ *
+ * @exception org.omg.CORBA.BAD_PARAM if the argument given is not one of the
+ * <code>int</code> constants defined in <code>CompletionStatus</code>
+ */
+ public static CompletionStatus from_int(int i) {
+ switch (i) {
+ case _COMPLETED_YES:
+ return COMPLETED_YES;
+ case _COMPLETED_NO:
+ return COMPLETED_NO;
+ case _COMPLETED_MAYBE:
+ return COMPLETED_MAYBE;
+ default:
+ throw new org.omg.CORBA.BAD_PARAM();
+ }
+ }
+
+
+/**
+ * Creates a <code>CompletionStatus</code> object from the given <code>int</code>.
+ *
+ * @param _value one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or
+ * <code>_COMPLETED_MAYBE</code>
+ *
+ */
+ private CompletionStatus(int _value) {
+ this._value = _value;
+ }
+
+ private int _value;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java
new file mode 100644
index 0000000..1be74d5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code CompletionStatus}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/CompletionStatusHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * 03 June 1999 11:52:03 o'clock GMT+00:00
+ */
+
+abstract public class CompletionStatusHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/CompletionStatus:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.CompletionStatus 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 ());
+ }
+
+ public static org.omg.CORBA.CompletionStatus extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.CompletionStatusHelper.id (), "CompletionStatus", new String[] { "COMPLETED_YES", "COMPLETED_NO", "COMPLETED_MAYBE"} );
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.CompletionStatus read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return org.omg.CORBA.CompletionStatus.from_int (istream.read_long ());
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.CompletionStatus value)
+ {
+ ostream.write_long (value.value ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Context.java b/src/java.corba/share/classes/org/omg/CORBA/Context.java
new file mode 100644
index 0000000..60c7e7d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Context.java
@@ -0,0 +1,244 @@
+/*
+ * Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object used in <code>Request</code> operations
+ * to specify the context object in which context strings
+ * must be resolved before being sent along with the request invocation.
+ * A <code>Context</code> object
+ * contains a list of properties in the form of <code>NamedValue</code>
+ * objects. These properties represent information
+ * about the client, the environment, or the circumstances of a request
+ * and generally are properties that might be inconvenient
+ * to pass as parameters.
+ * <P>
+ * A <code>Context</code> object is created by first calling the
+ * <code>ORB</code> method <code>get_default_context</code>
+ * and then calling the method <code>create_child</code> on the
+ * default context.
+ * <P>
+ * Each property in a <code>Context</code> object is represented by
+ * a <code>NamedValue</code> object. The property name is contained
+ * in the <code>NamedValue</code> object's <code>name</code> field, and
+ * the value associated with the name is contained in the <code>Any</code>
+ * object that was assigned to the <code>NamedValue</code> object's
+ * <code>value</code> field.
+ * <P>
+ * <code>Context</code> properties can represent a portion of a client's
+ * or application's environment that is meant to be propagated to
+ * (and made implicitly part of) a server's environment.
+ * (Examples might be a window identifier or user preference information).
+ * Once a server has been invoked (that is, after the properties are
+ * propagated), the server may query its <code>Context</code> object
+ * for these properties using the method <code>get_values</code>.
+ *
+ *<P>
+ * When an operation declaration includes a context clause,
+ * the stubs and skeletons will have an additional argument
+ * added for the context. When an operation invocation occurs,
+ * the ORB causes the properties that were named in the operation
+ * definition in IDL and
+ * that are present in the client's <code>Context</code> object
+ * to be provided in the <code>Context</code> object parameter to
+ * the invoked method.
+ * <P>
+ * <code>Context</code> property names (which are strings)
+ * typically have the form of an OMG IDL identifier or
+ * a series of OMG IDL identifiers separated by periods.
+ * A context property name pattern is either a property name
+ * or a property name followed by a single "*". A property
+ * name pattern without a trailing "*" is said to match only
+ * itself. A property name pattern of the form "&lt;name&gt;*" matches any
+ * property name that starts with &lt;name&gt; and continues with zero
+ * or more additional characters.
+ * <P>
+ * Property name patterns are used in the context clause of
+ * an operation definition and as a parameter for the
+ * method <code>Context.get_values</code>.
+ * <P>
+ * <code>Context</code> objects may be "chained" together to achieve a
+ * particular defaulting behavior. A <code>Context</code>
+ * object created with the method <code>create_child</code> will
+ * be chained to its parent (the <code>Context</code> object
+ * that created it), and that means that the parent will be searched
+ * after the child in a search for property names.
+ *<P>
+ * Properties defined in a particular <code>Context</code> object
+ * effectively override those properties in the next higher level.
+ * The scope used in a search for properties may be restricted by specifying a
+ * starting scope and by using the flag <code>CTX_RESTRICT_SCOPE</code>
+ * when invoking the method <code>get_values</code>.
+ * <P>
+ * A <code>Context</code> object may be named for purposes of specifying
+ * a starting search scope.
+ *
+ * @since JDK1.2
+ */
+
+public abstract class Context {
+
+ /**
+ * Retrieves the name of this <code>Context</code> object.
+ *
+ * @return the name of this <code>Context</code> object
+ */
+
+ public abstract String context_name();
+
+
+ /**
+ * Retrieves the parent of this <code>Context</code> object.
+ *
+ * @return the <code>Context</code> object that is the
+ * parent of this <code>Context</code> object
+ */
+
+ public abstract Context parent();
+
+ /**
+ * Creates a <code>Context</code> object with the given string as its
+ * name and with this <code>Context</code> object set as its parent.
+ * <P>
+ * The new <code>Context</code> object is chained into its parent
+ * <code>Context</code> object. This means that in a search for
+ * matching property names, if a match is not found in this context,
+ * the search will continue in the parent. If that is not successful,
+ * the search will continue in the grandparent, if there is one, and
+ * so on.
+ *
+ *
+ * @param child_ctx_name the <code>String</code> object to be set as
+ * the name of the new <code>Context</code> object
+ * @return the newly-created child <code>Context</code> object
+ * initialized with the specified name
+ */
+
+ public abstract Context create_child(String child_ctx_name);
+
+ /**
+ * Creates a <code>NamedValue</code> object and adds it to this
+ * <code>Context</code> object. The <code>name</code> field of the
+ * new <code>NamedValue</code> object is set to the given string,
+ * the <code>value</code> field is set to the given <code>Any</code>
+ * object, and the <code>flags</code> field is set to zero.
+ *
+ * @param propname the name of the property to be set
+ * @param propvalue the <code>Any</code> object to which the
+ * value of the property will be set. The
+ * <code>Any</code> object's <code>value</code>
+ * field contains the value to be associated
+ * with the given propname; the
+ * <code>kind</code> field must be set to
+ * <code>TCKind.tk_string</code>.
+ */
+
+ public abstract void set_one_value(String propname, Any propvalue);
+
+ /**
+ I Sets one or more property values in this <code>Context</code>
+ * object. The <code>NVList</code> supplied to this method
+ * contains one or more <code>NamedValue</code> objects.
+ * In each <code>NamedValue</code> object,
+ * the <code>name</code> field holds the name of the property, and
+ * the <code>flags</code> field must be set to zero.
+ * The <code>NamedValue</code> object's <code>value</code> field
+ * contains an <code>Any</code> object, which, in turn, contains the value
+ * for the property. Since the value is always a string,
+ * the <code>Any</code> object must have the <code>kind</code>
+ * field of its <code>TypeCode</code> set to <code>TCKind.tk_string</code>.
+ *
+ * @param values an NVList containing the property
+ * names and associated values to be set
+ *
+ * @see #get_values
+ * @see org.omg.CORBA.NamedValue
+ * @see org.omg.CORBA.Any
+ */
+
+ public abstract void set_values(NVList values);
+
+ /**
+ * Deletes from this <code>Context</code> object the
+ * <code>NamedValue</code> object(s) whose
+ * <code>name</code> field matches the given property name.
+ * If the <code>String</code> object supplied for
+ * <code>propname</code> has a
+ * trailing wildcard character ("*"), then
+ * all <code>NamedValue</code> objects whose <code>name</code>
+ * fields match will be deleted. The search scope is always
+ * limited to this <code>Context</code> object.
+ * <P>
+ * If no matching property is found, an exception is returned.
+ *
+ * @param propname name of the property to be deleted
+ */
+
+ public abstract void delete_values(String propname);
+
+ /**
+ * Retrieves the <code>NamedValue</code> objects whose
+ * <code>name</code> field matches the given name or name
+ * pattern. This method allows for wildcard searches,
+ * which means that there can be multiple matches and
+ * therefore multiple values returned. If the
+ * property is not found at the indicated level, the search
+ * continues up the context object tree until a match is found or
+ * all <code>Context</code> objects in the chain have been exhausted.
+ * <P>
+ * If no match is found, an error is returned and no property list
+ * is returned.
+ *
+ * @param start_scope a <code>String</code> object indicating the
+ * context object level at which to initiate the
+ * search for the specified properties
+ * (for example, "_USER", "_GROUP", "_SYSTEM"). Valid scope
+ * names are implementation-specific. If a
+ * scope name is omitted, the search
+ * begins with the specified context
+ * object. If the specified scope name is
+ * not found, an exception is returned.
+ * @param op_flags an operation flag. The one flag
+ * that may be specified is <code>CTX_RESTRICT_SCOPE</code>.
+ * If this flag is specified, searching is limited to the
+ * specified <code>start_scope</code> or this
+ * <code>Context</code> object.
+ * @param pattern the property name whose values are to
+ * be retrieved. <code>pattern</code> may be a
+ * name or a name with a
+ * trailing wildcard character ("*").
+ *
+ * @return an <code>NVList</code> containing all the property values
+ * (in the form of <code>NamedValue</code> objects)
+ * whose associated property name matches the given name or
+ * name pattern
+ * @see #set_values
+ * @see org.omg.CORBA.NamedValue
+ */
+
+ abstract public NVList get_values(String start_scope, int op_flags,
+ String pattern);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ContextList.java b/src/java.corba/share/classes/org/omg/CORBA/ContextList.java
new file mode 100644
index 0000000..46cb764
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ContextList.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object containing a modifiable list of <code>String</code> objects
+ * that represent property names.
+ * This class is used in <code>Request</code> operations to
+ * describe the contexts that need to be resolved and sent with the
+ * invocation. (A context is resolved by giving a property name
+ * and getting back the value associated with it.) This is done
+ * by calling the <code>Context</code> method
+ * <code>get_values</code> and supplying a string from a
+ * <code>ContextList</code> object as the third parameter.
+ * The method <code>get_values</code> returns an <code>NVList</code>
+ * object containing the <code>NamedValue</code> objects that hold
+ * the value(s) identified by the given string.
+ * <P>
+ * A <code>ContextList</code> object is created by the ORB, as
+ * illustrated here:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * org.omg.CORBA.ContextList ctxList = orb.create_context_list();
+ * </PRE>
+ * The variable <code>ctxList</code> represents an empty
+ * <code>ContextList</code> object. Strings are added to
+ * the list with the method <code>add</code>, accessed
+ * with the method <code>item</code>, and removed with the
+ * method <code>remove</code>.
+ *
+ * @see Context
+ * @since JDK1.2
+ */
+
+public abstract class ContextList {
+
+ /**
+ * Returns the number of <code>String</code> objects in this
+ * <code>ContextList</code> object.
+ *
+ * @return an <code>int</code> representing the number of
+ * <code>String</code>s in this <code>ContextList</code> object
+ */
+
+ public abstract int count();
+
+ /**
+ * Adds a <code>String</code> object to this <code>ContextList</code>
+ * object.
+ *
+ * @param ctx the <code>String</code> object to be added
+ */
+
+ public abstract void add(String ctx);
+
+ /**
+ * Returns the <code>String</code> object at the given index.
+ *
+ * @param index the index of the string desired, with 0 being the
+ index of the first string
+ * @return the string at the given index
+ * @exception org.omg.CORBA.Bounds if the index is greater than
+ * or equal to the number of strings in this
+ * <code>ContextList</code> object
+ */
+
+ public abstract String item(int index) throws org.omg.CORBA.Bounds;
+
+ /**
+ * Removes the <code>String</code> object at the given index. Note that
+ * the indices of all strings following the one removed are
+ * shifted down by one.
+ *
+ * @param index the index of the <code>String</code> object to be removed,
+ * with 0 designating the first string
+ * @exception org.omg.CORBA.Bounds if the index is greater than
+ * or equal to the number of <code>String</code> objects in
+ * this <code>ContextList</code> object
+ */
+
+ public abstract void remove(int index) throws org.omg.CORBA.Bounds;
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Current.java b/src/java.corba/share/classes/org/omg/CORBA/Current.java
new file mode 100644
index 0000000..a713349
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Current.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* Interfaces derived from the {@code Current} interface enable ORB and CORBA
+* services to provide access to information (context) associated with
+* the thread of execution in which they are running. This information
+* is accessed in a structured manner using interfaces derived from the
+* {@code Current} interface defined in the CORBA module.
+*
+* <P>Each ORB or CORBA service that needs its own context derives an
+* interface from the CORBA module's {@code Current}. Users of the
+* service can obtain an instance of the appropriate {@code Current}
+* interface by invoking {@code ORB::resolve_initial_references}.<P>
+*
+* org/omg/CORBA/Current.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+* Saturday, July 17, 1999 12:26:21 AM PDT.
+*/
+
+public interface Current extends CurrentOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity
+{
+} // interface Current
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java
new file mode 100644
index 0000000..f838de5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code Current}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/CurrentHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:21 AM PDT
+ */
+
+abstract public class CurrentHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/Current:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Current that)
+ {
+ throw new org.omg.CORBA.MARSHAL() ;
+ }
+
+ public static org.omg.CORBA.Current extract (org.omg.CORBA.Any a)
+ {
+ throw new org.omg.CORBA.MARSHAL() ;
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.CurrentHelper.id (), "Current");
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Current read (org.omg.CORBA.portable.InputStream istream)
+ {
+ throw new org.omg.CORBA.MARSHAL() ;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Current value)
+ {
+ throw new org.omg.CORBA.MARSHAL() ;
+ }
+
+ public static org.omg.CORBA.Current narrow (org.omg.CORBA.Object obj)
+ {
+ if (obj == null)
+ return null;
+ else if (obj instanceof org.omg.CORBA.Current)
+ return (org.omg.CORBA.Current)obj;
+ else
+ throw new org.omg.CORBA.BAD_PARAM ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java
new file mode 100644
index 0000000..74f16d3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+ * The Holder for {@code Current}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/CurrentHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:21 AM PDT
+ */
+
+public final class CurrentHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.Current value = null;
+
+ public CurrentHolder ()
+ {
+ }
+
+ public CurrentHolder (org.omg.CORBA.Current initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.CurrentHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.CurrentHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.CurrentHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java
new file mode 100644
index 0000000..f058e66
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The interface for {@code Current}. For more information on
+ * Operations interfaces, see <a href="doc-files/generatedfiles.html">
+ * "Generated Files"</a>.
+ *
+ * org/omg/CORBA/CurrentOperations.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:21 AM PDT.
+ */
+
+public interface CurrentOperations
+{
+} // interface CurrentOperations
diff --git a/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java b/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java
new file mode 100644
index 0000000..7937391
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.DataOutputStream;
+import org.omg.CORBA.DataInputStream;
+
+/**
+ * An abstract value type that is meant to
+ * be used by the ORB, not the user. Semantically it is treated
+ * as a custom value type's implicit base class, although the custom
+ * valuetype does not actually inherit it in IDL. The implementer
+ * of a custom value type shall provide an implementation of the
+ * {@code CustomMarshal} operations. The manner in which this is done is
+ * specified in the IDL to Java langauge mapping. Each custom
+ * marshaled value type shall have its own implementation.
+ * @see DataInputStream
+ */
+public interface CustomMarshal {
+ /**
+ * Marshal method has to be implemented by the Customized Marshal class.
+ * This is the method invoked for Marshalling.
+ *
+ * @param os a DataOutputStream
+ */
+ void marshal(DataOutputStream os);
+ /**
+ * Unmarshal method has to be implemented by the Customized Marshal class.
+ * This is the method invoked for Unmarshalling.
+ *
+ * @param is a DataInputStream
+ */
+ void unmarshal(DataInputStream is);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java b/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java
new file mode 100644
index 0000000..3a58ea7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception is raised if an ORB cannot convert the representation
+ * of data as marshaled into its native representation or vice-versa.
+ * For example, DATA_CONVERSION can be raised if wide character codeset
+ * conversion fails, or if an ORB cannot convert floating point values
+ * between different representations.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class DATA_CONVERSION extends SystemException {
+
+ /**
+ * Constructs a <code>DATA_CONVERSION</code> exception with a default minor code
+ * of 0 and a completion state of COMPLETED_NO.
+ */
+ public DATA_CONVERSION() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>DATA_CONVERSION</code> exception with the specified detail.
+ * @param s the String containing a detail message
+ */
+ public DATA_CONVERSION(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>DATA_CONVERSION</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public DATA_CONVERSION(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>DATA_CONVERSION</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public DATA_CONVERSION(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java b/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java
new file mode 100644
index 0000000..d90792a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java
@@ -0,0 +1,344 @@
+/*
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/** Defines the methods used to read primitive data types from input streams
+* for unmarshaling custom value types. This interface is used by user
+* written custom unmarshaling code for custom value types.
+* @see org.omg.CORBA.DataOutputStream
+* @see org.omg.CORBA.CustomMarshal
+*/
+public interface DataInputStream extends org.omg.CORBA.portable.ValueBase
+{
+ /** Reads an IDL <code>Any</code> value from the input stream.
+ * @return the <code>Any</code> read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ org.omg.CORBA.Any read_any ();
+
+ /** Reads an IDL boolean value from the input stream.
+ * @return the boolean read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ boolean read_boolean ();
+
+ /** Reads an IDL character value from the input stream.
+ * @return the character read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ char read_char ();
+
+ /** Reads an IDL wide character value from the input stream.
+ * @return the wide character read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ char read_wchar ();
+
+ /** Reads an IDL octet value from the input stream.
+ * @return the octet value read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ byte read_octet ();
+
+ /** Reads an IDL short from the input stream.
+ * @return the short read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ short read_short ();
+
+ /** Reads an IDL unsigned short from the input stream.
+ * @return the unsigned short read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ short read_ushort ();
+
+ /** Reads an IDL long from the input stream.
+ * @return the long read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ int read_long ();
+
+ /** Reads an IDL unsigned long from the input stream.
+ * @return the unsigned long read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ int read_ulong ();
+
+ /** Reads an IDL long long from the input stream.
+ * @return the long long read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ long read_longlong ();
+
+ /** Reads an unsigned IDL long long from the input stream.
+ * @return the unsigned long long read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ long read_ulonglong ();
+
+ /** Reads an IDL float from the input stream.
+ * @return the float read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ float read_float ();
+
+ /** Reads an IDL double from the input stream.
+ * @return the double read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ double read_double ();
+ // read_longdouble not supported by IDL/Java mapping
+
+ /** Reads an IDL string from the input stream.
+ * @return the string read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ String read_string ();
+
+ /** Reads an IDL wide string from the input stream.
+ * @return the wide string read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ String read_wstring ();
+
+ /** Reads an IDL CORBA::Object from the input stream.
+ * @return the CORBA::Object read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ org.omg.CORBA.Object read_Object ();
+
+ /** Reads an IDL Abstract interface from the input stream.
+ * @return the Abstract interface read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ java.lang.Object read_Abstract ();
+
+ /** Reads an IDL value type from the input stream.
+ * @return the value type read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ java.io.Serializable read_Value ();
+
+ /** Reads an IDL typecode from the input stream.
+ * @return the typecode read.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ org.omg.CORBA.TypeCode read_TypeCode ();
+
+ /** Reads array of IDL Anys from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL booleans from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL characters from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL wide characters from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL octets from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL shorts from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL unsigned shorts from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL longs from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL unsigned longs from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL unsigned long longs from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL long longs from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL floats from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length);
+
+ /** Reads array of IDL doubles from offset for length elements from the
+ * input stream.
+ * @param seq The out parameter holder for the array to be read.
+ * @param offset The index into seq of the first element to read from the
+ * input stream.
+ * @param length The number of elements to read from the input stream.
+ * @throws org.omg.CORBA.MARSHAL
+ * If an inconsistency is detected, including not having registered
+ * a streaming policy, then the standard system exception MARSHAL is raised.
+ */
+ void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length);
+} // interface DataInputStream
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java
new file mode 100644
index 0000000..c6ea054
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java
@@ -0,0 +1,283 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/** Defines the methods used to write primitive data types to output streams
+* for marshalling custom value types. This interface is used by user
+* written custom marshalling code for custom value types.
+* @see org.omg.CORBA.DataInputStream
+* @see org.omg.CORBA.CustomMarshal
+*/
+public interface DataOutputStream extends org.omg.CORBA.portable.ValueBase
+{
+ /**
+ * Writes the Any value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_any (org.omg.CORBA.Any value);
+
+ /**
+ * Writes the boolean value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_boolean (boolean value);
+
+ /**
+ * Writes the IDL character value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_char (char value);
+
+ /**
+ * Writes the IDL wide character value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_wchar (char value);
+
+ /**
+ * Writes the IDL octet value (represented as a Java byte) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_octet (byte value);
+
+ /**
+ * Writes the IDL short value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_short (short value);
+
+ /**
+ * Writes the IDL unsigned short value (represented as a Java short
+ * value) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_ushort (short value);
+
+ /**
+ * Writes the IDL long value (represented as a Java int) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_long (int value);
+
+ /**
+ * Writes the IDL unsigned long value (represented as a Java int) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_ulong (int value);
+
+ /**
+ * Writes the IDL long long value (represented as a Java long) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_longlong (long value);
+
+ /**
+ * Writes the IDL unsigned long long value (represented as a Java long)
+ * to the output stream.
+ * @param value The value to be written.
+ */
+ void write_ulonglong (long value);
+
+ /**
+ * Writes the IDL float value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_float (float value);
+
+ /**
+ * Writes the IDL double value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_double (double value);
+
+ // write_longdouble not supported by IDL/Java mapping
+
+ /**
+ * Writes the IDL string value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_string (String value);
+
+ /**
+ * Writes the IDL wide string value (represented as a Java String) to the output stream.
+ * @param value The value to be written.
+ */
+ void write_wstring (String value);
+
+ /**
+ * Writes the IDL CORBA::Object value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_Object (org.omg.CORBA.Object value);
+
+ /**
+ * Writes the IDL Abstract interface type to the output stream.
+ * @param value The value to be written.
+ */
+ void write_Abstract (java.lang.Object value);
+
+ /**
+ * Writes the IDL value type value to the output stream.
+ * @param value The value to be written.
+ */
+ void write_Value (java.io.Serializable value);
+
+ /**
+ * Writes the typecode to the output stream.
+ * @param value The value to be written.
+ */
+ void write_TypeCode (org.omg.CORBA.TypeCode value);
+
+ /**
+ * Writes the array of IDL Anys from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_any_array (org.omg.CORBA.Any[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL booleans from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_boolean_array (boolean[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL characters from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_char_array (char[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL wide characters from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_wchar_array (char[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL octets from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_octet_array (byte[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL shorts from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_short_array (short[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL unsigned shorts (represented as Java shorts)
+ * from offset for length elements to the output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_ushort_array (short[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL longs from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_long_array (int[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL unsigned longs (represented as Java ints)
+ * from offset for length elements to the output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_ulong_array (int[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL unsigned long longs (represented as Java longs)
+ * from offset for length elements to the output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_ulonglong_array (long[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL long longs from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_longlong_array (long[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL floats from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_float_array (float[] seq, int offset, int length);
+
+ /**
+ * Writes the array of IDL doubles from offset for length elements to the
+ * output stream.
+ * @param seq The array to be written.
+ * @param offset The index into seq of the first element to write to the
+ * output stream.
+ * @param length The number of elements to write to the output stream.
+ */
+ void write_double_array (double[] seq, int offset, int length);
+} // interface DataOutputStream
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java
new file mode 100644
index 0000000..5abed1d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * File: ./org/omg/CORBA/DefinitionKind.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+* The class that provides the constants used to identify the type of an
+* Interface Repository object. This class contains two kinds of constants,
+* those that are an <code>int</code> and those that are an instance of the class
+* <code>DefinitionKind</code>. This class provides the method
+* <code>from_int</code>, which given one
+* of the <code>int</code> constants, creates the corresponding
+* <code>DefinitionKind</code> instance. It also provides the method
+* <code>value</code>, which returns the <code>int</code> constant that
+* is the value for a <code>DefinitionKind</code> instance.
+*
+* @see IRObject
+*/
+
+public class DefinitionKind implements org.omg.CORBA.portable.IDLEntity {
+
+/**
+ * The constant that indicates that an Interface Repository object
+ * does not have a definition kind.
+ */
+ public static final int _dk_none = 0,
+
+/**
+ * The constant that indicates that the type of an Interface Repository object
+ * may be any type.
+ */
+ _dk_all = 1,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * attribute.
+ */
+ _dk_Attribute = 2,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * constant.
+ */
+ _dk_Constant = 3,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * exception.
+ */
+
+ _dk_Exception = 4,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * interface.
+ */
+
+ _dk_Interface = 5,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * module.
+ */
+
+ _dk_Module = 6,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * operation.
+ */
+
+ _dk_Operation = 7,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Typedef.
+ */
+
+ _dk_Typedef = 8,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * Alias.
+ */
+
+ _dk_Alias = 9,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Struct.
+ */
+
+ _dk_Struct = 10,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Union.
+ */
+
+ _dk_Union = 11,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * Enum.
+ */
+
+ _dk_Enum = 12,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Primitive.
+ */
+
+ _dk_Primitive = 13,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * String.
+ */
+
+ _dk_String = 14,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Sequence.
+ */
+
+ _dk_Sequence = 15,
+
+/**
+ * The constant that indicates that an Interface Repository object is an
+ * Array.
+ */
+
+ _dk_Array = 16,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Repository.
+ */
+
+ _dk_Repository = 17,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Wstring.
+ */
+
+ _dk_Wstring = 18,
+
+/**
+ * The constant that indicates that an Interface Repository object is of type
+ * Fixed.
+ */
+
+ _dk_Fixed = 19,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * Value.
+ */
+
+ _dk_Value = 20,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * ValueBox.
+ */
+
+ _dk_ValueBox = 21,
+
+/**
+ * The constant that indicates that an Interface Repository object is a
+ * ValueMember.
+ */
+
+ _dk_ValueMember = 22,
+
+/**
+ * The constant that indicates that an Interface Repository object is of type
+ * Native.
+ */
+
+ _dk_Native = 23,
+
+/**
+ * The constant that indicates that an Interface Repository object
+ * is representing an abstract interface.
+ */
+ _dk_AbstractInterface = 24;
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object has no definition kind.
+ */
+
+ public static final DefinitionKind dk_none = new DefinitionKind(_dk_none);
+
+ /**
+ * The wildcard <code>DefinitionKind</code> constant, useful
+ * in all occasions where any
+ * <code>DefinitionKind</code> is appropriate. The Container's
+ * <code>contents</code> method
+ * makes use of this constant to return all contained definitions of any kind.
+ */
+
+ public static final DefinitionKind dk_all = new DefinitionKind(_dk_all);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Attribute.
+ */
+
+ public static final DefinitionKind dk_Attribute = new DefinitionKind(_dk_Attribute);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a constant.
+ */
+
+ public static final DefinitionKind dk_Constant = new DefinitionKind(_dk_Constant);
+
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Exception.
+ */
+
+ public static final DefinitionKind dk_Exception = new DefinitionKind(_dk_Exception);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Interface.
+ */
+
+ public static final DefinitionKind dk_Interface = new DefinitionKind(_dk_Interface);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Module.
+ */
+
+ public static final DefinitionKind dk_Module = new DefinitionKind(_dk_Module);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Operation.
+ */
+
+ public static final DefinitionKind dk_Operation = new DefinitionKind(_dk_Operation);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Typedef.
+ */
+
+ public static final DefinitionKind dk_Typedef = new DefinitionKind(_dk_Typedef);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Alias.
+ */
+
+ public static final DefinitionKind dk_Alias = new DefinitionKind(_dk_Alias);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Struct.
+ */
+
+ public static final DefinitionKind dk_Struct = new DefinitionKind(_dk_Struct);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Union.
+ */
+
+ public static final DefinitionKind dk_Union = new DefinitionKind(_dk_Union);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Enum.
+ */
+
+ public static final DefinitionKind dk_Enum = new DefinitionKind(_dk_Enum);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Primitive.
+ */
+
+ public static final DefinitionKind dk_Primitive = new DefinitionKind(_dk_Primitive);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a String.
+ */
+
+ public static final DefinitionKind dk_String = new DefinitionKind(_dk_String);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Sequence.
+ */
+
+ public static final DefinitionKind dk_Sequence = new DefinitionKind(_dk_Sequence);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is an Array.
+ */
+
+ public static final DefinitionKind dk_Array = new DefinitionKind(_dk_Array);
+
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Repository.
+ */
+
+ public static final DefinitionKind dk_Repository = new DefinitionKind(_dk_Repository);
+
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Wstring.
+ */
+
+ public static final DefinitionKind dk_Wstring = new DefinitionKind(_dk_Wstring);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Fixed value.
+ */
+
+ public static final DefinitionKind dk_Fixed = new DefinitionKind(_dk_Fixed);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Value.
+ */
+
+ public static final DefinitionKind dk_Value = new DefinitionKind(_dk_Value);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a ValueBox.
+ */
+
+ public static final DefinitionKind dk_ValueBox = new DefinitionKind(_dk_ValueBox);
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a ValueMember.
+ */
+
+ public static final DefinitionKind dk_ValueMember = new DefinitionKind(_dk_ValueMember);
+
+
+/**
+ * The static instance of <code>DefinitionKind</code> indicating that an
+ * Interface Repository object is a Native value.
+ */
+
+ public static final DefinitionKind dk_Native = new DefinitionKind(_dk_Native);
+
+
+/**
+* The static instance of <code>DefinitionKind</code> indicating that an
+* Interface Repository object represents an abstract interface.
+*/
+ public static final DefinitionKind dk_AbstractInterface = new DefinitionKind(_dk_AbstractInterface);
+
+
+ /**
+ * Returns the <code>int</code> constant identifying the type of an IR object.
+ * @return the <code>int</code> constant from the class
+ * <code>DefinitionKind</code> that is the value of this
+ * <code>DefinitionKind</code> instance
+ */
+
+ public int value() {
+ return _value;
+ }
+
+
+ /**
+ * Creates a <code>DefinitionKind</code> instance corresponding to the given code
+.
+ * @param i one of the <code>int</code> constants from the class
+ * <code>DefinitionKind</code>
+ * @return the <code>DefinitionKind</code> instance corresponding
+ * to the given code
+ * @throws org.omg.CORBA.BAD_PARAM if the given parameter is not
+ one
+ * of the <code>int</code> constants from the class
+ * <code>DefinitionKind</code>
+ */
+
+ public static DefinitionKind from_int(int i) {
+ switch (i) {
+ case _dk_none:
+ return dk_none;
+ case _dk_all:
+ return dk_all;
+ case _dk_Attribute:
+ return dk_Attribute;
+ case _dk_Constant:
+ return dk_Constant;
+ case _dk_Exception:
+ return dk_Exception;
+ case _dk_Interface:
+ return dk_Interface;
+ case _dk_Module:
+ return dk_Module;
+ case _dk_Operation:
+ return dk_Operation;
+ case _dk_Typedef:
+ return dk_Typedef;
+ case _dk_Alias:
+ return dk_Alias;
+ case _dk_Struct:
+ return dk_Struct;
+ case _dk_Union:
+ return dk_Union;
+ case _dk_Enum:
+ return dk_Enum;
+ case _dk_Primitive:
+ return dk_Primitive;
+ case _dk_String:
+ return dk_String;
+ case _dk_Sequence:
+ return dk_Sequence;
+ case _dk_Array:
+ return dk_Array;
+ case _dk_Repository:
+ return dk_Repository;
+ case _dk_Wstring:
+ return dk_Wstring;
+ case _dk_Fixed:
+ return dk_Fixed;
+ case _dk_Value:
+ return dk_Value;
+ case _dk_ValueBox:
+ return dk_ValueBox;
+ case _dk_ValueMember:
+ return dk_ValueMember;
+ case _dk_Native:
+ return dk_Native;
+ default:
+ throw new org.omg.CORBA.BAD_PARAM();
+ }
+ }
+
+ /**
+ * Constructs a <code>DefinitionKind</code> object with its <code>_value</code>
+ * field initialized with the given value.
+ * @param _value one of the <code>int</code> constants defined in the
+ * class <code>DefinitionKind</code>
+ */
+
+ protected DefinitionKind(int _value){
+ this._value = _value;
+ }
+
+ /**
+ * The field that holds a value for a <code>DefinitionKind</code> object.
+ * @serial
+ */
+
+ private int _value;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java
new file mode 100644
index 0000000..945ceeb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code DefinitionKind}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/DefinitionKindHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ir.idl
+ * 03 June 1999 11:33:43 o'clock GMT+00:00
+ */
+
+abstract public class DefinitionKindHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/DefinitionKind:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.DefinitionKind 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 ());
+ }
+
+ public static org.omg.CORBA.DefinitionKind extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.DefinitionKindHelper.id (), "DefinitionKind", new String[] { "dk_none", "dk_all", "dk_Attribute", "dk_Constant", "dk_Exception", "dk_Interface", "dk_Module", "dk_Operation", "dk_Typedef", "dk_Alias", "dk_Struct", "dk_Union", "dk_Enum", "dk_Primitive", "dk_String", "dk_Sequence", "dk_Array", "dk_Repository", "dk_Wstring", "dk_Fixed", "dk_Value", "dk_ValueBox", "dk_ValueMember", "dk_Native"} );
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.DefinitionKind read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return org.omg.CORBA.DefinitionKind.from_int (istream.read_long ());
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.DefinitionKind value)
+ {
+ ostream.write_long (value.value ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java b/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java
new file mode 100644
index 0000000..2bdc89f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Provides mechanisms for establishing and navigating relationships to
+ * superior and subordinate domains, as well as for creating and accessing
+ * policies. The {@code DomainManager} has associated with it the policy
+ * objects for a particular domain.
+ * The domain manager also records the membership of
+ * the domain and provides the means to add and remove members. The domain
+ * manager is itself a member of a domain, possibly the domain it manages.
+ * The domain manager provides mechanisms for establishing and navigating
+ * relationships to superior and subordinate domains and
+ * creating and accessing policies.
+ */
+
+public interface DomainManager extends DomainManagerOperations,
+ org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity
+{
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java b/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java
new file mode 100644
index 0000000..4324b1b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Provides the {@code DomainManager} with the means to access policies.
+ * <P>
+ * The {@code DomainManager} has associated with it the policy objects for a
+ * particular domain. The domain manager also records the membership of
+ * the domain and provides the means to add and remove members. The domain
+ * manager is itself a member of a domain, possibly the domain it manages.
+ * The domain manager provides mechanisms for establishing and navigating
+ * relationships to superior and subordinate domains and
+ * creating and accessing policies.
+ */
+
+public interface DomainManagerOperations
+{
+ /**
+ * This returns the policy of the specified type for objects in
+ * this domain. The types of policies available are domain specific.
+ * See the CORBA specification for a list of standard ORB policies.
+ *
+ * @param policy_type Type of policy to request
+ */
+ public org.omg.CORBA.Policy get_domain_policy(int policy_type);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java
new file mode 100644
index 0000000..3d1cd73
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Double}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code double}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code double} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code DoubleHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myDoubleHolder} is an instance of {@code DoubleHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myDoubleHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class DoubleHolder implements Streamable {
+
+ /**
+ * The {@code double} value held by this {@code DoubleHolder}
+ * object.
+ */
+
+ public double value;
+
+ /**
+ * Constructs a new {@code DoubleHolder} object with its
+ * {@code value} field initialized to 0.0.
+ */
+ public DoubleHolder() {
+ }
+
+ /**
+ * Constructs a new {@code DoubleHolder} object for the given
+ * {@code double}.
+ * @param initial the {@code double} with which to initialize
+ * the {@code value} field of the new
+ * {@code DoubleHolder} object
+ */
+ public DoubleHolder(double initial) {
+ value = initial;
+ }
+
+ /**
+ * Read a double value from the input stream and store it in the
+ * value member.
+ *
+ * @param input the {@code InputStream} to read from.
+ */
+ public void _read(InputStream input) {
+ value = input.read_double();
+ }
+
+ /**
+ * Write the double value stored in this holder to an
+ * {@code OutputStream}.
+ *
+ * @param output the {@code OutputStream} to write into.
+ */
+ public void _write(OutputStream output) {
+ output.write_double(value);
+ }
+
+ /**
+ * Return the {@code TypeCode} of this holder object.
+ *
+ * @return the {@code TypeCode} object.
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_double);
+ }
+
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java
new file mode 100644
index 0000000..5c63c49
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code DoubleSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/DoubleSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:37 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class DoubleSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/DoubleSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, double[] 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 ());
+ }
+
+ public static double[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_double);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.DoubleSeqHelper.id (), "DoubleSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static double[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ double value[] = null;
+ int _len0 = istream.read_long ();
+ value = new double[_len0];
+ istream.read_double_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, double[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_double_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java
new file mode 100644
index 0000000..d71651c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code DoubleSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/DoubleSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:37 o'clock GMT+00:00
+ */
+
+public final class DoubleSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public double value[] = null;
+
+ public DoubleSeqHolder ()
+ {
+ }
+
+ public DoubleSeqHolder (double[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.DoubleSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.DoubleSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.DoubleSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAny.java b/src/java.corba/share/classes/org/omg/CORBA/DynAny.java
new file mode 100644
index 0000000..0d45b25
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAny.java
@@ -0,0 +1,732 @@
+/*
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+
+/**
+ * Enables {@code org.omg.CORBA.Any} values to be dynamically
+ * interpreted (traversed) and
+ * constructed. A {@code DynAny} object is associated with a data value
+ * which may correspond to a copy of the value inserted into an {@code Any}.
+ * The {@code DynAny} APIs enable traversal of the data value associated with an
+ * Any at runtime and extraction of the primitive constituents of the
+ * data value.
+ * @deprecated Use the new <a href="../DynamicAny/DynAny.html">DynAny</a> instead
+ */
+@Deprecated
+public interface DynAny extends org.omg.CORBA.Object
+{
+ /**
+ * Returns the {@code TypeCode} of the object inserted into
+ * this {@code DynAny}.
+ *
+ * @return the {@code TypeCode} object.
+ */
+ public org.omg.CORBA.TypeCode type() ;
+
+ /**
+ * Copy the contents from one Dynamic Any into another.
+ *
+ * @param dyn_any the {@code DynAny} object whose contents
+ * are assigned to this {@code DynAny}.
+ * @throws org.omg.CORBA.DynAnyPackage.Invalid if the source
+ * {@code DynAny} is invalid
+ */
+ public void assign(org.omg.CORBA.DynAny dyn_any)
+ throws org.omg.CORBA.DynAnyPackage.Invalid;
+
+ /**
+ * Make a {@code DynAny} object from an {@code Any}
+ * object.
+ *
+ * @param value the {@code Any} object.
+ * @throws org.omg.CORBA.DynAnyPackage.Invalid if the source
+ * {@code Any} object is empty or bad
+ */
+ public void from_any(org.omg.CORBA.Any value)
+ throws org.omg.CORBA.DynAnyPackage.Invalid;
+
+ /**
+ * Convert a {@code DynAny} object to an {@code Any}
+ * object.
+ *
+ * @return the {@code Any} object.
+ * @throws org.omg.CORBA.DynAnyPackage.Invalid if this
+ * {@code DynAny} is empty or bad.
+ * created or does not contain a meaningful value
+ */
+ public org.omg.CORBA.Any to_any()
+ throws org.omg.CORBA.DynAnyPackage.Invalid;
+
+ /**
+ * Destroys this {@code DynAny} object and frees any resources
+ * used to represent the data value associated with it. This method
+ * also destroys all {@code DynAny} objects obtained from it.
+ * <p>
+ * Destruction of {@code DynAny} objects should be handled with
+ * care, taking into account issues dealing with the representation of
+ * data values associated with {@code DynAny} objects. A programmer
+ * who wants to destroy a {@code DynAny} object but still be able
+ * to manipulate some component of the data value associated with it,
+ * should first create a {@code DynAny} object for the component
+ * and then make a copy of the created {@code DynAny} object.
+ */
+ public void destroy() ;
+
+ /**
+ * Clones this {@code DynAny} object.
+ *
+ * @return a copy of this {@code DynAny} object
+ */
+ public org.omg.CORBA.DynAny copy() ;
+
+ /**
+ * Inserts the given {@code boolean} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code boolean} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_boolean(boolean value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code byte} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code byte} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_octet(byte value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code char} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code char} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_char(char value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code short} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code short} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_short(short value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code short} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code short} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_ushort(short value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code int} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code int} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_long(int value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code int} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code int} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_ulong(int value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code float} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code float} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_float(float value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code double} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code double} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_double(double value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code String} object as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code String} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_string(String value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code org.omg.CORBA.Object} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code org.omg.CORBA.Object} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_reference(org.omg.CORBA.Object value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code org.omg.CORBA.TypeCode} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code org.omg.CORBA.TypeCode} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_typecode(org.omg.CORBA.TypeCode value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code long} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code long} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_longlong(long value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code long} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code long} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_ulonglong(long value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code char} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code char} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_wchar(char value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code String} as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code String} to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_wstring(String value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Inserts the given {@code org.omg.CORBA.Any} object as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code org.omg.CORBA.Any} object to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_any(org.omg.CORBA.Any value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ // orbos 98-01-18: Objects By Value -- begin
+
+ /**
+ * Inserts the given {@code java.io.Serializable} object as the value for this
+ * {@code DynAny} object.
+ *
+ * <p> If this method is called on a constructed {@code DynAny}
+ * object, it initializes the next component of the constructed data
+ * value associated with this {@code DynAny} object.
+ *
+ * @param value the {@code java.io.Serializable} object to insert into this
+ * {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue
+ * if the value inserted is not consistent with the type
+ * of the accessed component in this {@code DynAny} object
+ */
+ public void insert_val(java.io.Serializable value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+
+ /**
+ * Retrieves the {@code java.io.Serializable} object contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code java.io.Serializable} object that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code java.io.Serializable} object
+ */
+ public java.io.Serializable get_val()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+ // orbos 98-01-18: Objects By Value -- end
+
+ /**
+ * Retrieves the {@code boolean} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code boolean} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code boolean}
+ */
+ public boolean get_boolean()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code byte} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code byte} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code byte}
+ */
+ public byte get_octet()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+ /**
+ * Retrieves the {@code char} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code char} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code char}
+ */
+ public char get_char()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code short} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code short} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code short}
+ */
+ public short get_short()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code short} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code short} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code short}
+ */
+ public short get_ushort()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code int} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code int} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code int}
+ */
+ public int get_long()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code int} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code int} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code int}
+ */
+ public int get_ulong()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code float} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code float} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code float}
+ */
+ public float get_float()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code double} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code double} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code double}
+ */
+ public double get_double()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code String} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code String} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code String}
+ */
+ public String get_string()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code org.omg.CORBA.Other} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code org.omg.CORBA.Other} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for an {@code org.omg.CORBA.Other}
+ */
+ public org.omg.CORBA.Object get_reference()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code org.omg.CORBA.TypeCode} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code org.omg.CORBA.TypeCode} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code org.omg.CORBA.TypeCode}
+ */
+ public org.omg.CORBA.TypeCode get_typecode()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code long} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code long} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code long}
+ */
+ public long get_longlong()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code long} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code long} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code long}
+ */
+ public long get_ulonglong()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code char} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code char} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code char}
+ */
+ public char get_wchar()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code String} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code String} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for a {@code String}
+ */
+ public String get_wstring()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+
+ /**
+ * Retrieves the {@code org.omg.CORBA.Any} contained
+ * in this {@code DynAny} object.
+ *
+ * @return the {@code org.omg.CORBA.Any} that is the
+ * value for this {@code DynAny} object
+ * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch
+ * if the type code of the accessed component in this
+ * {@code DynAny} object is not equivalent to
+ * the type code for an {@code org.omg.CORBA.Any}
+ */
+ public org.omg.CORBA.Any get_any()
+ throws org.omg.CORBA.DynAnyPackage.TypeMismatch;
+
+ /**
+ * Returns a {@code DynAny} object reference that can
+ * be used to get/set the value of the component currently accessed.
+ * The appropriate {@code insert} method
+ * can be called on the resulting {@code DynAny} object
+ * to initialize the component.
+ * The appropriate {@code get} method
+ * can be called on the resulting {@code DynAny} object
+ * to extract the value of the component.
+ *
+ * @return a {@code DynAny} object reference that can be
+ * used to retrieve or set the value of the component currently
+ * accessed
+ */
+ public org.omg.CORBA.DynAny current_component() ;
+
+ /**
+ * Moves to the next component of this {@code DynAny} object.
+ * This method is used for iterating through the components of
+ * a constructed type, effectively moving a pointer from one
+ * component to the next. The pointer starts out on the first
+ * component when a {@code DynAny} object is created.
+ *
+ * @return {@code true} if the pointer points to a component;
+ * {@code false} if there are no more components or this
+ * {@code DynAny} is associated with a basic type rather than
+ * a constructed type
+ */
+ public boolean next() ;
+
+ /**
+ * Moves the internal pointer to the given index. Logically, this method
+ * sets a new offset for this pointer.
+ *
+ * @param index an {@code int} indicating the position to which
+ * the pointer should move. The first position is 0.
+ * @return {@code true} if the pointer points to a component;
+ * {@code false} if there is no component at the designated
+ * index. If this {@code DynAny} object is associated with a
+ * basic type, this method returns {@code false} for any index
+ * other than 0.
+ */
+ public boolean seek(int index) ;
+
+ /**
+ * Moves the internal pointer to the first component.
+ */
+ public void rewind() ;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java
new file mode 100644
index 0000000..9b87ab5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.DynAnyPackage;
+
+/**
+ * Invalid is thrown by dynamic any operations when a bad
+ * <code>DynAny</code> or <code>Any</code> is passed as a parameter.
+ */
+public final class Invalid
+ extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs an <code>Invalid</code> object.
+ */
+ public Invalid() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>Invalid</code> object.
+ * @param reason a <code>String</code> giving more information
+ * regarding the bad parameter passed to a dynamic any operation.
+ */
+ public Invalid(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java
new file mode 100644
index 0000000..399eab5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.DynAnyPackage;
+
+/**
+ * The InvalidSeq exception is thrown by all operations on dynamic
+ * anys that take a sequence (Java array) as an argument, when that
+ * sequence is invalid.
+ */
+public final class InvalidSeq
+ extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs an <code>InvalidSeq</code> object.
+ */
+ public InvalidSeq() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>InvalidSeq</code> object.
+ * @param reason a <code>String</code> giving more information
+ * regarding the exception.
+ */
+ public InvalidSeq(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java
new file mode 100644
index 0000000..ea42c83
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.DynAnyPackage;
+
+/**
+ * @author unattributed
+ *
+ * Dynamic Any insert operations raise the <code>InvalidValue</code>
+ * exception if the value inserted is not consistent with the type
+ * of the accessed component in the <code>DynAny</code> object.
+ */
+public final class InvalidValue
+ extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs an <code>InvalidValue</code> object.
+ */
+ public InvalidValue() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>InvalidValue</code> object.
+ * @param reason a <code>String</code> giving more information
+ * regarding the exception.
+ */
+ public InvalidValue(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java
new file mode 100644
index 0000000..698be59
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.DynAnyPackage;
+
+/**
+ * TypeMismatch is thrown by dynamic any accessor methods when
+ * type of the actual contents do not match what is trying to be
+ * accessed.
+ */
+public final class TypeMismatch
+ extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs a <code>TypeMismatch</code> object.
+ */
+ public TypeMismatch() {
+ super();
+ }
+
+ /**
+ * Constructs a <code>TypeMismatch</code> object.
+ * @param reason a <code>String</code> giving more information
+ * regarding the exception.
+ */
+ public TypeMismatch(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html
new file mode 100644
index 0000000..0908e64
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html
@@ -0,0 +1,42 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+-->
+</head>
+<body bgcolor="white">
+
+Provides the exceptions used with the <code>DynAny</code> interface
+(<code>InvalidValue</code>,
+<code>Invalid</code>, <code>InvalidSeq</code>, and
+<code>TypeMismatch</code>).
+
+
+
+@since JDK1.2
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynArray.java b/src/java.corba/share/classes/org/omg/CORBA/DynArray.java
new file mode 100644
index 0000000..83236a0
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynArray.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+
+/**
+ * Represents a {@code DynAny} object associated with an array.
+ *
+ * @deprecated Use the new <a href="../DynamicAny/DynArray.html">DynArray</a> instead
+ */
+@Deprecated
+public interface DynArray extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+ /**
+ * Returns the value of all the elements of this array.
+ *
+ * @return the array of <code>Any</code> objects that is the value
+ * for this <code>DynArray</code> object
+ * @see #set_elements
+ */
+ public org.omg.CORBA.Any[] get_elements();
+
+ /**
+ * Sets the value of this
+ * <code>DynArray</code> object to the given array.
+ *
+ * @param value the array of <code>Any</code> objects
+ * @exception org.omg.CORBA.DynAnyPackage.InvalidSeq if the
+ * sequence is bad
+ * @see #get_elements
+ */
+ public void set_elements(org.omg.CORBA.Any[] value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidSeq;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java b/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java
new file mode 100644
index 0000000..d98957c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * Represents a {@code DynAny} object associated with an IDL enum.
+ *
+ * @deprecated Use the new <a href="../DynamicAny/DynEnum.html">DynEnum</a> instead
+ */
+@Deprecated
+public interface DynEnum extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+ /**
+ * Return the value of the IDL enum stored in this
+ * {@code DynEnum} as a string.
+ *
+ * @return the stringified value.
+ */
+ public String value_as_string();
+
+ /**
+ * Set a particular enum in this {@code DynEnum}.
+ *
+ * @param arg the string corresponding to the value.
+ */
+ public void value_as_string(String arg);
+
+ /**
+ * Return the value of the IDL enum as a Java int.
+ *
+ * @return the integer value.
+ */
+ public int value_as_ulong();
+
+ /**
+ * Set the value of the IDL enum.
+ *
+ * @param arg the int value of the enum.
+ */
+ public void value_as_ulong(int arg);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java b/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java
new file mode 100644
index 0000000..7cf872e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * Represents a <code>DynAny</code> object that is associated
+ * with an IDL fixed type.
+ * @deprecated Use the new <a href="../DynamicAny/DynFixed.html">DynFixed</a> instead
+ */
+@Deprecated
+public interface DynFixed extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+ /**
+ * Returns the value of the fixed type represented in this
+ * <code>DynFixed</code> object.
+ *
+ * @return the value as a byte array
+ * @see #set_value
+ */
+ public byte[] get_value();
+
+ /**
+ * Sets the given fixed type instance as the value for this
+ * <code>DynFixed</code> object.
+ *
+ * @param val the value of the fixed type as a byte array
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidValue if the given
+ * argument is bad
+ * @see #get_value
+ */
+ public void set_value(byte[] val)
+ throws org.omg.CORBA.DynAnyPackage.InvalidValue;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java b/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java
new file mode 100644
index 0000000..c536183
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * The representation of a <code>DynAny</code> object that is associated
+ * with an IDL sequence.
+ * @deprecated Use the new <a href="../DynamicAny/DynSequence.html">DynSequence</a> instead
+ */
+@Deprecated
+public interface DynSequence extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+
+ /**
+ * Returns the length of the sequence represented by this
+ * <code>DynFixed</code> object.
+ *
+ * @return the length of the sequence
+ */
+ public int length();
+
+ /**
+ * Sets the length of the sequence represented by this
+ * <code>DynFixed</code> object to the given argument.
+ *
+ * @param arg the length of the sequence
+ */
+ public void length(int arg);
+
+ /**
+ * Returns the value of every element in this sequence.
+ *
+ * @return an array of <code>Any</code> objects containing the values in
+ * the sequence
+ * @see #set_elements
+ */
+ public org.omg.CORBA.Any[] get_elements();
+
+ /**
+ * Sets the values of all elements in this sequence with the given
+ * array.
+ *
+ * @param value the array of <code>Any</code> objects to be set
+ * @exception org.omg.CORBA.DynAnyPackage.InvalidSeq if the array
+ * of values is bad
+ * @see #get_elements
+ */
+ public void set_elements(org.omg.CORBA.Any[] value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidSeq;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java b/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java
new file mode 100644
index 0000000..448f158
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * The representation of a <code>DynAny</code> object that is associated
+ * with an IDL struct.
+ * @deprecated Use the new <a href="../DynamicAny/DynStruct.html">DynStruct</a> instead
+ */
+@Deprecated
+public interface DynStruct extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+ /**
+ * During a traversal, returns the name of the current member.
+ *
+ * @return the string name of the current member
+ */
+ public String current_member_name();
+
+ /**
+ * Returns the <code>TCKind</code> object that describes the kind of
+ * the current member.
+ *
+ * @return the <code>TCKind</code> object that describes the current member
+ */
+ public org.omg.CORBA.TCKind current_member_kind();
+
+ /**
+ * Returns an array containing all the members of the stored struct.
+ *
+ * @return the array of name-value pairs
+ * @see #set_members
+ */
+ public org.omg.CORBA.NameValuePair[] get_members();
+
+ /**
+ * Set the members of the struct.
+ *
+ * @param value the array of name-value pairs.
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidSeq if the given argument
+ * is invalid
+ * @see #get_members
+ */
+ public void set_members(org.omg.CORBA.NameValuePair[] value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidSeq;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java b/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java
new file mode 100644
index 0000000..6ce271d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * The <code>DynUnion</code> interface represents a <code>DynAny</code> object
+ * that is associated with an IDL union.
+ * Union values can be traversed using the operations defined in <code>DynAny</code>.
+ * The first component in the union corresponds to the discriminator;
+ * the second corresponds to the actual value of the union.
+ * Calling the method <code>next()</code> twice allows you to access both components.
+ * @deprecated Use the new <a href="../DynamicAny/DynUnion.html">DynUnion</a> instead
+ */
+@Deprecated
+public interface DynUnion extends org.omg.CORBA.Object, org.omg.CORBA.DynAny
+{
+ /**
+ * Determines whether the discriminator associated with this union has been assigned
+ * a valid default value.
+ * @return <code>true</code> if the discriminator has a default value;
+ * <code>false</code> otherwise
+ */
+ public boolean set_as_default();
+
+ /**
+ * Determines whether the discriminator associated with this union gets assigned
+ * a valid default value.
+ * @param arg <code>true</code> if the discriminator gets assigned a default value
+ */
+ public void set_as_default(boolean arg);
+
+ /**
+ * Returns a DynAny object reference that must be narrowed to the type
+ * of the discriminator in order to insert/get the discriminator value.
+ * @return a <code>DynAny</code> object reference representing the discriminator value
+ */
+ public org.omg.CORBA.DynAny discriminator();
+
+ /**
+ * Returns the TCKind object associated with the discriminator of this union.
+ * @return the <code>TCKind</code> object associated with the discriminator of this union
+ */
+ public org.omg.CORBA.TCKind discriminator_kind();
+
+ /**
+ * Returns a DynAny object reference that is used in order to insert/get
+ * a member of this union.
+ * @return the <code>DynAny</code> object representing a member of this union
+ */
+ public org.omg.CORBA.DynAny member();
+
+ /**
+ * Allows for the inspection of the name of this union member
+ * without checking the value of the discriminator.
+ * @return the name of this union member
+ */
+ public String member_name();
+
+ /**
+ * Allows for the assignment of the name of this union member.
+ * @param arg the new name of this union member
+ */
+ public void member_name(String arg);
+
+ /**
+ * Returns the TCKind associated with the member of this union.
+ * @return the <code>TCKind</code> object associated with the member of this union
+ */
+ public org.omg.CORBA.TCKind member_kind();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynValue.java b/src/java.corba/share/classes/org/omg/CORBA/DynValue.java
new file mode 100644
index 0000000..40972ae
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynValue.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The representation of a <code>DynAny</code> object that is associated
+ * with an IDL value type.
+ * @deprecated Use the new <a href="../DynamicAny/DynValue.html">DynValue</a> instead
+ */
+@Deprecated
+public interface DynValue extends org.omg.CORBA.Object, org.omg.CORBA.DynAny {
+
+ /**
+ * Returns the name of the current member while traversing a
+ * <code>DynAny</code> object that represents a Value object.
+ *
+ * @return the name of the current member
+ */
+ String current_member_name();
+
+ /**
+ * Returns the <code>TCKind</code> object that describes the current member.
+ *
+ * @return the <code>TCKind</code> object corresponding to the current
+ * member
+ */
+ TCKind current_member_kind();
+
+ /**
+ * Returns an array containing all the members of the value object
+ * stored in this <code>DynValue</code>.
+ *
+ * @return an array of name-value pairs.
+ * @see #set_members
+ */
+ org.omg.CORBA.NameValuePair[] get_members();
+
+ /**
+ * Sets the members of the value object this <code>DynValue</code>
+ * object represents to the given array of <code>NameValuePair</code>
+ * objects.
+ *
+ * @param value the array of name-value pairs to be set
+ * @throws org.omg.CORBA.DynAnyPackage.InvalidSeq
+ * if an inconsistent value is part of the given array
+ * @see #get_members
+ */
+ void set_members(NameValuePair[] value)
+ throws org.omg.CORBA.DynAnyPackage.InvalidSeq;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java b/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java
new file mode 100644
index 0000000..b7c547e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.ObjectImpl;
+
+/**
+ * @deprecated org.omg.CORBA.DynamicImplementation
+ */
+@Deprecated
+public class DynamicImplementation extends org.omg.CORBA.portable.ObjectImpl {
+
+ /**
+ * @deprecated Deprecated by Portable Object Adapter
+ */
+ @Deprecated
+ public void invoke(ServerRequest request) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ public String[] _ids() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Environment.java b/src/java.corba/share/classes/org/omg/CORBA/Environment.java
new file mode 100644
index 0000000..77548e5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Environment.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A container (holder) for an exception that is used in <code>Request</code>
+ * operations to make exceptions available to the client. An
+ * <code>Environment</code> object is created with the <code>ORB</code>
+ * method <code>create_environment</code>.
+ *
+ * @since JDK1.2
+ */
+
+public abstract class Environment {
+
+ /**
+ * Retrieves the exception in this <code>Environment</code> object.
+ *
+ * @return the exception in this <code>Environment</code> object
+ */
+
+ public abstract java.lang.Exception exception();
+
+ /**
+ * Inserts the given exception into this <code>Environment</code> object.
+ *
+ * @param except the exception to be set
+ */
+
+ public abstract void exception(java.lang.Exception except);
+
+ /**
+ * Clears this <code>Environment</code> object of its exception.
+ */
+
+ public abstract void clear();
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java b/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java
new file mode 100644
index 0000000..5e7e3f1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object used in <code>Request</code> operations to
+ * describe the exceptions that can be thrown by a method. It maintains a
+ * modifiable list of <code>TypeCode</code>s of the exceptions.
+ * <P>
+ * The following code fragment demonstrates creating
+ * an <code>ExceptionList</code> object:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * org.omg.CORBA.ExceptionList excList = orb.create_exception_list();
+ * </PRE>
+ * The variable <code>excList</code> represents an <code>ExceptionList</code>
+ * object with no <code>TypeCode</code> objects in it.
+ * <P>
+ * To add items to the list, you first create a <code>TypeCode</code> object
+ * for the exception you want to include, using the <code>ORB</code> method
+ * <code>create_exception_tc</code>. Then you use the <code>ExceptionList</code>
+ * method <code>add</code> to add it to the list.
+ * The class <code>ExceptionList</code> has a method for getting
+ * the number of <code>TypeCode</code> objects in the list, and after
+ * items have been added, it is possible to call methods for accessing
+ * or deleting an item at a designated index.
+ *
+ * @since JDK1.2
+ */
+
+public abstract class ExceptionList {
+
+ /**
+ * Retrieves the number of <code>TypeCode</code> objects in this
+ * <code>ExceptionList</code> object.
+ *
+ * @return the number of <code>TypeCode</code> objects in this
+ * <code>ExceptionList</code> object
+ */
+
+ public abstract int count();
+
+ /**
+ * Adds a <code>TypeCode</code> object describing an exception
+ * to this <code>ExceptionList</code> object.
+ *
+ * @param exc the <code>TypeCode</code> object to be added
+ */
+
+ public abstract void add(TypeCode exc);
+
+ /**
+ * Returns the <code>TypeCode</code> object at the given index. The first
+ * item is at index 0.
+ *
+ * @param index the index of the <code>TypeCode</code> object desired.
+ * This must be an <code>int</code> between 0 and the
+ * number of <code>TypeCode</code> objects
+ * minus one, inclusive.
+ * @return the <code>TypeCode</code> object at the given index
+ * @exception org.omg.CORBA.Bounds if the index given is greater than
+ * or equal to the number of <code>TypeCode</code> objects
+ * in this <code>ExceptionList</code> object
+ */
+
+ public abstract TypeCode item(int index)
+ throws org.omg.CORBA.Bounds;
+
+ /**
+ * Removes the <code>TypeCode</code> object at the given index.
+ * Note that the indices of all the <code>TypeCoded</code> objects
+ * following the one deleted are shifted down by one.
+ *
+ * @param index the index of the <code>TypeCode</code> object to be
+ * removed.
+ * This must be an <code>int</code> between 0 and the
+ * number of <code>TypeCode</code> objects
+ * minus one, inclusive.
+ *
+ * @exception org.omg.CORBA.Bounds if the index is greater than
+ * or equal to the number of <code>TypeCode</code> objects
+ * in this <code>ExceptionList</code> object
+ */
+
+ public abstract void remove(int index)
+ throws org.omg.CORBA.Bounds;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java b/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java
new file mode 100644
index 0000000..6196a7c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown
+ * when the ORB failed in an attempt to free dynamic memory, for example
+ * because of heap corruption or memory segments being locked.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class FREE_MEM extends SystemException {
+ /**
+ * Constructs a <code>FREE_MEM</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public FREE_MEM() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>FREE_MEM</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the String containing a detail message
+ */
+ public FREE_MEM(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>FREE_MEM</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public FREE_MEM(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>FREE_MEM</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public FREE_MEM(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java b/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java
new file mode 100644
index 0000000..9e97bca
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code FieldName}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/FieldNameHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * 03 June 1999 11:52:03 o'clock GMT+00:00
+ */
+
+abstract public class FieldNameHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/FieldName:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FieldNameHelper.id (), "FieldName", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ String value = null;
+ value = istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ ostream.write_string (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java
new file mode 100644
index 0000000..c51e902
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+
+/**
+ * The Holder for {@code Fixed}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * FixedHolder is a container class for values of IDL type "fixed",
+ * which is mapped to the Java class java.math.BigDecimal.
+ * It is usually used to store "out" and "inout" IDL method parameters.
+ * If an IDL method signature has a fixed as an "out" or "inout" parameter,
+ * the programmer must pass an instance of FixedHolder as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the contained
+ * value corresponding to the "out" value returned from the server.
+ *
+ */
+public final class FixedHolder implements Streamable {
+ /**
+ * The value held by the FixedHolder
+ */
+ public java.math.BigDecimal value;
+
+ /**
+ * Construct the FixedHolder without initializing the contained value.
+ */
+ public FixedHolder() {
+ }
+
+ /**
+ * Construct the FixedHolder and initialize it with the given value.
+ * @param initial the value used to initialize the FixedHolder
+ */
+ public FixedHolder(java.math.BigDecimal initial) {
+ value = initial;
+ }
+
+ /**
+ * Read a fixed point value from the input stream and store it in
+ * the value member.
+ *
+ * @param input the {@code InputStream} to read from.
+ */
+ public void _read(InputStream input) {
+ value = input.read_fixed();
+ }
+
+ /**
+ * Write the fixed point value stored in this holder to an
+ * {@code OutputStream}.
+ *
+ * @param output the {@code OutputStream} to write into.
+ */
+ public void _write(OutputStream output) {
+ output.write_fixed(value);
+ }
+
+
+ /**
+ * Return the {@code TypeCode} of this holder object.
+ *
+ * @return the {@code TypeCode} object.
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_fixed);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java
new file mode 100644
index 0000000..3199974
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+
+/**
+ * The Holder for {@code Float}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code float}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code float} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code FloatHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myFloatHolder} is an instance of {@code FloatHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myFloatHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class FloatHolder implements Streamable {
+ /**
+ * The {@code float} value held by this {@code FloatHolder}
+ * object.
+ */
+ public float value;
+
+ /**
+ * Constructs a new {@code FloatHolder} object with its
+ * {@code value} field initialized to 0.0.
+ */
+ public FloatHolder() {
+ }
+
+ /**
+ * Constructs a new {@code FloatHolder} object for the given
+ * {@code float}.
+ * @param initial the {@code float} with which to initialize
+ * the {@code value} field of the new
+ * {@code FloatHolder} object
+ */
+ public FloatHolder(float initial) {
+ value = initial;
+ }
+
+ /**
+ * Read a float from an input stream and initialize the value
+ * member with the float value.
+ *
+ * @param input the {@code InputStream} to read from.
+ */
+ public void _read(InputStream input) {
+ value = input.read_float();
+ }
+
+ /**
+ * Write the float value into an output stream.
+ *
+ * @param output the {@code OutputStream} to write into.
+ */
+ public void _write(OutputStream output) {
+ output.write_float(value);
+ }
+
+ /**
+ * Return the {@code TypeCode} of this Streamable.
+ *
+ * @return the {@code TypeCode} object.
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_float);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java
new file mode 100644
index 0000000..a8684b5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code FloatSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/FloatSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:37 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class FloatSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/FloatSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, float[] 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 ());
+ }
+
+ public static float[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_float);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FloatSeqHelper.id (), "FloatSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static float[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ float value[] = null;
+ int _len0 = istream.read_long ();
+ value = new float[_len0];
+ istream.read_float_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, float[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_float_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java
new file mode 100644
index 0000000..645bbb9
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code FloatSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/FloatSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:37 o'clock GMT+00:00
+ */
+
+public final class FloatSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public float value[] = null;
+
+ public FloatSeqHolder ()
+ {
+ }
+
+ public FloatSeqHolder (float[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.FloatSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.FloatSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.FloatSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLType.java b/src/java.corba/share/classes/org/omg/CORBA/IDLType.java
new file mode 100644
index 0000000..dbd4595
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IDLType.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/IDLType.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+/**
+* tempout/org/omg/CORBA/IDLType.java
+* Generated by the IBM IDL-to-Java compiler, version 1.0
+* from ../../Lib/ir.idl
+* Thursday, February 25, 1999 2:11:23 o'clock PM PST
+*/
+
+/**
+ * An abstract interface inherited by all Interface Repository
+ * (IR) objects that represent OMG IDL types. It provides access
+ * to the <code>TypeCode</code> object describing the type and is used in defining the
+ * other interfaces wherever definitions of <code>IDLType</code> must be referenced.
+ */
+
+public interface IDLType extends IDLTypeOperations, org.omg.CORBA.IRObject, org.omg.CORBA.portable.IDLEntity
+{
+} // interface IDLType
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java
new file mode 100644
index 0000000..76bdbe4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code IDLType}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/IDLTypeHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ir.idl
+ * 03 June 1999 11:33:44 o'clock GMT+00:00
+ */
+
+abstract public class IDLTypeHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/IDLType:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.IDLType 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 ());
+ }
+
+ public static org.omg.CORBA.IDLType extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.IDLTypeHelper.id (), "IDLType");
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.IDLType read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return narrow (istream.read_Object (_IDLTypeStub.class));
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.IDLType value)
+ {
+ ostream.write_Object ((org.omg.CORBA.Object) value);
+ }
+
+ public static org.omg.CORBA.IDLType narrow (org.omg.CORBA.Object obj)
+ {
+ if (obj == null)
+ return null;
+ else if (obj instanceof org.omg.CORBA.IDLType)
+ return (org.omg.CORBA.IDLType)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 ();
+ return new org.omg.CORBA._IDLTypeStub (delegate);
+ }
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java
new file mode 100644
index 0000000..ac2eaba
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+ * The interface for {@code IDLType}. For more information on
+ * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations">
+ * "Generated Files: Operations files"</a>.
+ */
+
+/*
+ tempout/org/omg/CORBA/IDLTypeOperations.java
+ Generated by the IBM IDL-to-Java compiler, version 1.0
+ from ../../Lib/ir.idl
+ Thursday, February 25, 1999 2:11:23 o'clock PM PST
+*/
+
+/**
+ * This interface must be implemented by all IDLType objects.
+ * The IDLType is inherited by all IR objects that
+ * represent IDL types, including interfaces, typedefs, and
+ * anonymous types.
+ * @see IDLType
+ * @see IRObject
+ * @see IRObjectOperations
+ */
+
+public interface IDLTypeOperations extends org.omg.CORBA.IRObjectOperations
+{
+ /**
+ * The type attribute describes the type defined by an object
+ * derived from {@code IDLType}.
+ * @return the {@code TypeCode} defined by this object.
+ */
+ org.omg.CORBA.TypeCode type ();
+} // interface IDLTypeOperations
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java b/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java
new file mode 100644
index 0000000..93df8e3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates that an implementation limit was
+ * exceeded in the ORB run time. For example, an ORB may reach
+ * the maximum number of references it can hold simultaneously
+ * in an address space, the size of a parameter may have
+ * exceeded the allowed maximum, or an ORB may impose a maximum
+ * on the number of clients or servers that can run simultaneously.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+
+public final class IMP_LIMIT extends SystemException {
+ /**
+ * Constructs an <code>IMP_LIMIT</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public IMP_LIMIT() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>IMP_LIMIT</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ *
+ * @param s the String containing a detail message
+ */
+ public IMP_LIMIT(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>IMP_LIMIT</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public IMP_LIMIT(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>IMP_LIMIT</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public IMP_LIMIT(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java b/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java
new file mode 100644
index 0000000..9768d98
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown
+ * when an ORB has encountered a failure during its initialization,
+ * such as failure to acquire networking resources or detecting a
+ * configuration error.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INITIALIZE extends SystemException {
+ /**
+ * Constructs an <code>INITIALIZE</code> exception with a default
+ * minor code of 0 and a completion state of
+ * <code>CompletionStatus.COMPLETED_NO</code>.
+ */
+ public INITIALIZE() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INITIALIZE</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of
+ * <code>CompletionStatus.COMPLETED_NO</code>.
+ * @param s the String containing a detail message
+ */
+ public INITIALIZE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INITIALIZE</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * indicating the completion status of the method
+ * that threw this exception
+ */
+ public INITIALIZE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INITIALIZE</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * indicating the completion status of the method
+ * that threw this exception
+ */
+ public INITIALIZE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java b/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java
new file mode 100644
index 0000000..bec91d6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates an internal failure in an ORB, for
+ * example, if an ORB has detected corruption of its internal
+ * data structures.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes meaning of minor codes}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INTERNAL extends SystemException {
+ /**
+ * Constructs an <code>INTERNAL</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public INTERNAL() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INTERNAL</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public INTERNAL(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INTERNAL</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * that indicates the completion status of the method
+ * that threw this exception
+ */
+ public INTERNAL(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INTERNAL</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * that indicates the completion status of the method
+ * that threw this exception
+ */
+ public INTERNAL(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java b/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java
new file mode 100644
index 0000000..ef06d42
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception raised
+ * when an ORB cannot reach the interface
+ * repository, or some other failure relating to the interface repository
+ * is detected.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INTF_REPOS extends SystemException {
+ /**
+ * Constructs an <code>INTF_REPOS</code> exception with a default minor code
+ * of 0 and a completion state of COMPLETED_NO.
+ */
+ public INTF_REPOS() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INTF_REPOS</code> exception with the specified detail.
+ * @param s the String containing a detail message
+ */
+ public INTF_REPOS(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INTF_REPOS</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INTF_REPOS(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INTF_REPOS</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INTF_REPOS(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java b/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java
new file mode 100644
index 0000000..12a13f8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The <code>INVALID_ACTIVITY</code> system exception may be raised on the
+ * Activity or Transaction services' resume methods if a transaction or
+ * Activity is resumed in a context different to that from which it was
+ * suspended. It is also raised when an attempted invocation is made that
+ * is incompatible with the Activity's current state.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class INVALID_ACTIVITY extends SystemException {
+
+ /**
+ * Constructs an <code>INVALID_ACTIVITY</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public INVALID_ACTIVITY() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INVALID_ACTIVITY</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public INVALID_ACTIVITY(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INVALID_ACTIVITY</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public INVALID_ACTIVITY(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>INVALID_ACTIVITY</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public INVALID_ACTIVITY(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java b/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java
new file mode 100644
index 0000000..219c549
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown
+ * when the request carried an invalid transaction context.
+ * For example, this exception could be raised if an error
+ * occurred when trying to register a resource.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ *
+ */
+
+public final class INVALID_TRANSACTION extends SystemException {
+ /**
+ * Constructs an <code>INVALID_TRANSACTION</code> exception with a default minor code
+ * of 0 and a completion state of COMPLETED_NO.
+ */
+ public INVALID_TRANSACTION() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INVALID_TRANSACTION</code> exception
+ * with the specified detail message.
+ * @param s the String containing a detail message
+ */
+ public INVALID_TRANSACTION(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INVALID_TRANSACTION</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INVALID_TRANSACTION(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INVALID_TRANSACTION</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INVALID_TRANSACTION(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java b/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java
new file mode 100644
index 0000000..6ad485c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown
+ * when an invalid flag was passed to an operation (for example, when
+ * creating a DII request).<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INV_FLAG extends SystemException {
+ /**
+ * Constructs an <code>INV_FLAG</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public INV_FLAG() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INV_FLAG</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public INV_FLAG(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INV_FLAG</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * indicating the completion status
+ */
+ public INV_FLAG(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INV_FLAG</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed an instance of <code>CompletionStatus</code>
+ * indicating the completion status
+ */
+ public INV_FLAG(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java b/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java
new file mode 100644
index 0000000..167ff5f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates that an IDL identifier is syntactically
+ * invalid. It may be raised if, for example, an identifier passed
+ * to the interface repository does not conform to IDL identifier
+ * syntax, or if an illegal operation name is used with the DII.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INV_IDENT extends SystemException {
+ /**
+ * Constructs an <code>INV_IDENT</code> exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public INV_IDENT() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>INV_IDENT</code> exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public INV_IDENT(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>INV_IDENT</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed a <code>CompletionStatus</code> object indicating
+ * the completion status
+ */
+ public INV_IDENT(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>INV_IDENT</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed a <code>CompletionStatus</code> object indicating
+ * the completion status
+ */
+ public INV_IDENT(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java b/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java
new file mode 100644
index 0000000..821ffcf
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates that an object reference is internally
+ * malformed. For example, the repository ID may have incorrect
+ * syntax or the addressing information may be invalid. This
+ * exception is raised by ORB::string_to_object if the passed
+ * string does not decode correctly. An ORB may choose to detect
+ * calls via nil references (but is not obliged to do detect them).
+ * {@code INV_OBJREF} is used to indicate this.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class INV_OBJREF extends SystemException {
+ /**
+ * Constructs an {@code INV_OBJREF} exception with a default
+ * minor code of 0 and a completion state of COMPLETED_NO.
+ */
+ public INV_OBJREF() {
+ this("");
+ }
+
+ /**
+ * Constructs an {@code INV_OBJREF} exception with the specified detail
+ * message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public INV_OBJREF(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an {@code INV_OBJREF} exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed a {@code CompletionStatus} instance indicating
+ * the completion status
+ */
+ public INV_OBJREF(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an {@code INV_OBJREF} exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param s the String containing a detail message
+ * @param minor the minor code
+ * @param completed a {@code CompletionStatus} instance indicating
+ * the completion status
+ */
+ public INV_OBJREF(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java
new file mode 100644
index 0000000..5eea852
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Standard exception thrown
+ * when an invocation cannot be made because of an incompatibility between
+ * {@code Policy} overrides that apply to the particular invocation.
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class INV_POLICY extends SystemException {
+ /**
+ * Constructs a {@code INV_POLICY} exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public INV_POLICY() {
+ this("");
+ }
+
+ /**
+ * Constructs a {@code INV_POLICY} exception with the
+ * specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public INV_POLICY(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a {@code INV_POLICY} exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INV_POLICY(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a {@code INV_POLICY} exception with the
+ * specified description message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public INV_POLICY(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IRObject.java b/src/java.corba/share/classes/org/omg/CORBA/IRObject.java
new file mode 100644
index 0000000..b60694a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IRObject.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/IRObject.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+/**
+An IRObject IDL interface represents the most generic interface
+from which all other Interface Repository interfaces are derived,
+even the Repository itself.
+*/
+
+public interface IRObject extends IRObjectOperations, org.omg.CORBA.Object,
+ org.omg.CORBA.portable.IDLEntity
+{
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java b/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java
new file mode 100644
index 0000000..bd38f6b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The interface for {@code IRObject}. For more information on
+ * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations">
+ * "Generated Files: Operations files"</a>.
+ */
+
+/*
+ tempout/org/omg/CORBA/IRObjectOperations.java
+ Generated by the IBM IDL-to-Java compiler, version 1.0
+ from ../../Lib/ir.idl
+ Thursday, February 25, 1999 2:11:21 o'clock PM PST
+*/
+
+/**
+ * This is the Operations interface for the mapping from {@code IRObject}.
+ * Several interfaces are used as base interfaces for objects in
+ * the Interface Repository (IR). These base interfaces are not instantiable.
+ * A common set of operations is used to locate objects within the
+ * Interface Repository. Some of these operations are defined in
+ * the IRObject. All IR objects inherit from the IRObject interface,
+ * which provides an operation for identifying the actual type of
+ * the object. (The IDL base interface IRObject represents the most
+ * generic interface from which all other Interface Repository interfaces
+ * are derived, even the Repository itself.) All java implementations of
+ * IR objects must implement the IRObjectOperations interface.
+ * @see IDLTypeOperations
+ * @see IDLType
+ * @see IRObject
+ */
+public interface IRObjectOperations
+{
+
+ // read interface
+ /**
+ * Returns the {@code DefinitionKind} corresponding to this Interface Repository object.
+ * @return the {@code DefinitionKind} corresponding to this Interface Repository object.
+ */
+ org.omg.CORBA.DefinitionKind def_kind ();
+
+ // write interface
+ /**
+ * Destroys this object. If the object is a Container,
+ * this method is applied to all its contents. If the object contains an IDLType
+ * attribute for an anonymous type, that IDLType is destroyed.
+ * If the object is currently contained in some other object, it is removed.
+ * If the method is invoked on a {@code Repository} or on a {@code PrimitiveDef}
+ * then the {@code BAD_INV_ORDER} exception is raised with minor value 2.
+ * An attempt to destroy an object that would leave the repository in an
+ * incoherent state causes {@code BAD_INV_ORDER} exception to be raised
+ * with the minor code 1.
+ * @exception BAD_INV_ORDER if this method is invoked on a repository or
+ * {@code PrimitiveDef}, or if an attempt to destroy an
+ * object would leave the repository in an incoherent state
+ */
+ void destroy ();
+} // interface IRObjectOperations
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java b/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java
new file mode 100644
index 0000000..665e23c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code Identifier}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/IdentifierHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ir.idl
+ * 03 June 1999 11:33:42 o'clock GMT+00:00
+ */
+
+abstract public class IdentifierHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/Identifier:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ String value = null;
+ value = istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ ostream.write_string (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java b/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java
new file mode 100644
index 0000000..2b43131
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Int}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for an {@code int}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code long} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code IntHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myIntHolder} is an instance of {@code IntHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myIntHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class IntHolder implements Streamable {
+
+ /**
+ * The {@code int} value held by this {@code IntHolder}
+ * object in its {@code value} field.
+ */
+ public int value;
+
+ /**
+ * Constructs a new {@code IntHolder} object with its
+ * {@code value} field initialized to {@code 0}.
+ */
+ public IntHolder() {
+ }
+
+ /**
+ * Constructs a new {@code IntHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code int}.
+ * @param initial the {@code int} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code IntHolder} object
+ */
+ public IntHolder(int initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads unmarshalled data from {@code input} and assigns it to
+ * the {@code value} field in this {@code IntHolder} object.
+ *
+ * @param input the {@code InputStream} object containing CDR
+ * formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = input.read_long();
+ }
+
+ /**
+ * Marshals the value in this {@code IntHolder} object's
+ * {@code value} field to the output stream {@code output}.
+ *
+ * @param output the {@code OutputStream} object that will contain
+ * the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ output.write_long(value);
+ }
+
+ /**
+ * Retrieves the {@code TypeCode} object that corresponds
+ * to the value held in this {@code IntHolder} object's
+ * {@code value} field.
+ *
+ * @return the type code for the value held in this {@code IntHolder}
+ * object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_long);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java b/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java
new file mode 100644
index 0000000..fedbead
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java
@@ -0,0 +1,514 @@
+/*
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+import org.omg.CORBA.portable.*;
+
+
+/**
+ * Used as a base class for implementation of a local IDL interface in the
+ * Java language mapping. It is a class which implements all the operations
+ * in the {@code org.omg.CORBA.Object} interface.
+ * <P>Local interfaces are implemented by using CORBA::LocalObject
+ * to provide implementations of {@code Object} pseudo
+ * operations and any other ORB-specific support mechanisms that are
+ * appropriate for such objects. Object implementation techniques are
+ * inherently language-mapping specific. Therefore, the
+ * {@code LocalObject} type is not defined in IDL, but is specified
+ * in each language mapping.
+ * <P>Methods that do not apply to local objects throw
+ * an {@code org.omg.CORBA.NO_IMPLEMENT} exception with the message,
+ * "This is a locally contrained object." Attempting to use a
+ * {@code LocalObject} to create a DII request results in NO_IMPLEMENT
+ * system exception. Attempting to marshal or stringify a
+ * {@code LocalObject} results in a MARSHAL system exception. Narrowing
+ * and widening references to {@code LocalObjects} must work as for regular
+ * object references.
+ * <P>{@code LocalObject} is to be used as the base class of locally
+ * constrained objects, such as those in the PortableServer module.
+ * The specification here is based on the CORBA Components
+ * Volume I - orbos/99-07-01
+ *
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+
+public class LocalObject implements org.omg.CORBA.Object
+{
+ private static String reason = "This is a locally constrained object.";
+
+ /**
+ * Constructs a default {@code LocalObject} instance.
+ */
+ public LocalObject() {}
+
+ /**
+ * Determines whether the two object references are equivalent,
+ * so far as the ORB can easily determine. Two object references are equivalent
+ * if they are identical. Two distinct object references which in fact refer to
+ * the same object are also equivalent. However, ORBs are not required
+ * to attempt determination of whether two distinct object references
+ * refer to the same object, since such determination could be impractically
+ * expensive.
+ * <P>Default implementation of the org.omg.CORBA.Object method.
+ *
+ * @param that the object reference with which to check for equivalence
+ * @return {@code true} if this object reference is known to be
+ * equivalent to the given object reference.
+ * Note that {@code false} indicates only that the two
+ * object references are distinct, not necessarily that
+ * they reference distinct objects.
+ */
+ public boolean _is_equivalent(org.omg.CORBA.Object that) {
+ return equals(that) ;
+ }
+
+ /**
+ * Always returns {@code false}.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @return {@code false}
+ */
+ public boolean _non_existent() {
+ return false;
+ }
+
+ /**
+ * Returns a hash value that is consistent for the
+ * lifetime of the object, using the given number as the maximum.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param maximum an {@code int} identifying maximum value of
+ * the hashcode
+ * @return this instance's hashcode
+ */
+ public int _hash(int maximum) {
+ return hashCode() ;
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param repository_id a {@code String}
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public boolean _is_a(String repository_id) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @return a duplicate of this {@code LocalObject} instance.
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object _duplicate() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void _release() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param operation a {@code String} giving the name of an operation
+ * to be performed by the request that is returned
+ * @return a {@code Request} object with the given operation
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public Request _request(String operation) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param ctx a {@code Context} object containing
+ * a list of properties
+ * @param operation the {@code String} representing the name of the
+ * method to be invoked
+ * @param arg_list an {@code NVList} containing the actual arguments
+ * to the method being invoked
+ * @param result a {@code NamedValue} object to serve as a
+ * container for the method's return value
+ * @return a new {@code Request} object initialized with the given
+ * arguments
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param ctx a {@code Context} object containing
+ * a list of properties
+ * @param operation the name of the method to be invoked
+ * @param arg_list an {@code NVList} containing the actual arguments
+ * to the method being invoked
+ * @param result a {@code NamedValue} object to serve as a
+ * container for the method's return value
+ * @param exceptions an {@code ExceptionList} object containing a
+ * list of possible exceptions the method can throw
+ * @param contexts a {@code ContextList} object containing a list of
+ * context strings that need to be resolved and sent
+ * with the
+ * {@code Request} instance
+ * @return the new {@code Request} object initialized with the given
+ * arguments
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result,
+ ExceptionList exceptions,
+ ContextList contexts) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object _get_interface()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object _get_interface_def()
+ {
+ // First try to call the delegate implementation class's
+ // "Object get_interface_def(..)" method (will work for JDK1.2
+ // ORBs).
+ // Else call the delegate implementation class's
+ // "InterfaceDef get_interface(..)" method using reflection
+ // (will work for pre-JDK1.2 ORBs).
+
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ * @return the ORB instance that created the Delegate contained in this
+ * {@code ObjectImpl}
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.ORB _orb() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param policy_type an {@code int}
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Policy _get_policy(int policy_type) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.DomainManager[] _get_domain_managers() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param policies an array
+ * @param set_add a flag
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object
+ _set_policy_override(org.omg.CORBA.Policy[] policies,
+ org.omg.CORBA.SetOverrideType set_add) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.<P>
+ * Returns {@code true} for this {@code LocalObject} instance.
+ *
+ * @return {@code true} always
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public boolean _is_local() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param operation a {@code String} indicating which operation
+ * to preinvoke
+ * @param expectedType the class of the type of operation mentioned above
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public ServantObject _servant_preinvoke(String operation,
+ Class expectedType) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @param servant the servant object on which to post-invoke
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void _servant_postinvoke(ServantObject servant) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /*
+ * The following methods were added by orbos/98-04-03: Java to IDL
+ * Mapping. These are used by RMI over IIOP.
+ */
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ * <P>Called by a stub to obtain an OutputStream for
+ * marshaling arguments. The stub must supply the operation name,
+ * and indicate if a response is expected (i.e is this a oneway call).
+ *
+ * @param operation the name of the operation being requested
+ * @param responseExpected {@code true} if a response is expected,
+ * {@code false} if it is a one-way call
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public OutputStream _request(String operation,
+ boolean responseExpected) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ * <P>Called to invoke an operation. The stub provides an
+ * {@code OutputStream} that was previously returned by a
+ * {@code _request()}
+ * call. {@code _invoke} returns an {@code InputStream} which
+ * contains the
+ * marshaled reply. If an exception occurs, {@code _invoke} may throw an
+ * {@code ApplicationException} object which contains an
+ * {@code InputStream} from
+ * which the user exception state may be unmarshaled.
+ *
+ * @param output the {@code OutputStream} to invoke
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @throws ApplicationException If an exception occurs,
+ * {@code _invoke} may throw an
+ * {@code ApplicationException} object which contains
+ * an {@code InputStream} from
+ * which the user exception state may be unmarshaled.
+ * @throws RemarshalException If an exception occurs,
+ * {@code _invoke} may throw an
+ * {@code ApplicationException} object which contains
+ * an {@code InputStream} from
+ * which the user exception state may be unmarshaled.
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public InputStream _invoke(OutputStream output)
+ throws ApplicationException, RemarshalException
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object."
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ * <P>May optionally be called by a stub to release a
+ * reply stream back to the ORB when the unmarshaling has
+ * completed. The stub passes the {@code InputStream} returned by
+ * {@code _invoke()} or
+ * {@code ApplicationException.getInputStream()}.
+ * A null
+ * value may also be passed to {@code _releaseReply}, in which case the
+ * method is a no-op.
+ *
+ * @param input the reply stream back to the ORB or null
+ * @exception NO_IMPLEMENT
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public void _releaseReply(InputStream input) {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+
+ /**
+ * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with
+ * the message "This is a locally constrained object." This method
+ * does not apply to local objects and is therefore not implemented.
+ * This method is the default implementation of the
+ * {@code org.omg.CORBA.Object} method.
+ *
+ * @return NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @exception NO_IMPLEMENT because this is a locally constrained object
+ * and this method does not apply to local objects
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+
+ public boolean validate_connection() {
+ throw new org.omg.CORBA.NO_IMPLEMENT(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java
new file mode 100644
index 0000000..670bec5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Long}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code long}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code long long} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code LongHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myLongHolder} is an instance of {@code LongHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myLongHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class LongHolder implements Streamable {
+
+ /**
+ * The {@code long} value held by this {@code LongHolder}
+ * object.
+ */
+ public long value;
+
+ /**
+ * Constructs a new {@code LongHolder} object with its
+ * {@code value} field initialized to {@code 0}.
+ */
+ public LongHolder() {
+ }
+
+ /**
+ * Constructs a new {@code LongHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code long}.
+ * @param initial the {@code long} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code LongHolder} object
+ */
+ public LongHolder(long initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in the Holder
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = input.read_longlong();
+ }
+
+ /**
+ * Marshals to {@code output} the value in the Holder.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ output.write_longlong(value);
+ }
+
+ /**
+ * Returns the {@code TypeCode} object
+ * corresponding to the value held in the Holder.
+ *
+ * @return the TypeCode of the value held in the holder
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_longlong);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java
new file mode 100644
index 0000000..63b77c4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code LongLongSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/LongLongSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:37 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class LongLongSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/LongLongSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, long[] 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 ());
+ }
+
+ public static long[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_longlong);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.LongLongSeqHelper.id (), "LongLongSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static long[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ long value[] = null;
+ int _len0 = istream.read_long ();
+ value = new long[_len0];
+ istream.read_longlong_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, long[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_longlong_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java
new file mode 100644
index 0000000..abc0123
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code LongLongSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/LongLongSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class LongLongSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public long value[] = null;
+
+ public LongLongSeqHolder ()
+ {
+ }
+
+ public LongLongSeqHolder (long[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.LongLongSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.LongLongSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.LongLongSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java
new file mode 100644
index 0000000..2c9eb2a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code LongSeqHelper}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/LongSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class LongSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/LongSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, int[] 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 ());
+ }
+
+ public static int[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_long);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.LongSeqHelper.id (), "LongSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static int[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ int value[] = null;
+ int _len0 = istream.read_long ();
+ value = new int[_len0];
+ istream.read_long_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, int[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_long_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java
new file mode 100644
index 0000000..6ff9e6a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code LongSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/LongSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class LongSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public int value[] = null;
+
+ public LongSeqHolder ()
+ {
+ }
+
+ public LongSeqHolder (int[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.LongSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.LongSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.LongSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java b/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java
new file mode 100644
index 0000000..adec5d6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A request or reply from the network is structurally invalid.
+ * This error typically indicates a bug in either the client-side
+ * or server-side run time. For example, if a reply from the server
+ * indicates that the message contains 1000 bytes, but the actual
+ * message is shorter or longer than 1000 bytes, the ORB raises
+ * this exception. {@code MARSHAL} can also be caused by using
+ * the DII or DSI incorrectly, for example, if the type of the
+ * actual parameters sent does not agree with IDL signature of an
+ * operation.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * @since JDK1.2
+ */
+
+public final class MARSHAL extends SystemException {
+ /**
+ * Constructs a {@code MARSHAL} exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public MARSHAL() {
+ this("");
+ }
+
+ /**
+ * Constructs a {@code MARSHAL} exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description of the exception
+ */
+ public MARSHAL(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a {@code MARSHAL} exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public MARSHAL(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a {@code MARSHAL} exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public MARSHAL(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java b/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java
new file mode 100644
index 0000000..6beff5b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates that even though the operation that
+ * was invoked exists (it has an IDL definition), no implementation
+ * for that operation exists. {@code NO_IMPLEMENT} can, for
+ * example, be raised by an ORB if a client asks for an object's
+ * type definition from the interface repository, but no interface
+ * repository is provided by the ORB.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * @since JDK1.2
+ */
+
+public final class NO_IMPLEMENT extends SystemException {
+ /**
+ * Constructs a {@code NO_IMPLEMENT} exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public NO_IMPLEMENT() {
+ this("");
+ }
+
+ /**
+ * Constructs a {@code NO_IMPLEMENT} exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description of the exception
+ */
+ public NO_IMPLEMENT(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a {@code NO_IMPLEMENT} exception with the specified
+ * minor code and completion status.
+ * @param minor an {@code int} specifying the minor code
+ * @param completed a {@code CompletionStatus} instance indicating
+ * the completion status
+ */
+ public NO_IMPLEMENT(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a {@code NO_IMPLEMENT} exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor an {@code int} specifying the minor code
+ * @param completed a {@code CompletionStatus} instance indicating
+ * the completion status
+ */
+ public NO_IMPLEMENT(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java b/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java
new file mode 100644
index 0000000..b88a926
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when the ORB run time has run out of memory.
+ * <P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class NO_MEMORY extends SystemException {
+ /**
+ * Constructs a <code>NO_MEMORY</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public NO_MEMORY() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>NO_MEMORY</code> exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public NO_MEMORY(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>NO_MEMORY</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_MEMORY(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>NO_MEMORY</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_MEMORY(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java b/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java
new file mode 100644
index 0000000..a2dadde
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when an invocation failed because the caller
+ * has insufficient privileges.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class NO_PERMISSION extends SystemException {
+ /**
+ * Constructs a <code>NO_PERMISSION</code> exception with a default minor code
+ * of 0 and a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public NO_PERMISSION() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>NO_PERMISSION</code> exception with the specified description,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public NO_PERMISSION(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>NO_PERMISSION</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_PERMISSION(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>NO_PERMISSION</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_PERMISSION(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java b/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java
new file mode 100644
index 0000000..82552ad
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when the ORB has encountered some general resource
+ * limitation. For example, the run time may have reached the maximum
+ * permissible number of open connections.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class NO_RESOURCES extends SystemException {
+ /**
+ * Constructs a <code>NO_RESOURCES</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public NO_RESOURCES() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>NO_RESOURCES</code> exception with the specified description,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public NO_RESOURCES(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>NO_RESOURCES</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_RESOURCES(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>NO_RESOURCES</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_RESOURCES(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java b/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java
new file mode 100644
index 0000000..759986c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception is raised if a client attempts to retrieve the result
+ * of a deferred synchronous call, but the response for the request is
+ * not yet available.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class NO_RESPONSE extends SystemException {
+ /**
+ * Constructs a <code>NO_RESPONSE</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public NO_RESPONSE() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>NO_RESPONSE</code> exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public NO_RESPONSE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>NO_RESPONSE</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_RESPONSE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>NO_RESPONSE</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public NO_RESPONSE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NVList.java b/src/java.corba/share/classes/org/omg/CORBA/NVList.java
new file mode 100644
index 0000000..e60a7e3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NVList.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A modifiable list containing <code>NamedValue</code> objects.
+ * <P>
+ * The class <code>NVList</code> is used as follows:
+ * <UL>
+ * <LI>to describe arguments for a <code>Request</code> object
+ * in the Dynamic Invocation Interface and
+ * the Dynamic Skeleton Interface
+ * <LI>to describe context values in a <code>Context</code> object
+ * </UL>
+ * <P>
+ * Each <code>NamedValue</code> object consists of the following:
+ * <UL>
+ * <LI>a name, which is a <code>String</code> object
+ * <LI>a value, as an <code>Any</code> object
+ * <LI>an argument mode flag
+ * </UL>
+ * <P>
+ * An <code>NVList</code> object
+ * may be created using one of the following
+ * <code>ORB</code> methods:
+ * <OL>
+ * <LI><code>org.omg.CORBA.ORB.create_list</code>
+ * <PRE>
+ * org.omg.CORBA.NVList nv = orb.create_list(3);
+ * </PRE>
+ * The variable <code>nv</code> represents a newly-created
+ * <code>NVList</code> object. The argument is a memory-management
+ * hint to the orb and does not imply the actual length of the list.
+ * If, for example, you want to use an <code>NVList</code> object
+ * in a request, and the method being invoked takes three parameters,
+ * you might optimize by supplying 3 to the method
+ * <code>create_list</code>. Note that the new <code>NVList</code>
+ * will not necessarily have a length of 3; it
+ * could have a length of 2 or 4, for instance.
+ * Note also that you can add any number of
+ * <code>NamedValue</code> objects to this list regardless of
+ * its original length.
+ * <LI><code>org.omg.CORBA.ORB.create_operation_list</code>
+ * <PRE>
+ * org.omg.CORBA.NVList nv = orb.create_operation_list(myOperationDef);
+ * </PRE>
+ * The variable <code>nv</code> represents a newly-created
+ * <code>NVList</code> object that contains descriptions of the
+ * arguments to the method described in the given
+ * <code>OperationDef</code> object.
+ * </OL>
+ * <P>
+ * The methods in the class <code>NVList</code> all deal with
+ * the <code>NamedValue</code> objects in the list.
+ * There are three methods for adding a <code>NamedValue</code> object,
+ * a method for getting the count of <code>NamedValue</code> objects in
+ * the list, a method for retrieving a <code>NamedValue</code> object
+ * at a given index, and a method for removing a <code>NamedValue</code> object
+ * at a given index.
+ *
+ * @see org.omg.CORBA.Request
+ * @see org.omg.CORBA.ServerRequest
+ * @see org.omg.CORBA.NamedValue
+ * @see org.omg.CORBA.Context
+ *
+ * @since JDK1.2
+ */
+
+public abstract class NVList {
+
+ /**
+ * Returns the number of <code>NamedValue</code> objects that have
+ * been added to this <code>NVList</code> object.
+ *
+ * @return an <code>int</code> indicating the number of
+ * <code>NamedValue</code> objects in this <code>NVList</code>.
+ */
+
+ public abstract int count();
+
+ /**
+ * Creates a new <code>NamedValue</code> object initialized with the given flag
+ * and adds it to the end of this <code>NVList</code> object.
+ * The flag can be any one of the argument passing modes:
+ * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or
+ * <code>ARG_INOUT.value</code>.
+ *
+ * @param flags one of the argument mode flags
+ * @return the newly-created <code>NamedValue</code> object
+ */
+
+ public abstract NamedValue add(int flags);
+
+ /**
+ * Creates a new <code>NamedValue</code> object initialized with the
+ * given name and flag,
+ * and adds it to the end of this <code>NVList</code> object.
+ * The flag can be any one of the argument passing modes:
+ * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or
+ * <code>ARG_INOUT.value</code>.
+ *
+ * @param item_name the name for the new <code>NamedValue</code> object
+ * @param flags one of the argument mode flags
+ * @return the newly-created <code>NamedValue</code> object
+ */
+
+ public abstract NamedValue add_item(String item_name, int flags);
+
+ /**
+ * Creates a new <code>NamedValue</code> object initialized with the
+ * given name, value, and flag,
+ * and adds it to the end of this <code>NVList</code> object.
+ *
+ * @param item_name the name for the new <code>NamedValue</code> object
+ * @param val an <code>Any</code> object containing the value
+ * for the new <code>NamedValue</code> object
+ * @param flags one of the following argument passing modes:
+ * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or
+ * <code>ARG_INOUT.value</code>
+ * @return the newly created <code>NamedValue</code> object
+ */
+
+ public abstract NamedValue add_value(String item_name, Any val, int flags);
+
+ /**
+ * Retrieves the <code>NamedValue</code> object at the given index.
+ *
+ * @param index the index of the desired <code>NamedValue</code> object,
+ * which must be between zero and the length of the list
+ * minus one, inclusive. The first item is at index zero.
+ * @return the <code>NamedValue</code> object at the given index
+ * @exception org.omg.CORBA.Bounds if the index is greater than
+ * or equal to number of <code>NamedValue</code> objects
+ */
+
+ public abstract NamedValue item(int index) throws org.omg.CORBA.Bounds;
+
+ /**
+ * Removes the <code>NamedValue</code> object at the given index.
+ * Note that the indices of all <code>NamedValue</code> objects following
+ * the one removed are shifted down by one.
+ *
+ * @param index the index of the <code>NamedValue</code> object to be
+ * removed, which must be between zero and the length
+ * of the list minus one, inclusive.
+ * The first item is at index zero.
+ * @exception org.omg.CORBA.Bounds if the index is greater than
+ * or equal to number of <code>NamedValue</code> objects in
+ * the list
+ */
+
+ public abstract void remove(int index) throws org.omg.CORBA.Bounds;
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java b/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java
new file mode 100644
index 0000000..bd851c3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA;
+
+/**
+ * Associates a name with a value that is an
+ * attribute of an IDL struct, and is used in the {@code DynStruct} APIs.
+ */
+
+public final class NameValuePair implements org.omg.CORBA.portable.IDLEntity {
+
+ /**
+ * The name to be associated with a value by this {@code NameValuePair} object.
+ */
+ public String id;
+
+ /**
+ * The value to be associated with a name by this {@code NameValuePair} object.
+ */
+ public org.omg.CORBA.Any value;
+
+ /**
+ * Constructs an empty {@code NameValuePair} object.
+ * To associate a name with a value after using this constructor, the fields
+ * of this object have to be accessed individually.
+ */
+ public NameValuePair() { }
+
+ /**
+ * Constructs a {@code NameValuePair} object that associates
+ * the given name with the given {@code org.omg.CORBA.Any} object.
+ * @param __id the name to be associated with the given {@code Any} object
+ * @param __value the {@code Any} object to be associated with the given name
+ */
+ public NameValuePair(String __id, org.omg.CORBA.Any __value) {
+ id = __id;
+ value = __value;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java b/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java
new file mode 100644
index 0000000..ec411e1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code NameValuePair}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/NameValuePairHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * 03 June 1999 11:52:03 o'clock GMT+00:00
+ */
+
+abstract public class NameValuePairHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/NameValuePair:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.NameValuePair 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 ());
+ }
+
+ public static org.omg.CORBA.NameValuePair 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [2];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FieldNameHelper.id (), "FieldName", _tcOf_members0);
+ _members0[0] = new org.omg.CORBA.StructMember (
+ "id",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any);
+ _members0[1] = new org.omg.CORBA.StructMember (
+ "value",
+ _tcOf_members0,
+ null);
+ __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.NameValuePairHelper.id (), "NameValuePair", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.NameValuePair read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.NameValuePair value = new org.omg.CORBA.NameValuePair ();
+ value.id = istream.read_string ();
+ value.value = istream.read_any ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.NameValuePair value)
+ {
+ ostream.write_string (value.id);
+ ostream.write_any (value.value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java b/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java
new file mode 100644
index 0000000..a3deb94
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object used in the DII and DSI to describe
+ * arguments and return values. <code>NamedValue</code> objects
+ * are also used in the <code>Context</code>
+ * object routines to pass lists of property names and values.
+ * <P>
+ * A <code>NamedValue</code> object contains:
+ * <UL>
+ * <LI>a name -- If the <code>NamedValue</code> object is used to
+ * describe arguments to a request, the name will be an argument
+ * identifier specified in the OMG IDL interface definition
+ * for the operation being described.
+ * <LI>a value -- an <code>Any</code> object
+ * <LI>an argument mode flag -- one of the following:
+ * <UL>
+ * <LI><code>ARG_IN.value</code>
+ * <LI><code>ARG_OUT.value</code>
+ * <LI><code>ARG_INOUT.value</code>
+ * <LI>zero -- if this <code>NamedValue</code> object represents a property
+ * in a <code>Context</code> object rather than a parameter or
+ * return value
+ * </UL>
+ * </UL>
+ * <P>
+ * The class <code>NamedValue</code> has three methods, which
+ * access its fields. The following code fragment demonstrates
+ * creating a <code>NamedValue</code> object and then accessing
+ * its fields:
+ * <PRE>
+ * ORB orb = ORB.init(args, null);
+ * String s = "argument_1";
+ * org.omg.CORBA.Any myAny = orb.create_any();
+ * myAny.insert_long(12345);
+ * int in = org.omg.CORBA.ARG_IN.value;
+
+ * org.omg.CORBA.NamedValue nv = orb.create_named_value(
+ * s, myAny, in);
+ * System.out.println("This nv name is " + nv.name());
+ * try {
+ * System.out.println("This nv value is " + nv.value().extract_long());
+ * System.out.println("This nv flag is " + nv.flags());
+ * } catch (org.omg.CORBA.BAD_OPERATION b) {
+ * System.out.println("extract failed");
+ * }
+ * </PRE>
+ *
+ * <P>
+ * If this code fragment were put into a <code>main</code> method,
+ * the output would be something like the following:
+ * <PRE>
+ * This nv name is argument_1
+ * This nv value is 12345
+ * This nv flag is 1
+ * </PRE>
+ * <P>
+ * Note that the method <code>value</code> returns an <code>Any</code>
+ * object. In order to access the <code>long</code> contained in the
+ * <code>Any</code> object,
+ * we used the method <code>extract_long</code>.
+ *
+ * @see Any
+ * @see ARG_IN
+ * @see ARG_INOUT
+ * @see ARG_OUT
+ *
+ * @since JDK1.2
+ */
+
+public abstract class NamedValue {
+
+ /**
+ * Retrieves the name for this <code>NamedValue</code> object.
+ *
+ * @return a <code>String</code> object representing
+ * the name of this <code>NamedValue</code> object
+ */
+
+ public abstract String name();
+
+ /**
+ * Retrieves the value for this <code>NamedValue</code> object.
+ *
+ * @return an <code>Any</code> object containing
+ * the value of this <code>NamedValue</code> object
+ */
+
+ public abstract Any value();
+
+ /**
+ * Retrieves the argument mode flag for this <code>NamedValue</code> object.
+ *
+ * @return an <code>int</code> representing the argument
+ * mode for this <code>NamedValue</code> object
+ */
+
+ public abstract int flags();
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java b/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java
new file mode 100644
index 0000000..e9871fe
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception raised whenever an invocation on a deleted object was
+ * performed. It is an authoritative "hard" fault report. Anyone
+ * receiving it is allowed (even expected) to delete all copies of
+ * this object reference and to perform other appropriate "final
+ * recovery" style procedures. Bridges forward this exception to
+ * clients, also destroying any records they may hold (for example,
+ * proxy objects used in reference translation). The clients could
+ * in turn purge any of their own data structures.
+ * <P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class OBJECT_NOT_EXIST extends SystemException {
+ /**
+ * Constructs an <code>OBJECT_NOT_EXIST</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public OBJECT_NOT_EXIST() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified description,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public OBJECT_NOT_EXIST(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public OBJECT_NOT_EXIST(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public OBJECT_NOT_EXIST(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java b/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java
new file mode 100644
index 0000000..e0432a1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception typically indicates an administrative mismatch, for
+ * example, a server may have made an attempt to register itself with
+ * an implementation repository under a name that is already in use,
+ * or is unknown to the repository. <P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since JDK1.2
+ */
+
+public final class OBJ_ADAPTER extends SystemException {
+ /**
+ * Constructs an <code>OBJ_ADAPTER</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public OBJ_ADAPTER() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>OBJ_ADAPTER</code> exception with the specified description,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a description message
+ */
+ public OBJ_ADAPTER(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>OBJ_ADAPTER</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public OBJ_ADAPTER(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>OBJ_ADAPTER</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public OBJ_ADAPTER(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java b/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java
new file mode 100644
index 0000000..9a2738a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The vendor minor code ID reserved for OMG. Minor codes for the standard
+ * exceptions are prefaced by the VMCID assigned to OMG, defined as the
+ * constant OMGVMCID, which, like all VMCIDs, occupies the high order 20 bits.
+ */
+
+public interface OMGVMCID {
+
+ /**
+ * The vendor minor code ID reserved for OMG. This value is or'd with
+ * the high order 20 bits of the minor code to produce the minor value
+ * in a system exception.
+ */
+ static final int value = 0x4f4d0000;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORB.java b/src/java.corba/share/classes/org/omg/CORBA/ORB.java
new file mode 100644
index 0000000..eefcfba
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ORB.java
@@ -0,0 +1,1406 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.*;
+import org.omg.CORBA.ORBPackage.InvalidName;
+
+import java.util.Properties;
+import java.applet.Applet;
+import java.io.File;
+import java.io.FileInputStream;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * A class providing APIs for the CORBA Object Request Broker
+ * features. The {@code ORB} class also provides
+ * "pluggable ORB implementation" APIs that allow another vendor's ORB
+ * implementation to be used.
+ * <P>
+ * An ORB makes it possible for CORBA objects to communicate
+ * with each other by connecting objects making requests (clients) with
+ * objects servicing requests (servers).
+ * <P>
+ *
+ * The {@code ORB} class, which
+ * encapsulates generic CORBA functionality, does the following:
+ * (Note that items 5 and 6, which include most of the methods in
+ * the class {@code ORB}, are typically used with the
+ * {@code Dynamic Invocation Interface} (DII) and
+ * the {@code Dynamic Skeleton Interface} (DSI).
+ * These interfaces may be used by a developer directly, but
+ * most commonly they are used by the ORB internally and are
+ * not seen by the general programmer.)
+ * <OL>
+ * <li> initializes the ORB implementation by supplying values for
+ * predefined properties and environmental parameters
+ * <li> obtains initial object references to services such as
+ * the NameService using the method {@code resolve_initial_references}
+ * <li> converts object references to strings and back
+ * <li> connects the ORB to a servant (an instance of a CORBA object
+ * implementation) and disconnects the ORB from a servant
+ * <li> creates objects such as
+ * <ul>
+ * <li>{@code TypeCode}
+ * <li>{@code Any}
+ * <li>{@code NamedValue}
+ * <li>{@code Context}
+ * <li>{@code Environment}
+ * <li>lists (such as {@code NVList}) containing these objects
+ * </ul>
+ * <li> sends multiple messages in the DII
+ * </OL>
+ *
+ * <P>
+ * The {@code ORB} class can be used to obtain references to objects
+ * implemented anywhere on the network.
+ * <P>
+ * An application or applet gains access to the CORBA environment
+ * by initializing itself into an {@code ORB} using one of
+ * three {@code init} methods. Two of the three methods use the properties
+ * (associations of a name with a value) shown in the
+ * table below.<BR>
+ * <TABLE class="plain">
+ * <CAPTION>Standard Java CORBA Properties:</CAPTION>
+ * <thead>
+ * <TR><TH>Property Name</TH> <TH>Property Value</TH></TR>
+ * </thead>
+ * <tbody>
+ * <TR><TD>org.omg.CORBA.ORBClass</TD>
+ * <TD>class name of an ORB implementation</TD></TR>
+ * <TR><TD>org.omg.CORBA.ORBSingletonClass</TD>
+ * <TD>class name of the ORB returned by {@code init()}</TD></TR>
+ * </tbody>
+ * </TABLE>
+ * <P>
+ * These properties allow a different vendor's {@code ORB}
+ * implementation to be "plugged in."
+ * <P>
+ * When an ORB instance is being created, the class name of the ORB
+ * implementation is located using
+ * the following standard search order:
+ *
+ * <OL>
+ * <LI>check in Applet parameter or application string array, if any
+ *
+ * <LI>check in properties parameter, if any
+ *
+ * <LI>check in the System properties, if any
+ *
+ * <LI>check in the orb.properties file located in the user.home
+ * directory, if any
+ *
+ * <LI>check in the orb.properties file located in the run-time image,
+ * if any
+ *
+ * <LI>fall back on a hardcoded default behavior (use the Java&nbsp;IDL
+ * implementation)
+ * </OL>
+ * <P>
+ * Note that Java&nbsp;IDL provides a default implementation for the
+ * fully-functional ORB and for the Singleton ORB. When the method
+ * {@code init} is given no parameters, the default Singleton
+ * ORB is returned. When the method {@code init} is given parameters
+ * but no ORB class is specified, the Java&nbsp;IDL ORB implementation
+ * is returned.
+ * <P>
+ * The following code fragment creates an {@code ORB} object
+ * initialized with the default ORB Singleton.
+ * This ORB has a
+ * restricted implementation to prevent malicious applets from doing
+ * anything beyond creating typecodes.
+ * It is called a singleton
+ * because there is only one instance for an entire virtual machine.
+ * <PRE>
+ * ORB orb = ORB.init();
+ * </PRE>
+ * <P>
+ * The following code fragment creates an {@code ORB} object
+ * for an application. The parameter {@code args}
+ * represents the arguments supplied to the application's {@code main}
+ * method. Since the property specifies the ORB class to be
+ * "SomeORBImplementation", the new ORB will be initialized with
+ * that ORB implementation. If p had been null,
+ * and the arguments had not specified an ORB class,
+ * the new ORB would have been
+ * initialized with the default Java&nbsp;IDL implementation.
+ * <PRE>
+ * Properties p = new Properties();
+ * p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation");
+ * ORB orb = ORB.init(args, p);
+ * </PRE>
+ * <P>
+ * The following code fragment creates an {@code ORB} object
+ * for the applet supplied as the first parameter. If the given
+ * applet does not specify an ORB class, the new ORB will be
+ * initialized with the default Java&nbsp;IDL implementation.
+ * <PRE>
+ * ORB orb = ORB.init(myApplet, null);
+ * </PRE>
+ * <P>
+ * An application or applet can be initialized in one or more ORBs.
+ * ORB initialization is a bootstrap call into the CORBA world.
+ *
+ *
+ * @implNote
+ * When a singleton ORB is configured via the system property,
+ * or orb.properties, it will be
+ * located, and loaded via the system class loader.
+ * Thus, where appropriate, it is necessary that
+ * the classes for this alternative ORBSingleton are available on the application's class path.
+ * It should be noted that the singleton ORB is system wide.
+ * <P>
+ * When a per-application ORB is created via the 2-arg init methods,
+ * then it will be located using the thread context class loader.
+ * <P>
+ * The IDL to Java Language OMG specification documents the ${java.home}/lib directory as the location,
+ * in the Java run-time image, to search for orb.properties.
+ * This location is not intended for user editable configuration files.
+ * Therefore, the implementation first checks the ${java.home}/conf directory for orb.properties,
+ * and thereafter the ${java.home}/lib directory.
+ *
+ * <p>See also {@extLink idl_guides IDL developer's guide}.</p>
+ *
+ * @since JDK1.2
+ */
+abstract public class ORB {
+
+ //
+ // This is the ORB implementation used when nothing else is specified.
+ // Whoever provides this class customizes this string to
+ // point at their ORB implementation.
+ //
+ private static final String ORBClassKey = "org.omg.CORBA.ORBClass";
+ private static final String ORBSingletonClassKey = "org.omg.CORBA.ORBSingletonClass";
+
+ // check that access to the class is not restricted by the security manager.
+ private static void checkPackageAccess(String name) {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null) {
+ String cname = name.replace('/', '.');
+ if (cname.startsWith("[")) {
+ int b = cname.lastIndexOf('[') + 2;
+ if (b > 1 && b < cname.length()) {
+ cname = cname.substring(b);
+ }
+ }
+ int i = cname.lastIndexOf('.');
+ if (i != -1) {
+ s.checkPackageAccess(cname.substring(0, i));
+ }
+ }
+ }
+
+ //
+ // The global instance of the singleton ORB implementation which
+ // acts as a factory for typecodes for generated Helper classes.
+ // TypeCodes should be immutable since they may be shared across
+ // different security contexts (applets). There should be no way to
+ // use a TypeCode as a storage depot for illicitly passing
+ // information or Java objects between different security contexts.
+ //
+ static private ORB singleton;
+
+ // Get System property
+ private static String getSystemProperty(final String name) {
+
+ // This will not throw a SecurityException because this
+ // class was loaded from rt.jar using the bootstrap classloader.
+ String propValue = (String) AccessController.doPrivileged(
+ new PrivilegedAction() {
+ public java.lang.Object run() {
+ return System.getProperty(name);
+ }
+ }
+ );
+
+ return propValue;
+ }
+
+ // Get property from orb.properties in either <user.home> or <java-home>/lib
+ // directories.
+ private static String getPropertyFromFile(final String name) {
+ // This will not throw a SecurityException because this
+ // class was loaded from rt.jar using the bootstrap classloader.
+
+ String propValue = (String) AccessController.doPrivileged(
+ new PrivilegedAction() {
+ private Properties getFileProperties( String fileName ) {
+ try {
+ File propFile = new File( fileName ) ;
+ if (!propFile.exists())
+ return null ;
+
+ Properties props = new Properties() ;
+ FileInputStream fis = new FileInputStream(propFile);
+ try {
+ props.load( fis );
+ } finally {
+ fis.close() ;
+ }
+
+ return props ;
+ } catch (Exception exc) {
+ return null ;
+ }
+ }
+
+ public java.lang.Object run() {
+ String userHome = System.getProperty("user.home");
+ String fileName = userHome + File.separator +
+ "orb.properties" ;
+ Properties props = getFileProperties( fileName ) ;
+
+ if (props != null) {
+ String value = props.getProperty( name ) ;
+ if (value != null)
+ return value ;
+ }
+
+ String javaHome = System.getProperty("java.home");
+
+ fileName = javaHome + File.separator + "conf"
+ + File.separator + "orb.properties";
+ props = getFileProperties(fileName);
+
+ if (props != null) {
+ String value = props.getProperty(name);
+ if (value != null)
+ return value;
+ }
+
+ fileName = javaHome + File.separator + "lib"
+ + File.separator + "orb.properties";
+ props = getFileProperties(fileName);
+
+ if (props == null)
+ return null;
+ else
+ return props.getProperty(name);
+ }
+ }
+ );
+
+ return propValue;
+ }
+
+ /**
+ * Returns the {@code ORB} singleton object. This method always returns the
+ * same ORB instance, which is an instance of the class described by the
+ * {@code org.omg.CORBA.ORBSingletonClass} system property.
+ * <P>
+ * This no-argument version of the method {@code init} is used primarily
+ * as a factory for {@code TypeCode} objects, which are used by
+ * {@code Helper} classes to implement the method {@code type}.
+ * It is also used to create {@code Any} objects that are used to
+ * describe {@code union} labels (as part of creating a
+ * {@code TypeCode} object for a {@code union}).
+ * <P>
+ * This method is not intended to be used by applets, and in the event
+ * that it is called in an applet environment, the ORB it returns
+ * is restricted so that it can be used only as a factory for
+ * {@code TypeCode} objects. Any {@code TypeCode} objects
+ * it produces can be safely shared among untrusted applets.
+ * <P>
+ * If an ORB is created using this method from an applet,
+ * a system exception will be thrown if
+ * methods other than those for
+ * creating {@code TypeCode} objects are invoked.
+ *
+ * @return the singleton ORB
+ *
+ * @implNote
+ * When configured via the system property, or orb.properties,
+ * the system-wide singleton ORB is located via the
+ * system class loader.
+ */
+ public static synchronized ORB init() {
+ if (singleton == null) {
+ String className = getSystemProperty(ORBSingletonClassKey);
+ if (className == null)
+ className = getPropertyFromFile(ORBSingletonClassKey);
+ if ((className == null) ||
+ (className.equals("com.sun.corba.se.impl.orb.ORBSingleton"))) {
+ singleton = new com.sun.corba.se.impl.orb.ORBSingleton();
+ } else {
+ singleton = create_impl_with_systemclassloader(className);
+ }
+ }
+ return singleton;
+ }
+
+ private static ORB create_impl_with_systemclassloader(String className) {
+
+ try {
+ checkPackageAccess(className);
+ ClassLoader cl = ClassLoader.getSystemClassLoader();
+ Class<org.omg.CORBA.ORB> orbBaseClass = org.omg.CORBA.ORB.class;
+ Class<?> singletonOrbClass = Class.forName(className, true, cl).asSubclass(orbBaseClass);
+ return (ORB)singletonOrbClass.newInstance();
+ } catch (Throwable ex) {
+ SystemException systemException = new INITIALIZE(
+ "can't instantiate default ORB implementation " + className);
+ systemException.initCause(ex);
+ throw systemException;
+ }
+ }
+
+ private static ORB create_impl(String className) {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ if (cl == null)
+ cl = ClassLoader.getSystemClassLoader();
+
+ try {
+ checkPackageAccess(className);
+ Class<org.omg.CORBA.ORB> orbBaseClass = org.omg.CORBA.ORB.class;
+ Class<?> orbClass = Class.forName(className, true, cl).asSubclass(orbBaseClass);
+ return (ORB)orbClass.newInstance();
+ } catch (Throwable ex) {
+ SystemException systemException = new INITIALIZE(
+ "can't instantiate default ORB implementation " + className);
+ systemException.initCause(ex);
+ throw systemException;
+ }
+ }
+
+ /**
+ * Creates a new {@code ORB} instance for a standalone
+ * application. This method may be called from applications
+ * only and returns a new fully functional {@code ORB} object
+ * each time it is called.
+ * @param args command-line arguments for the application's {@code main}
+ * method; may be {@code null}
+ * @param props application-specific properties; may be {@code null}
+ * @return the newly-created ORB instance
+ *
+ * @implNote
+ * When configured via the system property, or orb.properties,
+ * the ORB is located via the thread context class loader.
+ */
+ public static ORB init(String[] args, Properties props) {
+ //
+ // Note that there is no standard command-line argument for
+ // specifying the default ORB implementation. For an
+ // application you can choose an implementation either by
+ // setting the CLASSPATH to pick a different org.omg.CORBA
+ // and it's baked-in ORB implementation default or by
+ // setting an entry in the properties object or in the
+ // system properties.
+ //
+ String className = null;
+ ORB orb;
+
+ if (props != null)
+ className = props.getProperty(ORBClassKey);
+ if (className == null)
+ className = getSystemProperty(ORBClassKey);
+ if (className == null)
+ className = getPropertyFromFile(ORBClassKey);
+ if ((className == null) ||
+ (className.equals("com.sun.corba.se.impl.orb.ORBImpl"))) {
+ orb = new com.sun.corba.se.impl.orb.ORBImpl();
+ } else {
+ orb = create_impl(className);
+ }
+ orb.set_parameters(args, props);
+ return orb;
+ }
+
+
+ /**
+ * Creates a new {@code ORB} instance for an applet. This
+ * method may be called from applets only and returns a new
+ * fully-functional {@code ORB} object each time it is called.
+ * @param app the applet; may be {@code null}
+ * @param props applet-specific properties; may be {@code null}
+ * @return the newly-created ORB instance
+ *
+ * @implNote
+ * When configured via the system property, or orb.properties,
+ * the ORB is located via the thread context class loader.
+ */
+ public static ORB init(Applet app, Properties props) {
+ String className;
+ ORB orb;
+
+ className = app.getParameter(ORBClassKey);
+ if (className == null && props != null)
+ className = props.getProperty(ORBClassKey);
+ if (className == null)
+ className = getSystemProperty(ORBClassKey);
+ if (className == null)
+ className = getPropertyFromFile(ORBClassKey);
+ if ((className == null) ||
+ (className.equals("com.sun.corba.se.impl.orb.ORBImpl"))) {
+ orb = new com.sun.corba.se.impl.orb.ORBImpl();
+ } else {
+ orb = create_impl(className);
+ }
+ orb.set_parameters(app, props);
+ return orb;
+ }
+
+ /**
+ * Allows the ORB implementation to be initialized with the given
+ * parameters and properties. This method, used in applications only,
+ * is implemented by subclass ORB implementations and called
+ * by the appropriate {@code init} method to pass in its parameters.
+ *
+ * @param args command-line arguments for the application's {@code main}
+ * method; may be {@code null}
+ * @param props application-specific properties; may be {@code null}
+ */
+ abstract protected void set_parameters(String[] args, Properties props);
+
+ /**
+ * Allows the ORB implementation to be initialized with the given
+ * applet and parameters. This method, used in applets only,
+ * is implemented by subclass ORB implementations and called
+ * by the appropriate {@code init} method to pass in its parameters.
+ *
+ * @param app the applet; may be {@code null}
+ * @param props applet-specific properties; may be {@code null}
+ */
+ abstract protected void set_parameters(Applet app, Properties props);
+
+ /**
+ * Connects the given servant object (a Java object that is
+ * an instance of the server implementation class)
+ * to the ORB. The servant class must
+ * extend the {@code ImplBase} class corresponding to the interface that is
+ * supported by the server. The servant must thus be a CORBA object
+ * reference, and inherit from {@code org.omg.CORBA.Object}.
+ * Servants created by the user can start receiving remote invocations
+ * after the method {@code connect} has been called. A servant may also be
+ * automatically and implicitly connected to the ORB if it is passed as
+ * an IDL parameter in an IDL method invocation on a non-local object,
+ * that is, if the servant object has to be marshalled and sent outside of the
+ * process address space.
+ * <P>
+ * Calling the method {@code connect} has no effect
+ * when the servant object is already connected to the ORB.
+ * <P>
+ * Deprecated by the OMG in favor of the Portable Object Adapter APIs.
+ *
+ * @param obj The servant object reference
+ */
+ public void connect(org.omg.CORBA.Object obj) {
+ throw new NO_IMPLEMENT();
+ }
+
+ /**
+ * Destroys the ORB so that its resources can be reclaimed.
+ * Any operation invoked on a destroyed ORB reference will throw the
+ * {@code OBJECT_NOT_EXIST} exception.
+ * Once an ORB has been destroyed, another call to {@code init}
+ * with the same ORBid will return a reference to a newly constructed ORB.<p>
+ * If {@code destroy} is called on an ORB that has not been shut down,
+ * it will start the shut down process and block until the ORB has shut down
+ * before it destroys the ORB.<br>
+ * If an application calls {@code destroy} in a thread that is currently servicing
+ * an invocation, the {@code BAD_INV_ORDER} system exception will be thrown
+ * with the OMG minor code 3, since blocking would result in a deadlock.<p>
+ * For maximum portability and to avoid resource leaks, an application should
+ * always call {@code shutdown} and {@code destroy}
+ * on all ORB instances before exiting.
+ *
+ * @throws org.omg.CORBA.BAD_INV_ORDER if the current thread is servicing an invocation
+ */
+ public void destroy( ) {
+ throw new NO_IMPLEMENT();
+ }
+
+ /**
+ * Disconnects the given servant object from the ORB. After this method returns,
+ * the ORB will reject incoming remote requests for the disconnected
+ * servant and will send the exception
+ * {@code org.omg.CORBA.OBJECT_NOT_EXIST} back to the
+ * remote client. Thus the object appears to be destroyed from the
+ * point of view of remote clients. Note, however, that local requests issued
+ * using the servant directly do not
+ * pass through the ORB; hence, they will continue to be processed by the
+ * servant.
+ * <P>
+ * Calling the method {@code disconnect} has no effect
+ * if the servant is not connected to the ORB.
+ * <P>
+ * Deprecated by the OMG in favor of the Portable Object Adapter APIs.
+ *
+ * @param obj The servant object to be disconnected from the ORB
+ */
+ public void disconnect(org.omg.CORBA.Object obj) {
+ throw new NO_IMPLEMENT();
+ }
+
+ //
+ // ORB method implementations.
+ //
+ // We are trying to accomplish 2 things at once in this class.
+ // It can act as a default ORB implementation front-end,
+ // creating an actual ORB implementation object which is a
+ // subclass of this ORB class and then delegating the method
+ // implementations.
+ //
+ // To accomplish the delegation model, the 'delegate' private instance
+ // variable is set if an instance of this class is created directly.
+ //
+
+ /**
+ * Returns a list of the initially available CORBA object references,
+ * such as "NameService" and "InterfaceRepository".
+ *
+ * @return an array of {@code String} objects that represent
+ * the object references for CORBA services
+ * that are initially available with this ORB
+ */
+ abstract public String[] list_initial_services();
+
+ /**
+ * Resolves a specific object reference from the set of available
+ * initial service names.
+ *
+ * @param object_name the name of the initial service as a string
+ * @return the object reference associated with the given name
+ * @exception InvalidName if the given name is not associated with a
+ * known service
+ */
+ abstract public org.omg.CORBA.Object resolve_initial_references(String object_name)
+ throws InvalidName;
+
+ /**
+ * Converts the given CORBA object reference to a string.
+ * Note that the format of this string is predefined by IIOP, allowing
+ * strings generated by a different ORB to be converted back into an object
+ * reference.
+ * <P>
+ * The resulting {@code String} object may be stored or communicated
+ * in any way that a {@code String} object can be manipulated.
+ *
+ * @param obj the object reference to stringify
+ * @return the string representing the object reference
+ */
+ abstract public String object_to_string(org.omg.CORBA.Object obj);
+
+ /**
+ * Converts a string produced by the method {@code object_to_string}
+ * back to a CORBA object reference.
+ *
+ * @param str the string to be converted back to an object reference. It must
+ * be the result of converting an object reference to a string using the
+ * method {@code object_to_string}.
+ * @return the object reference
+ */
+ abstract public org.omg.CORBA.Object string_to_object(String str);
+
+ /**
+ * Allocates an {@code NVList} with (probably) enough
+ * space for the specified number of {@code NamedValue} objects.
+ * Note that the specified size is only a hint to help with
+ * storage allocation and does not imply the maximum size of the list.
+ *
+ * @param count suggested number of {@code NamedValue} objects for
+ * which to allocate space
+ * @return the newly-created {@code NVList}
+ *
+ * @see NVList
+ */
+ abstract public NVList create_list(int count);
+
+ /**
+ * Creates an {@code NVList} initialized with argument
+ * descriptions for the operation described in the given
+ * {@code OperationDef} object. This {@code OperationDef} object
+ * is obtained from an Interface Repository. The arguments in the
+ * returned {@code NVList} object are in the same order as in the
+ * original IDL operation definition, which makes it possible for the list
+ * to be used in dynamic invocation requests.
+ *
+ * @param oper the {@code OperationDef} object to use to create the list
+ * @return a newly-created {@code NVList} object containing
+ * descriptions of the arguments to the method described in the given
+ * {@code OperationDef} object
+ *
+ * @see NVList
+ */
+ public NVList create_operation_list(org.omg.CORBA.Object oper)
+ {
+ // If we came here, it means that the actual ORB implementation
+ // did not have a create_operation_list(...CORBA.Object oper) method,
+ // so lets check if it has a create_operation_list(OperationDef oper)
+ // method.
+ try {
+ // First try to load the OperationDef class
+ String opDefClassName = "org.omg.CORBA.OperationDef";
+ Class<?> opDefClass = null;
+
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ if ( cl == null )
+ cl = ClassLoader.getSystemClassLoader();
+ // if this throws a ClassNotFoundException, it will be caught below.
+ opDefClass = Class.forName(opDefClassName, true, cl);
+
+ // OK, we loaded OperationDef. Now try to get the
+ // create_operation_list(OperationDef oper) method.
+ Class<?>[] argc = { opDefClass };
+ java.lang.reflect.Method meth =
+ this.getClass().getMethod("create_operation_list", argc);
+
+ // OK, the method exists, so invoke it and be happy.
+ java.lang.Object[] argx = { oper };
+ return (org.omg.CORBA.NVList)meth.invoke(this, argx);
+ }
+ catch( java.lang.reflect.InvocationTargetException exs ) {
+ Throwable t = exs.getTargetException();
+ if (t instanceof Error) {
+ throw (Error) t;
+ }
+ else if (t instanceof RuntimeException) {
+ throw (RuntimeException) t;
+ }
+ else {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ }
+ catch( RuntimeException ex ) {
+ throw ex;
+ }
+ catch( Exception exr ) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ }
+
+
+ /**
+ * Creates a {@code NamedValue} object
+ * using the given name, value, and argument mode flags.
+ * <P>
+ * A {@code NamedValue} object serves as (1) a parameter or return
+ * value or (2) a context property.
+ * It may be used by itself or
+ * as an element in an {@code NVList} object.
+ *
+ * @param s the name of the {@code NamedValue} object
+ * @param any the {@code Any} value to be inserted into the
+ * {@code NamedValue} object
+ * @param flags the argument mode flags for the {@code NamedValue}: one of
+ * {@code ARG_IN.value}, {@code ARG_OUT.value},
+ * or {@code ARG_INOUT.value}.
+ *
+ * @return the newly-created {@code NamedValue} object
+ * @see NamedValue
+ */
+ abstract public NamedValue create_named_value(String s, Any any, int flags);
+
+ /**
+ * Creates an empty {@code ExceptionList} object.
+ *
+ * @return the newly-created {@code ExceptionList} object
+ */
+ abstract public ExceptionList create_exception_list();
+
+ /**
+ * Creates an empty {@code ContextList} object.
+ *
+ * @return the newly-created {@code ContextList} object
+ * @see ContextList
+ * @see Context
+ */
+ abstract public ContextList create_context_list();
+
+ /**
+ * Gets the default {@code Context} object.
+ *
+ * @return the default {@code Context} object
+ * @see Context
+ */
+ abstract public Context get_default_context();
+
+ /**
+ * Creates an {@code Environment} object.
+ *
+ * @return the newly-created {@code Environment} object
+ * @see Environment
+ */
+ abstract public Environment create_environment();
+
+ /**
+ * Creates a new {@code org.omg.CORBA.portable.OutputStream} into which
+ * IDL method parameters can be marshalled during method invocation.
+ * @return the newly-created
+ * {@code org.omg.CORBA.portable.OutputStream} object
+ */
+ abstract public org.omg.CORBA.portable.OutputStream create_output_stream();
+
+ /**
+ * Sends multiple dynamic (DII) requests asynchronously without expecting
+ * any responses. Note that oneway invocations are not guaranteed to
+ * reach the server.
+ *
+ * @param req an array of request objects
+ */
+ abstract public void send_multiple_requests_oneway(Request[] req);
+
+ /**
+ * Sends multiple dynamic (DII) requests asynchronously.
+ *
+ * @param req an array of {@code Request} objects
+ */
+ abstract public void send_multiple_requests_deferred(Request[] req);
+
+ /**
+ * Finds out if any of the deferred (asynchronous) invocations have
+ * a response yet.
+ * @return {@code true} if there is a response available;
+ * {@code false} otherwise
+ */
+ abstract public boolean poll_next_response();
+
+ /**
+ * Gets the next {@code Request} instance for which a response
+ * has been received.
+ *
+ * @return the next {@code Request} object ready with a response
+ * @exception WrongTransaction if the method {@code get_next_response}
+ * is called from a transaction scope different
+ * from the one from which the original request was sent. See the
+ * OMG Transaction Service specification for details.
+ */
+ abstract public Request get_next_response() throws WrongTransaction;
+
+ /**
+ * Retrieves the {@code TypeCode} object that represents
+ * the given primitive IDL type.
+ *
+ * @param tcKind the {@code TCKind} instance corresponding to the
+ * desired primitive type
+ * @return the requested {@code TypeCode} object
+ */
+ abstract public TypeCode get_primitive_tc(TCKind tcKind);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code struct}.
+ * The {@code TypeCode} object is initialized with the given id,
+ * name, and members.
+ *
+ * @param id the repository id for the {@code struct}
+ * @param name the name of the {@code struct}
+ * @param members an array describing the members of the {@code struct}
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code struct}
+ */
+ abstract public TypeCode create_struct_tc(String id, String name,
+ StructMember[] members);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code union}.
+ * The {@code TypeCode} object is initialized with the given id,
+ * name, discriminator type, and members.
+ *
+ * @param id the repository id of the {@code union}
+ * @param name the name of the {@code union}
+ * @param discriminator_type the type of the {@code union} discriminator
+ * @param members an array describing the members of the {@code union}
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code union}
+ */
+ abstract public TypeCode create_union_tc(String id, String name,
+ TypeCode discriminator_type,
+ UnionMember[] members);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code enum}.
+ * The {@code TypeCode} object is initialized with the given id,
+ * name, and members.
+ *
+ * @param id the repository id for the {@code enum}
+ * @param name the name for the {@code enum}
+ * @param members an array describing the members of the {@code enum}
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code enum}
+ */
+ abstract public TypeCode create_enum_tc(String id, String name, String[] members);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code alias}
+ * ({@code typedef}).
+ * The {@code TypeCode} object is initialized with the given id,
+ * name, and original type.
+ *
+ * @param id the repository id for the alias
+ * @param name the name for the alias
+ * @param original_type
+ * the {@code TypeCode} object describing the original type
+ * for which this is an alias
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code alias}
+ */
+ abstract public TypeCode create_alias_tc(String id, String name,
+ TypeCode original_type);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code exception}.
+ * The {@code TypeCode} object is initialized with the given id,
+ * name, and members.
+ *
+ * @param id the repository id for the {@code exception}
+ * @param name the name for the {@code exception}
+ * @param members an array describing the members of the {@code exception}
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code exception}
+ */
+ abstract public TypeCode create_exception_tc(String id, String name,
+ StructMember[] members);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code interface}.
+ * The {@code TypeCode} object is initialized with the given id
+ * and name.
+ *
+ * @param id the repository id for the interface
+ * @param name the name for the interface
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code interface}
+ */
+
+ abstract public TypeCode create_interface_tc(String id, String name);
+
+ /**
+ * Creates a {@code TypeCode} object representing a bounded IDL
+ * {@code string}.
+ * The {@code TypeCode} object is initialized with the given bound,
+ * which represents the maximum length of the string. Zero indicates
+ * that the string described by this type code is unbounded.
+ *
+ * @param bound the bound for the {@code string}; cannot be negative
+ * @return a newly-created {@code TypeCode} object describing
+ * a bounded IDL {@code string}
+ * @exception BAD_PARAM if bound is a negative value
+ */
+
+ abstract public TypeCode create_string_tc(int bound);
+
+ /**
+ * Creates a {@code TypeCode} object representing a bounded IDL
+ * {@code wstring} (wide string).
+ * The {@code TypeCode} object is initialized with the given bound,
+ * which represents the maximum length of the wide string. Zero indicates
+ * that the string described by this type code is unbounded.
+ *
+ * @param bound the bound for the {@code wstring}; cannot be negative
+ * @return a newly-created {@code TypeCode} object describing
+ * a bounded IDL {@code wstring}
+ * @exception BAD_PARAM if bound is a negative value
+ */
+ abstract public TypeCode create_wstring_tc(int bound);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code sequence}.
+ * The {@code TypeCode} object is initialized with the given bound and
+ * element type.
+ *
+ * @param bound the bound for the {@code sequence}, 0 if unbounded
+ * @param element_type the {@code TypeCode} object describing
+ * the elements contained in the {@code sequence}
+ *
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code sequence}
+ */
+ abstract public TypeCode create_sequence_tc(int bound, TypeCode element_type);
+
+ /**
+ * Creates a {@code TypeCode} object representing a
+ * a recursive IDL {@code sequence}.
+ * <P>
+ * For the IDL {@code struct} Node in following code fragment,
+ * the offset parameter for creating its sequence would be 1:
+ * <PRE>
+ * Struct Node {
+ * long value;
+ * Sequence &lt;Node&gt; subnodes;
+ * };
+ * </PRE>
+ *
+ * @param bound the bound for the sequence, 0 if unbounded
+ * @param offset the index to the enclosing {@code TypeCode} object
+ * that describes the elements of this sequence
+ * @return a newly-created {@code TypeCode} object describing
+ * a recursive sequence
+ * @deprecated Use a combination of create_recursive_tc and create_sequence_tc instead
+ * @see #create_recursive_tc(String) create_recursive_tc
+ * @see #create_sequence_tc(int, TypeCode) create_sequence_tc
+ */
+ @Deprecated
+ abstract public TypeCode create_recursive_sequence_tc(int bound, int offset);
+
+ /**
+ * Creates a {@code TypeCode} object representing an IDL {@code array}.
+ * The {@code TypeCode} object is initialized with the given length and
+ * element type.
+ *
+ * @param length the length of the {@code array}
+ * @param element_type a {@code TypeCode} object describing the type
+ * of element contained in the {@code array}
+ * @return a newly-created {@code TypeCode} object describing
+ * an IDL {@code array}
+ */
+ abstract public TypeCode create_array_tc(int length, TypeCode element_type);
+
+ /**
+ * Create a {@code TypeCode} object for an IDL native type.
+ *
+ * @param id the logical id for the native type.
+ * @param name the name of the native type.
+ * @return the requested TypeCode.
+ */
+ public org.omg.CORBA.TypeCode create_native_tc(String id,
+ String name)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Create a {@code TypeCode} object for an IDL abstract interface.
+ *
+ * @param id the logical id for the abstract interface type.
+ * @param name the name of the abstract interface type.
+ * @return the requested TypeCode.
+ */
+ public org.omg.CORBA.TypeCode create_abstract_interface_tc(
+ String id,
+ String name)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Create a {@code TypeCode} object for an IDL fixed type.
+ *
+ * @param digits specifies the total number of decimal digits in the number
+ * and must be from 1 to 31 inclusive.
+ * @param scale specifies the position of the decimal point.
+ * @return the requested TypeCode.
+ */
+ public org.omg.CORBA.TypeCode create_fixed_tc(short digits, short scale)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ // orbos 98-01-18: Objects By Value -- begin
+
+
+ /**
+ * Create a {@code TypeCode} object for an IDL value type.
+ * The concrete_base parameter is the TypeCode for the immediate
+ * concrete valuetype base of the valuetype for which the TypeCode
+ * is being created.
+ * It may be null if the valuetype does not have a concrete base.
+ *
+ * @param id the logical id for the value type.
+ * @param name the name of the value type.
+ * @param type_modifier one of the value type modifier constants:
+ * VM_NONE, VM_CUSTOM, VM_ABSTRACT or VM_TRUNCATABLE
+ * @param concrete_base a {@code TypeCode} object
+ * describing the concrete valuetype base
+ * @param members an array containing the members of the value type
+ * @return the requested TypeCode
+ */
+ public org.omg.CORBA.TypeCode create_value_tc(String id,
+ String name,
+ short type_modifier,
+ TypeCode concrete_base,
+ ValueMember[] members)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Create a recursive {@code TypeCode} object which
+ * serves as a placeholder for a concrete TypeCode during the process of creating
+ * TypeCodes which contain recursion. The id parameter specifies the repository id of
+ * the type for which the recursive TypeCode is serving as a placeholder. Once the
+ * recursive TypeCode has been properly embedded in the enclosing TypeCode which
+ * corresponds to the specified repository id, it will function as a normal TypeCode.
+ * Invoking operations on the recursive TypeCode before it has been embedded in the
+ * enclosing TypeCode will result in a {@code BAD_TYPECODE} exception.
+ * <P>
+ * For example, the following IDL type declaration contains recursion:
+ * <PRE>
+ * Struct Node {
+ * Sequence&lt;Node&gt; subnodes;
+ * };
+ * </PRE>
+ * <P>
+ * To create a TypeCode for struct Node, you would invoke the TypeCode creation
+ * operations as shown below:
+ * <PRE>
+ * String nodeID = "IDL:Node:1.0";
+ * TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID));
+ * StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) };
+ * TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members);
+ * </PRE>
+ * <P>
+ * Also note that the following is an illegal IDL type declaration:
+ * <PRE>
+ * Struct Node {
+ * Node next;
+ * };
+ * </PRE>
+ * <P>
+ * Recursive types can only appear within sequences which can be empty.
+ * That way marshaling problems, when transmitting the struct in an Any, are avoided.
+ *
+ * @param id the logical id of the referenced type
+ * @return the requested TypeCode
+ */
+ public org.omg.CORBA.TypeCode create_recursive_tc(String id) {
+ // implemented in subclass
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a {@code TypeCode} object for an IDL value box.
+ *
+ * @param id the logical id for the value type
+ * @param name the name of the value type
+ * @param boxed_type the TypeCode for the type
+ * @return the requested TypeCode
+ */
+ public org.omg.CORBA.TypeCode create_value_box_tc(String id,
+ String name,
+ TypeCode boxed_type)
+ {
+ // implemented in subclass
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ // orbos 98-01-18: Objects By Value -- end
+
+ /**
+ * Creates an IDL {@code Any} object initialized to
+ * contain a {@code Typecode} object whose {@code kind} field
+ * is set to {@code TCKind.tc_null}.
+ *
+ * @return a newly-created {@code Any} object
+ */
+ abstract public Any create_any();
+
+
+
+
+ /**
+ * Retrieves a {@code Current} object.
+ * The {@code Current} interface is used to manage thread-specific
+ * information for use by services such as transactions and security.
+ *
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ *
+ * @return a newly-created {@code Current} object
+ * @deprecated use {@code resolve_initial_references}.
+ */
+ @Deprecated
+ public org.omg.CORBA.Current get_current()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * This operation blocks the current thread until the ORB has
+ * completed the shutdown process, initiated when some thread calls
+ * {@code shutdown}. It may be used by multiple threads which
+ * get all notified when the ORB shuts down.
+ *
+ */
+ public void run()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Instructs the ORB to shut down, which causes all
+ * object adapters to shut down, in preparation for destruction.<br>
+ * If the {@code wait_for_completion} parameter
+ * is true, this operation blocks until all ORB processing (including
+ * processing of currently executing requests, object deactivation,
+ * and other object adapter operations) has completed.
+ * If an application does this in a thread that is currently servicing
+ * an invocation, the {@code BAD_INV_ORDER} system exception
+ * will be thrown with the OMG minor code 3,
+ * since blocking would result in a deadlock.<br>
+ * If the {@code wait_for_completion} parameter is {@code FALSE},
+ * then shutdown may not have completed upon return.<p>
+ * While the ORB is in the process of shutting down, the ORB operates as normal,
+ * servicing incoming and outgoing requests until all requests have been completed.
+ * Once an ORB has shutdown, only object reference management operations
+ * may be invoked on the ORB or any object reference obtained from it.
+ * An application may also invoke the {@code destroy} operation on the ORB itself.
+ * Invoking any other operation will throw the {@code BAD_INV_ORDER}
+ * system exception with the OMG minor code 4.<p>
+ * The {@code ORB.run} method will return after
+ * {@code shutdown} has been called.
+ *
+ * @param wait_for_completion {@code true} if the call
+ * should block until the shutdown is complete;
+ * {@code false} if it should return immediately
+ * @throws org.omg.CORBA.BAD_INV_ORDER if the current thread is servicing
+ * an invocation
+ */
+ public void shutdown(boolean wait_for_completion)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Returns {@code true} if the ORB needs the main thread to
+ * perform some work, and {@code false} if the ORB does not
+ * need the main thread.
+ *
+ * @return {@code true} if there is work pending, meaning that the ORB
+ * needs the main thread to perform some work; {@code false}
+ * if there is no work pending and thus the ORB does not need the
+ * main thread
+ *
+ */
+ public boolean work_pending()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Performs an implementation-dependent unit of work if called
+ * by the main thread. Otherwise it does nothing.
+ * The methods {@code work_pending} and {@code perform_work}
+ * can be used in
+ * conjunction to implement a simple polling loop that multiplexes
+ * the main thread among the ORB and other activities.
+ *
+ */
+ public void perform_work()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Used to obtain information about CORBA facilities and services
+ * that are supported by this ORB. The service type for which
+ * information is being requested is passed in as the in
+ * parameter {@code service_type}, the values defined by
+ * constants in the CORBA module. If service information is
+ * available for that type, that is returned in the out parameter
+ * {@code service_info}, and the operation returns the
+ * value {@code true}. If no information for the requested
+ * services type is available, the operation returns {@code false}
+ * (i.e., the service is not supported by this ORB).
+ *
+ * @param service_type a {@code short} indicating the
+ * service type for which information is being requested
+ * @param service_info a {@code ServiceInformationHolder} object
+ * that will hold the {@code ServiceInformation} object
+ * produced by this method
+ * @return {@code true} if service information is available
+ * for the {@code service_type};
+ * {@code false} if no information for the
+ * requested services type is available
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public boolean get_service_information(short service_type,
+ ServiceInformationHolder service_info)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ // orbos 98-01-18: Objects By Value -- begin
+
+ /**
+ * Creates a new {@code DynAny} object from the given
+ * {@code Any} object.
+ *
+ * @param value the {@code Any} object from which to create a new
+ * {@code DynAny} object
+ * @return the new {@code DynAny} object created from the given
+ * {@code Any} object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynAny create_dyn_any(org.omg.CORBA.Any value)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a basic {@code DynAny} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynAny} object
+ * @return the new {@code DynAny} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynAny create_basic_dyn_any(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a new {@code DynStruct} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynStruct} object
+ * @return the new {@code DynStruct} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynStruct create_dyn_struct(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a new {@code DynSequence} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynSequence} object
+ * @return the new {@code DynSequence} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynSequence create_dyn_sequence(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Creates a new {@code DynArray} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynArray} object
+ * @return the new {@code DynArray} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynArray create_dyn_array(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a new {@code DynUnion} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynUnion} object
+ * @return the new {@code DynUnion} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynUnion create_dyn_union(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Creates a new {@code DynEnum} object from the given
+ * {@code TypeCode} object.
+ *
+ * @param type the {@code TypeCode} object from which to create a new
+ * {@code DynEnum} object
+ * @return the new {@code DynEnum} object created from the given
+ * {@code TypeCode} object
+ * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given
+ * {@code TypeCode} object is not consistent with the operation.
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead
+ */
+ @Deprecated
+ public org.omg.CORBA.DynEnum create_dyn_enum(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Can be invoked to create new instances of policy objects
+ * of a specific type with specified initial state. If
+ * {@code create_policy} fails to instantiate a new Policy
+ * object due to its inability to interpret the requested type
+ * and content of the policy, it raises the {@code PolicyError}
+ * exception with the appropriate reason.
+ * @param type the {@code PolicyType} of the policy object to
+ * be created
+ * @param val the value that will be used to set the initial
+ * state of the {@code Policy} object that is created
+ * @return Reference to a newly created {@code Policy} object
+ * of type specified by the {@code type} parameter and
+ * initialized to a state specified by the {@code val}
+ * parameter
+ * @throws org.omg.CORBA.PolicyError when the requested
+ * policy is not supported or a requested initial state
+ * for the policy is not supported.
+ */
+ public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val)
+ throws org.omg.CORBA.PolicyError
+ {
+ // Currently not implemented until PIORB.
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java
new file mode 100644
index 0000000..a608d82
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.ORBPackage;
+
+/**
+ * InconsistentTypeCode is thrown when an attempt is made to create a
+ * dynamic any with a type code that does not match the particular
+ * subclass of <code>DynAny</code>.
+ */
+public final class InconsistentTypeCode
+ extends org.omg.CORBA.UserException {
+ /**
+ * Constructs an <code>InconsistentTypeCode</code> user exception
+ * with no reason message.
+ */
+ public InconsistentTypeCode() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>InconsistentTypeCode</code> user exception
+ * with the specified reason message.
+ * @param reason The String containing a reason message
+ */
+ public InconsistentTypeCode(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java
new file mode 100644
index 0000000..1079d95
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.ORBPackage;
+
+/**
+ * The <code>InvalidName</code> exception is raised when
+ * <code>ORB.resolve_initial_references</code> is passed a name
+ * for which there is no initial reference.
+ *
+ * @see org.omg.CORBA.ORB#resolve_initial_references(String)
+ * @since JDK1.2
+ */
+
+final public class InvalidName extends org.omg.CORBA.UserException {
+ /**
+ * Constructs an <code>InvalidName</code> exception with no reason message.
+ */
+ public InvalidName() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>InvalidName</code> exception with the specified
+ * reason message.
+ * @param reason the String containing a reason message
+ */
+ public InvalidName(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java
new file mode 100644
index 0000000..afb6dac
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.ORBPackage;
+
+
+/**
+ * This Helper class is used to facilitate the marshalling of
+ * {@code ORBPackage/InvalidName}.
+ * For more information on Helper files, see
+ * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.
+ */
+
+abstract public class InvalidNameHelper
+{
+ private static String _id = "IDL:omg.org.CORBA/ORB/InvalidName:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.ORBPackage.InvalidName 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 ());
+ }
+
+ public static org.omg.CORBA.ORBPackage.InvalidName 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [0];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.ORBPackage.InvalidNameHelper.id (), "InvalidName", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.ORBPackage.InvalidName read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.ORBPackage.InvalidName value = new org.omg.CORBA.ORBPackage.InvalidName ();
+ // read and discard the repository ID
+ istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.ORBPackage.InvalidName value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html
new file mode 100644
index 0000000..7fcb5e8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+-->
+</head>
+<body bgcolor="white">
+
+Provides the exception <code>InvalidName</code>, which is thrown
+by the method <code>ORB.resolve_initial_references</code>
+and the exception <code>InconsistentTypeCode</code>, which is thrown
+by the Dynamic Any creation methods in the ORB class.
+
+
+ <h2>Related Documentation</h2>
+
+For an overview, please see:
+<ul>
+ <li><a href="../package-summary.html#package_description">
+ comments on the <code>CORBA</code> package</a>
+
+ </ul>
+
+
+@since JDK1.2
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Object.java b/src/java.corba/share/classes/org/omg/CORBA/Object.java
new file mode 100644
index 0000000..7875dd9
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Object.java
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The definition for a CORBA object reference.
+ * <p>
+ * A CORBA object reference is a handle for a particular
+ * CORBA object implemented by a server. A CORBA object reference
+ * identifies the same CORBA object each time the reference is used to invoke
+ * a method on the object.
+ * A CORBA object may have multiple, distinct object references.
+ * <p>
+ * The <code>org.omg.CORBA.Object</code> interface is the root of
+ * the inheritance hierarchy for all CORBA object references in the Java
+ * programming language, analogous to <code>java.rmi.Remote</code>
+ * for RMI remote objects.
+ * <p>
+ * A CORBA object may be either local or remote.
+ * If it is a local object (that is, running in the same
+ * VM as the client), invocations may be directly serviced by
+ * the object instance, and the object reference could point to the actual
+ * instance of the object implementation class.
+ * If a CORBA object is a remote object (that is, running in a different
+ * VM from the client), the object reference points to a stub (proxy) which uses the
+ * ORB machinery to make a remote invocation on the server where the object
+ * implementation resides.
+ * <p>
+ * Default implementations of the methods in the interface
+ * <code>org.omg.CORBA.Object</code>
+ * are provided in the class <code>org.omg.CORBA.portable.ObjectImpl</code>,
+ * which is the base class for stubs and object implementations.
+ *
+ * @see org.omg.CORBA.portable.ObjectImpl
+ */
+
+public interface Object {
+
+ /**
+ * Checks whether this object is an instance of a class that
+ * implements the given interface.
+ *
+ * @param repositoryIdentifier the interface to check against
+ * @return <code>true</code> if this object reference is an instance
+ * of a class that implements the interface;
+ * <code>false</code> otherwise
+ */
+ boolean _is_a(String repositoryIdentifier);
+
+
+ /**
+ * Determines whether the two object references are equivalent,
+ * so far as the ORB can easily determine. Two object references are equivalent
+ * if they are identical. Two distinct object references which in fact refer to
+ * the same object are also equivalent. However, ORBs are not required
+ * to attempt determination of whether two distinct object references
+ * refer to the same object, since such determination could be impractically
+ * expensive.
+ * @param other the other object reference with which to check for equivalence
+ * @return <code>true</code> if this object reference is known to be
+ * equivalent to the given object reference.
+ * Note that <code>false</code> indicates only that the two
+ * object references are distinct, not necessarily that
+ * they reference distinct objects.
+ */
+ boolean _is_equivalent(org.omg.CORBA.Object other);
+
+
+ /**
+ * Determines whether the server object for this object reference has been
+ * destroyed.
+ * @return <code>true</code> if the ORB knows authoritatively that the
+ * server object does not exist; <code>false</code> otherwise
+ */
+ boolean _non_existent();
+
+
+ /**
+ * Returns an ORB-internal identifier for this object reference.
+ * This is a hash identifier, which does
+ * not change during the lifetime of the object reference, and so
+ * neither will any hash function of that identifier change. The value returned
+ * is not guaranteed to be unique; in other words, another object
+ * reference may have the same hash value.
+ * If two object references hash differently,
+ * then they are distinct object references; however, both may still refer
+ * to the same CORBA object.
+ *
+ * @param maximum the upper bound on the hash value returned by the ORB
+ * @return the ORB-internal hash identifier for this object reference
+ */
+ int _hash(int maximum);
+
+
+ /**
+ * Returns a duplicate of this CORBA object reference.
+ * The server object implementation is not involved in creating
+ * the duplicate, and the implementation cannot distinguish whether
+ * the original object reference or a duplicate was used to make a request.
+ * <P>
+ * Note that this method is not very useful in the Java platform,
+ * since memory management is handled by the VM.
+ * It is included for compliance with the CORBA APIs.
+ * <P>
+ * The method <code>_duplicate</code> may return this object reference itself.
+ *
+ * @return a duplicate of this object reference or this object reference
+ * itself
+ */
+ org.omg.CORBA.Object _duplicate();
+
+
+ /**
+ * Signals that the caller is done using this object reference, so
+ * internal ORB resources associated with this object reference can be
+ * released. Note that the object implementation is not involved in
+ * this operation, and other references to the same object are not affected.
+ */
+ void _release();
+
+
+ /**
+ * Obtains an <code>InterfaceDef</code> for the object implementation
+ * referenced by this object reference.
+ * The <code>InterfaceDef</code> object
+ * may be used to introspect on the methods, attributes, and other
+ * type information for the object referred to by this object reference.
+ *
+ * @return the <code>InterfaceDef</code> object in the Interface Repository
+ * which provides type information about the object referred to by
+ * this object reference
+ */
+ org.omg.CORBA.Object _get_interface_def();
+
+
+
+ /**
+ * Creates a <code>Request</code> instance for use in the
+ * Dynamic Invocation Interface.
+ *
+ * @param operation the name of the method to be invoked using the
+ * <code>Request</code> instance
+ * @return the newly-created <code>Request</code> instance
+ */
+ Request _request(String operation);
+
+
+
+ /**
+ * Creates a <code>Request</code> instance initialized with the
+ * given context, method name, list of arguments, and container
+ * for the method's return value.
+ *
+ * @param ctx a <code>Context</code> object containing
+ * a list of properties
+ * @param operation the name of the method to be invoked
+ * @param arg_list an <code>NVList</code> containing the actual arguments
+ * to the method being invoked
+ * @param result a <code>NamedValue</code> object to serve as a
+ * container for the method's return value
+ * @return the newly-created <code>Request</code> object
+ *
+ * @see Request
+ * @see NVList
+ * @see NamedValue
+ */
+
+ Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result);
+
+ /**
+ * Creates a <code>Request</code> instance initialized with the
+ * given context, method name, list of arguments, container
+ * for the method's return value, list of possible exceptions,
+ * and list of context strings needing to be resolved.
+ *
+ * @param ctx a <code>Context</code> object containing
+ * a list of properties
+ * @param operation the name of the method to be invoked
+ * @param arg_list an <code>NVList</code> containing the actual arguments
+ * to the method being invoked
+ * @param result a <code>NamedValue</code> object to serve as a
+ * container for the method's return value
+ * @param exclist an <code>ExceptionList</code> object containing a
+ * list of possible exceptions the method can throw
+ * @param ctxlist a <code>ContextList</code> object containing a list of
+ * context strings that need to be resolved and sent with the
+ * <code>Request</code> instance
+ * @return the newly-created <code>Request</code> object
+ *
+ * @see Request
+ * @see NVList
+ * @see NamedValue
+ * @see ExceptionList
+ * @see ContextList
+ */
+
+ Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result,
+ ExceptionList exclist,
+ ContextList ctxlist);
+
+
+
+
+ /**
+ * Returns the <code>Policy</code> object of the specified type
+ * which applies to this object.
+ *
+ * @param policy_type the type of policy to be obtained
+ * @return A <code>Policy</code> object of the type specified by
+ * the policy_type parameter
+ * @exception org.omg.CORBA.BAD_PARAM when the value of policy type
+ * is not valid either because the specified type is not supported by this
+ * ORB or because a policy object of that type is not associated with this
+ * Object
+ */
+ Policy _get_policy(int policy_type);
+
+
+ /**
+ * Retrieves the <code>DomainManagers</code> of this object.
+ * This allows administration services (and applications) to retrieve the
+ * domain managers, and hence the security and other policies applicable
+ * to individual objects that are members of the domain.
+ *
+ * @return the list of immediately enclosing domain managers of this object.
+ * At least one domain manager is always returned in the list since by
+ * default each object is associated with at least one domain manager at
+ * creation.
+ */
+ DomainManager[] _get_domain_managers();
+
+
+ /**
+ * Returns a new <code>Object</code> with the given policies
+ * either replacing any existing policies in this
+ * <code>Object</code> or with the given policies added
+ * to the existing ones, depending on the value of the
+ * given <code>SetOverrideType</code> object.
+ *
+ * @param policies an array of <code>Policy</code> objects containing
+ * the policies to be added or to be used as replacements
+ * @param set_add either <code>SetOverrideType.SET_OVERRIDE</code>, indicating
+ * that the given policies will replace any existing ones, or
+ * <code>SetOverrideType.ADD_OVERRIDE</code>, indicating that
+ * the given policies should be added to any existing ones
+ * @return a new <code>Object</code> with the given policies replacing
+ * or added to those in this <code>Object</code>
+ */
+ org.omg.CORBA.Object _set_policy_override(Policy[] policies,
+ SetOverrideType set_add);
+
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java
new file mode 100644
index 0000000..85aa169
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * The Helper for {@code Object}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ */
+
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA;
+
+abstract public class ObjectHelper
+{
+ private static String _id = "";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Object 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 ());
+ }
+
+ public static org.omg.CORBA.Object extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (TCKind.tk_objref);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Object read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return istream.read_Object ();
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Object value)
+ {
+ ostream.write_Object (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java
new file mode 100644
index 0000000..f83f3b3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+
+/**
+ * The Holder for {@code Object}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a CORBA object reference (a value of type
+ * {@code org.omg.CORBA.Object}). It is usually
+ * used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has a CORBA Object reference as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code ObjectHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myObjectHolder} is an instance of {@code ObjectHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myObjectHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class ObjectHolder implements Streamable {
+ /**
+ * The {@code Object} value held by this {@code ObjectHolder}
+ * object.
+ */
+ public Object value;
+
+ /**
+ * Constructs a new {@code ObjectHolder} object with its
+ * {@code value} field initialized to {@code null}.
+ */
+ public ObjectHolder() {
+ }
+
+ /**
+ * Constructs a new {@code ObjectHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code Object}.
+ * @param initial the {@code Object} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code ObjectHolder} object
+ */
+ public ObjectHolder(Object initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in
+ * this {@code ObjectHolder} object
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire.
+ */
+ public void _read(InputStream input) {
+ value = input.read_Object();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code ObjectHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data.
+ */
+ public void _write(OutputStream output) {
+ output.write_Object(value);
+ }
+
+ /**
+ * Returns the TypeCode corresponding to the value held in
+ * this {@code ObjectHolder} object
+ *
+ * @return the TypeCode of the value held in
+ * this {@code ObjectHolder} object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return org.omg.CORBA.ORB.init().get_primitive_tc(TCKind.tk_objref);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java
new file mode 100644
index 0000000..ca03a6a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code OctetSeq}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/OctetSeqHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ *
+ * The class definition has been modified to conform to the following
+ * OMG specifications :
+ * <ul>
+ * <li> ORB core as defined by CORBA 2.3.1
+ * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+ * </li>
+ *
+ * <li> IDL/Java Language Mapping as defined in
+ * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+ * </li>
+ * </ul>
+ */
+
+public abstract class OctetSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/OctetSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, byte[] 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 ());
+ }
+
+ public static byte[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_octet);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.OctetSeqHelper.id (), "OctetSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static byte[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ byte value[] = null;
+ int _len0 = istream.read_long ();
+ value = new byte[_len0];
+ istream.read_octet_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, byte[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_octet_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java
new file mode 100644
index 0000000..868aadd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code OctetSeq}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/OctetSeqHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from streams.idl
+ * 13 May 1999 22:41:36 o'clock GMT+00:00
+ */
+
+public final class OctetSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public byte value[] = null;
+
+ public OctetSeqHolder ()
+ {
+ }
+
+ public OctetSeqHolder (byte[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.OctetSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.OctetSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.OctetSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java b/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java
new file mode 100644
index 0000000..00eff18
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception indicates a persistent storage failure, for example,
+ * failure to establish a database connection or corruption of a
+ * database.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class PERSIST_STORE extends SystemException {
+ /**
+ * Constructs a <code>PERSIST_STORE</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public PERSIST_STORE() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>PERSIST_STORE</code> exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public PERSIST_STORE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>PERSIST_STORE</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public PERSIST_STORE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>PERSIST_STORE</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public PERSIST_STORE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java b/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java
new file mode 100644
index 0000000..d0ac239
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/PRIVATE_MEMBER.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Constant to define a private member in the <code>ValueMember</code> class.
+ * <P>
+ * <code>PRIVATE_MEMBER</code> is one of the two constants of typedef
+ * <code>Visibility</code> used in the interface repository
+ * to identify visibility of a <code>ValueMember</code> type.
+ * The other constant is <code>PUBLIC_MEMBER</code>.
+ *
+ * @author unattributed
+ */
+public interface PRIVATE_MEMBER {
+ final short value = (short) (0L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java b/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java
new file mode 100644
index 0000000..c7701fd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/PUBLIC_MEMBER.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Constant to define a public member in the <code>ValueMember</code>
+ * class.
+ * <P>
+ * <code>PUBLIC_MEMBER</code> is one of the two constants of typedef
+ * <code>Visibility</code> used in the interface repository
+ * to identify visibility of a <code>ValueMember</code> type.
+ * The other constant is <code>PRIVATE_MEMBER</code>.
+ *
+ * @author unattributed
+ */
+public interface PUBLIC_MEMBER {
+ final short value = (short) (1L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Policy.java b/src/java.corba/share/classes/org/omg/CORBA/Policy.java
new file mode 100644
index 0000000..9fc9bef
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Policy.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * Interfaces derived from the {@code Policy} interface allow an
+ * ORB or CORBA service access to certain choices that affect
+ * its operation. This information is accessed in a structured
+ * manner using interfaces derived from the {@code Policy}
+ * interface defined in the CORBA module. A CORBA service does not
+ * have to use this method of accessing operating options, but
+ * may choose to do so. The Security Service in particular uses
+ * this technique for associating Security Policy with objects
+ * in the system.
+ * An interface generated by the IDL-to-Java compiler.
+ * org/omg/CORBA/Policy.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:20 AM PDT
+ */
+
+public interface Policy extends PolicyOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity
+{
+} // interface Policy
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java
new file mode 100644
index 0000000..d95f6d7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+* A user exception thrown when a policy error occurs. A <code>PolicyError</code>
+* exception may include one of the following policy error reason codes
+* defined in the org.omg.CORBA package: BAD_POLICY, BAD_POLICY_TYPE,
+* BAD_POLICY_VALUE, UNSUPPORTED_POLICY, UNSUPPORTED_POLICY_VALUE.
+*/
+
+public final class PolicyError extends org.omg.CORBA.UserException {
+
+ /**
+ * The reason for the <code>PolicyError</code> exception being thrown.
+ * @serial
+ */
+ public short reason;
+
+ /**
+ * Constructs a default <code>PolicyError</code> user exception
+ * with no reason code and an empty reason detail message.
+ */
+ public PolicyError() {
+ super();
+ }
+
+ /**
+ * Constructs a <code>PolicyError</code> user exception
+ * initialized with the given reason code and an empty reason detail message.
+ * @param __reason the reason code.
+ */
+ public PolicyError(short __reason) {
+ super();
+ reason = __reason;
+ }
+
+ /**
+ * Constructs a <code>PolicyError</code> user exception
+ * initialized with the given reason detail message and reason code.
+ * @param reason_string the reason detail message.
+ * @param __reason the reason code.
+ */
+ public PolicyError(String reason_string, short __reason) {
+ super(reason_string);
+ reason = __reason;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java
new file mode 100644
index 0000000..a775aff
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code Policy}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/PolicyHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:20 AM PDT
+ */
+
+abstract public class PolicyHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/Policy:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Policy 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 ());
+ }
+
+ public static org.omg.CORBA.Policy extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.PolicyHelper.id (), "Policy");
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Policy read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return narrow (istream.read_Object (_PolicyStub.class));
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Policy value)
+ {
+ ostream.write_Object ((org.omg.CORBA.Object) value);
+ }
+
+ public static org.omg.CORBA.Policy narrow (org.omg.CORBA.Object obj)
+ {
+ if (obj == null)
+ return null;
+ else if (obj instanceof org.omg.CORBA.Policy)
+ return (org.omg.CORBA.Policy)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 ();
+ return new org.omg.CORBA._PolicyStub (delegate);
+ }
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java
new file mode 100644
index 0000000..0d395d4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+ * The Holder for {@code Policy}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/PolicyHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:20 AM PDT
+ */
+
+public final class PolicyHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.Policy value = null;
+
+ public PolicyHolder ()
+ {
+ }
+
+ public PolicyHolder (org.omg.CORBA.Policy initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.PolicyHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.PolicyHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.PolicyHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java
new file mode 100644
index 0000000..8877c68
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code PolicyList}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/PolicyListHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:21 AM PDT
+ */
+
+abstract public class PolicyListHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/PolicyList:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Policy[] 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 ());
+ }
+
+ public static org.omg.CORBA.Policy[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.PolicyHelper.type ();
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.PolicyListHelper.id (), "PolicyList", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.Policy[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.Policy value[] = null;
+ int _len0 = istream.read_long ();
+ value = new org.omg.CORBA.Policy[_len0];
+ for (int _o1 = 0;_o1 < value.length; ++_o1)
+ value[_o1] = org.omg.CORBA.PolicyHelper.read (istream);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Policy[] value)
+ {
+ ostream.write_long (value.length);
+ for (int _i0 = 0;_i0 < value.length; ++_i0)
+ org.omg.CORBA.PolicyHelper.write (ostream, value[_i0]);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java
new file mode 100644
index 0000000..5eb1102
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Holder for {@code PolicyList}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * org/omg/CORBA/PolicyListHolder.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:21 AM PDT
+ */
+
+public final class PolicyListHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.Policy value[] = null;
+
+ public PolicyListHolder ()
+ {
+ }
+
+ public PolicyListHolder (org.omg.CORBA.Policy[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.PolicyListHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.PolicyListHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.PolicyListHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java
new file mode 100644
index 0000000..305066f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The interface for {@code Policy}. For more information on
+ * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations">
+ * "Generated Files: Operations files"</a>.
+ * <P>
+ * org/omg/CORBA/PolicyOperations.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:20 AM PDT
+ */
+
+/**
+ * Provides the operations for a {@code Policy} object.
+ */
+public interface PolicyOperations
+{
+
+ /**
+ * Returns the constant value that corresponds to the
+ * type of the policy object. The values of
+ * the policy objects are allocated by the OMG.
+ * New values for PolicyType should be obtained from the OMG by
+ * sending mail to request@omg.org. In general the constant
+ * values that are allocated are defined in conjunction with
+ * the definition of the corresponding policy object.
+ *
+ * @return the constant value that corresponds to the type of
+ * the policy object
+ */
+ int policy_type ();
+
+ /**
+ * Returns a copy of the {@code Policy} object. The copy does not retain
+ * any relationships that the policy had with any domain or object.
+ *
+ * @return a copy of the {@code Policy} object
+ */
+ org.omg.CORBA.Policy copy ();
+
+ /**
+ * Destroys the {@code Policy} object. It is the responsibility of
+ * the {@code Policy} object to determine whether it can be destroyed.
+ */
+ void destroy ();
+} // interface PolicyOperations
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java
new file mode 100644
index 0000000..f58c932
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code PolicyType}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ * org/omg/CORBA/PolicyTypeHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl
+ * Saturday, July 17, 1999 12:26:20 AM PDT
+ */
+
+
+// basic Policy definition
+abstract public class PolicyTypeHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/PolicyType:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, int 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 ());
+ }
+
+ public static int extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulong);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.PolicyTypeHelper.id (), "PolicyType", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static int read (org.omg.CORBA.portable.InputStream istream)
+ {
+ int value = (int)0;
+ value = istream.read_ulong ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, int value)
+ {
+ ostream.write_ulong (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Principal.java b/src/java.corba/share/classes/org/omg/CORBA/Principal.java
new file mode 100644
index 0000000..f845970
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Principal.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+
+/**
+ * A class that contains information about the identity of
+ * the client, for access control
+ * and other purposes. It contains a single attribute, the name of the
+ * <code>Principal</code>, encoded as a sequence of bytes.
+ *
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+@Deprecated
+public class Principal {
+ /**
+ * Sets the name of this <code>Principal</code> object to the given value.
+ * @param value the value to be set in the <code>Principal</code>
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public void name(byte[] value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+
+ /**
+ * Gets the name of this <code>Principal</code> object.
+ * @return the name of this <code>Principal</code> object
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public byte[] name() {
+ throw new org.omg.CORBA.NO_IMPLEMENT() ;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java
new file mode 100644
index 0000000..a8df7fe
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+
+/**
+ * The Holder for {@code Principal}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A container class for values of type {@code Principal}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code Principal} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code PrincipalHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myPrincipalHolder} is an instance of {@code PrincipalHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myPrincipalHolder.value}.
+ *
+ * @since JDK1.2
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+@Deprecated
+public final class PrincipalHolder implements Streamable {
+ /**
+ * The {@code Principal} value held by this {@code PrincipalHolder}
+ * object.
+ */
+ public Principal value;
+
+ /**
+ * Constructs a new {@code PrincipalHolder} object with its
+ * {@code value} field initialized to {@code null}.
+ */
+ public PrincipalHolder() {
+ }
+
+ /**
+ * Constructs a new {@code PrincipalHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code Principal} object.
+ * @param initial the {@code Principal} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code PrincipalHolder} object
+ */
+ public PrincipalHolder(Principal initial) {
+ value = initial;
+ }
+
+ public void _read(InputStream input) {
+ value = input.read_Principal();
+ }
+
+ public void _write(OutputStream output) {
+ output.write_Principal(value);
+ }
+
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_Principal);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/REBIND.java b/src/java.corba/share/classes/org/omg/CORBA/REBIND.java
new file mode 100644
index 0000000..6692b72
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/REBIND.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * <code>REBIND</code> is raised when the current effective RebindPolicy,
+ * has a value of NO_REBIND or NO_RECONNECT and an invocation on a bound
+ * object reference results in a LocateReply message with status
+ * OBJECT_FORWARD or a Reply message with status LOCATION_FORWARD.
+ * This exception is also raised if the current effective RebindPolicy has
+ * a value of NO_RECONNECT and a connection must be reopened.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class REBIND extends SystemException {
+
+ /**
+ * Constructs an <code>REBIND</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public REBIND() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>REBIND</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public REBIND(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>REBIND</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public REBIND(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>REBIND</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public REBIND(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java b/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java
new file mode 100644
index 0000000..a3ad94f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+ * The Helper for {@code RepositoryId}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ *
+ * org/omg/CORBA/RepositoryIdHelper.java
+ * Generated by the IDL-to-Java compiler (portable), version "3.0"
+ * from ir.idl
+ * 03 June 1999 11:33:43 o'clock GMT+00:00
+ */
+
+abstract public class RepositoryIdHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/RepositoryId:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ String value = null;
+ value = istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ ostream.write_string (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/Request.java b/src/java.corba/share/classes/org/omg/CORBA/Request.java
new file mode 100644
index 0000000..51667c8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/Request.java
@@ -0,0 +1,301 @@
+/*
+ * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object containing the information necessary for
+ * invoking a method. This class is
+ * the cornerstone of the ORB Dynamic
+ * Invocation Interface (DII), which allows dynamic creation and
+ * invocation of requests.
+ * A server cannot tell the difference between a client
+ * invocation using a client stub and a request using the DII.
+ * <P>
+ * A <code>Request</code> object consists of:
+ * <UL>
+ * <LI>the name of the operation to be invoked
+ * <LI>an <code>NVList</code> containing arguments for the operation.<BR>
+ * Each item in the list is a <code>NamedValue</code> object, which has three
+ * parts:
+ * <OL>
+ * <LI>the name of the argument
+ * <LI>the value of the argument (as an <code>Any</code> object)
+ * <LI>the argument mode flag indicating whether the argument is
+ * for input, output, or both
+ * </OL>
+ * </UL>
+ * <P>
+ * <code>Request</code> objects may also contain additional information,
+ * depending on how an operation was defined in the original IDL
+ * interface definition. For example, where appropriate, they may contain
+ * a <code>NamedValue</code> object to hold the return value or exception,
+ * a context, a list of possible exceptions, and a list of
+ * context strings that need to be resolved.
+ * <P>
+ * New <code>Request</code> objects are created using one of the
+ * <code>create_request</code> methods in the <code>Object</code> class.
+ * In other words, a <code>create_request</code> method is performed on the
+ * object which is to be invoked.
+ *
+ * @see org.omg.CORBA.NamedValue
+ *
+ */
+
+public abstract class Request {
+
+ /**
+ * Retrieves the the target object reference.
+ *
+ * @return the object reference that points to the
+ * object implementation for the method
+ * to be invoked
+ */
+
+ public abstract org.omg.CORBA.Object target();
+
+ /**
+ * Retrieves the name of the method to be invoked.
+ *
+ * @return the name of the method to be invoked
+ */
+
+ public abstract String operation();
+
+ /**
+ * Retrieves the <code>NVList</code> object containing the arguments
+ * to the method being invoked. The elements in the list are
+ * <code>NamedValue</code> objects, with each one describing an argument
+ * to the method.
+ *
+ * @return the <code>NVList</code> object containing the arguments
+ * for the method
+ *
+ */
+
+ public abstract NVList arguments();
+
+ /**
+ * Retrieves the <code>NamedValue</code> object containing the return
+ * value for the method.
+ *
+ * @return the <code>NamedValue</code> object containing the result
+ * of the method
+ */
+
+ public abstract NamedValue result();
+
+ /**
+ * Retrieves the <code>Environment</code> object for this request.
+ * It contains the exception that the method being invoked has
+ * thrown (after the invocation returns).
+ *
+ *
+ * @return the <code>Environment</code> object for this request
+ */
+
+ public abstract Environment env();
+
+ /**
+ * Retrieves the <code>ExceptionList</code> object for this request.
+ * This list contains <code>TypeCode</code> objects describing the
+ * exceptions that may be thrown by the method being invoked.
+ *
+ * @return the <code>ExceptionList</code> object describing the exceptions
+ * that may be thrown by the method being invoked
+ */
+
+ public abstract ExceptionList exceptions();
+
+ /**
+ * Retrieves the <code>ContextList</code> object for this request.
+ * This list contains context <code>String</code>s that need to
+ * be resolved and sent with the invocation.
+ *
+ *
+ * @return the list of context strings whose values
+ * need to be resolved and sent with the
+ * invocation.
+ */
+
+ public abstract ContextList contexts();
+
+ /**
+ * Retrieves the <code>Context</code> object for this request.
+ * This is a list of properties giving information about the
+ * client, the environment, or the circumstances of this request.
+ *
+ * @return the <code>Context</code> object that is to be used
+ * to resolve any context strings whose
+ * values need to be sent with the invocation
+ */
+
+ public abstract Context ctx();
+
+ /**
+ * Sets this request's <code>Context</code> object to the one given.
+ *
+ * @param c the new <code>Context</code> object to be used for
+ * resolving context strings
+ */
+
+ public abstract void ctx(Context c);
+
+
+ /**
+ * Creates an input argument and adds it to this <code>Request</code>
+ * object.
+ *
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the input argument added
+ */
+
+ public abstract Any add_in_arg();
+
+ /**
+ * Creates an input argument with the given name and adds it to
+ * this <code>Request</code> object.
+ *
+ * @param name the name of the argument being added
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the input argument added
+ */
+
+ public abstract Any add_named_in_arg(String name);
+
+ /**
+ * Adds an input/output argument to this <code>Request</code> object.
+ *
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the input/output argument added
+ */
+
+ public abstract Any add_inout_arg();
+
+ /**
+ * Adds an input/output argument with the given name to this
+ * <code>Request</code> object.
+ *
+ * @param name the name of the argument being added
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the input/output argument added
+ */
+
+ public abstract Any add_named_inout_arg(String name);
+
+
+ /**
+ * Adds an output argument to this <code>Request</code> object.
+ *
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the output argument added
+ */
+
+ public abstract Any add_out_arg();
+
+ /**
+ * Adds an output argument with the given name to this
+ * <code>Request</code> object.
+ *
+ * @param name the name of the argument being added
+ * @return an <code>Any</code> object that contains the
+ * value and typecode for the output argument added
+ */
+
+ public abstract Any add_named_out_arg(String name);
+
+ /**
+ * Sets the typecode for the return
+ * value of the method.
+ *
+ * @param tc the <code>TypeCode</code> object containing type information
+ * for the return value
+ */
+
+ public abstract void set_return_type(TypeCode tc);
+
+ /**
+ * Returns the <code>Any</code> object that contains the value for the
+ * result of the method.
+ *
+ * @return an <code>Any</code> object containing the value and
+ * typecode for the return value
+ */
+
+ public abstract Any return_value();
+
+ /**
+ * Makes a synchronous invocation using the
+ * information in the <code>Request</code> object. Exception information is
+ * placed into the <code>Request</code> object's environment object.
+ */
+
+ public abstract void invoke();
+
+ /**
+ * Makes a oneway invocation on the
+ * request. In other words, it does not expect or wait for a
+ * response. Note that this can be used even if the operation was
+ * not declared as oneway in the IDL declaration. No response or
+ * exception information is returned.
+ */
+
+ public abstract void send_oneway();
+
+ /**
+ * Makes an asynchronous invocation on
+ * the request. In other words, it does not wait for a response before it
+ * returns to the user. The user can then later use the methods
+ * <code>poll_response</code> and <code>get_response</code> to get
+ * the result or exception information for the invocation.
+ */
+
+ public abstract void send_deferred();
+
+ /**
+ * Allows the user to determine
+ * whether a response has been received for the invocation triggered
+ * earlier with the <code>send_deferred</code> method.
+ *
+ * @return <code>true</code> if the method response has
+ * been received; <code>false</code> otherwise
+ */
+
+ public abstract boolean poll_response();
+
+ /**
+ * Allows the user to access the
+ * response for the invocation triggered earlier with the
+ * <code>send_deferred</code> method.
+ *
+ * @exception WrongTransaction if the method <code>get_response</code> was invoked
+ * from a different transaction's scope than the one from which the
+ * request was originally sent. See the OMG Transaction Service specification
+ * for details.
+ */
+
+ public abstract void get_response() throws WrongTransaction;
+
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java b/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java
new file mode 100644
index 0000000..04cdeb6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java
@@ -0,0 +1,314 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object that captures the explicit state of a request
+ * for the Dynamic Skeleton Interface (DSI). This class, the
+ * cornerstone of the DSI, is analogous to the <code>Request</code>
+ * object in the DII.
+ * <P>
+ * The ORB is responsible for creating this embodiment of a request,
+ * and delivering it to a Dynamic Implementation Routine (DIR).
+ * A dynamic servant (a DIR) is created by implementing the
+ * <code>DynamicImplementation</code> class,
+ * which has a single <code>invoke</code> method. This method accepts a
+ * <code>ServerRequest</code> object.
+ *
+ * The abstract class <code>ServerRequest</code> defines
+ * methods for accessing the
+ * method name, the arguments and the context of the request, as
+ * well as methods for setting the result of the request either as a
+ * return value or an exception. <p>
+ *
+ * A subtlety with accessing the arguments of the request is that the
+ * DIR needs to provide type information about the
+ * expected arguments, since there is no compiled information about
+ * these. This information is provided through an <code>NVList</code>,
+ * which is a list of <code>NamedValue</code> objects.
+ * Each <code>NamedValue</code> object
+ * contains an <code>Any</code> object, which in turn
+ * has a <code>TypeCode</code> object representing the type
+ * of the argument. <p>
+ *
+ * Similarly, type information needs to be provided for the response,
+ * for either the expected result or for an exception, so the methods
+ * <code>result</code> and <code>except</code> take an <code>Any</code>
+ * object as a parameter.
+ *
+ * @see org.omg.CORBA.DynamicImplementation
+ * @see org.omg.CORBA.NVList
+ * @see org.omg.CORBA.NamedValue
+ *
+ */
+
+public abstract class ServerRequest {
+
+ /**
+ * Retrieves the name of the operation being
+ * invoked. According to OMG IDL's rules, these names must be unique
+ * among all operations supported by this object's "most-derived"
+ * interface. Note that the operation names for getting and setting
+ * attributes are <code>_get_&lt;attribute_name&gt;</code>
+ * and <code>_set_&lt;attribute_name&gt;</code>,
+ * respectively.
+ *
+ * @return the name of the operation to be invoked
+ * @deprecated use operation()
+ */
+ @Deprecated
+ public String op_name()
+ {
+ return operation();
+ }
+
+
+ /**
+ * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception.
+ * <P>
+ * Retrieves the name of the operation being
+ * invoked. According to OMG IDL's rules, these names must be unique
+ * among all operations supported by this object's "most-derived"
+ * interface. Note that the operation names for getting and setting
+ * attributes are <code>_get_&lt;attribute_name&gt;</code>
+ * and <code>_set_&lt;attribute_name&gt;</code>,
+ * respectively.
+ *
+ * @return the name of the operation to be invoked
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code>
+ * package comments for unimplemented features</a>
+ */
+ public String operation()
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Specifies method parameter types and retrieves "in" and "inout"
+ * argument values.
+ * <P>
+ * Note that this method is deprecated; use the method
+ * <code>arguments</code> in its place.
+ * <P>
+ * Unless it calls the method <code>set_exception</code>,
+ * the DIR must call this method exactly once, even if the
+ * method signature contains no parameters. Once the method <code>
+ * arguments</code> or <code>set_exception</code>
+ * has been called, calling <code>arguments</code> on the same
+ * <code>ServerRequest</code> object
+ * will result in a <code>BAD_INV_ORDER</code> system exception.
+ * The DIR must pass in to the method <code>arguments</code>
+ * an NVList initialized with TypeCodes and Flags
+ * describing the parameter types for the operation, in the order in which
+ * they appear in the IDL specification (left to right). A
+ * potentially-different NVList will be returned from
+ * <code>arguments</code>, with the
+ * "in" and "inout" argument values supplied. If it does not call
+ * the method <code>set_exception</code>,
+ * the DIR must supply the returned NVList with return
+ * values for any "out" arguments before returning, and may also change
+ * the return values for any "inout" arguments.
+ *
+ * @param params the arguments of the method, in the
+ * form of an <code>NVList</code> object
+ * @deprecated use the method <code>arguments</code>
+ */
+ @Deprecated
+ public void params(NVList params)
+ {
+ arguments(params);
+ }
+
+ /**
+ * Specifies method parameter types and retrieves "in" and "inout"
+ * argument values.
+ * Unless it calls the method <code>set_exception</code>,
+ * the DIR must call this method exactly once, even if the
+ * method signature contains no parameters. Once the method <code>
+ * arguments</code> or <code>set_exception</code>
+ * has been called, calling <code>arguments</code> on the same
+ * <code>ServerRequest</code> object
+ * will result in a <code>BAD_INV_ORDER</code> system exception.
+ * The DIR must pass in to the method <code>arguments</code>
+ * an NVList initialized with TypeCodes and Flags
+ * describing the parameter types for the operation, in the order in which
+ * they appear in the IDL specification (left to right). A
+ * potentially-different NVList will be returned from
+ * <code>arguments</code>, with the
+ * "in" and "inout" argument values supplied. If it does not call
+ * the method <code>set_exception</code>,
+ * the DIR must supply the returned NVList with return
+ * values for any "out" arguments before returning, and it may also change
+ * the return values for any "inout" arguments.
+ *
+ * @param args the arguments of the method, in the
+ * form of an NVList
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code>
+ * package comments for unimplemented features</a>
+ */
+ public void arguments(org.omg.CORBA.NVList args) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+
+ /**
+ * Specifies any return value for the call.
+ * <P>
+ * Note that this method is deprecated; use the method
+ * <code>set_result</code> in its place.
+ * <P>
+ * Unless the method
+ * <code>set_exception</code> is called, if the invoked method
+ * has a non-void result type, the method <code>set_result</code>
+ * must be called exactly once before the DIR returns.
+ * If the operation has a void result type, the method
+ * <code>set_result</code> may optionally be
+ * called once with an <code>Any</code> object whose type is
+ * <code>tk_void</code>. Calling the method <code>set_result</code> before
+ * the method <code>arguments</code> has been called or after
+ * the method <code>set_result</code> or <code>set_exception</code> has been
+ * called will result in a BAD_INV_ORDER exception. Calling the method
+ * <code>set_result</code> without having previously called
+ * the method <code>ctx</code> when the IDL operation contains a
+ * context expression, or when the NVList passed to arguments did not
+ * describe all parameters passed by the client, may result in a MARSHAL
+ * system exception.
+ *
+ * @param any an <code>Any</code> object containing the return value to be set
+ * @deprecated use the method <code>set_result</code>
+ */
+ @Deprecated
+ public void result(Any any)
+ {
+ set_result(any);
+ }
+
+
+ /**
+ * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception.
+ * <P>
+ * Specifies any return value for the call. Unless the method
+ * <code>set_exception</code> is called, if the invoked method
+ * has a non-void result type, the method <code>set_result</code>
+ * must be called exactly once before the DIR returns.
+ * If the operation has a void result type, the method
+ * <code>set_result</code> may optionally be
+ * called once with an <code>Any</code> object whose type is
+ * <code>tk_void</code>. Calling the method <code>set_result</code> before
+ * the method <code>arguments</code> has been called or after
+ * the method <code>set_result</code> or <code>set_exception</code> has been
+ * called will result in a BAD_INV_ORDER exception. Calling the method
+ * <code>set_result</code> without having previously called
+ * the method <code>ctx</code> when the IDL operation contains a
+ * context expression, or when the NVList passed to arguments did not
+ * describe all parameters passed by the client, may result in a MARSHAL
+ * system exception.
+ *
+ * @param any an <code>Any</code> object containing the return value to be set
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code>
+ * package comments for unimplemented features</a>
+ */
+ public void set_result(org.omg.CORBA.Any any)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * The DIR may call set_exception at any time to return an exception to the
+ * client. The Any passed to set_exception must contain either a system
+ * exception or a user exception specified in the raises expression
+ * of the invoked operation's IDL definition. Passing in an Any that does
+ * not
+ * contain an exception will result in a BAD_PARAM system exception. Passing
+ * in an unlisted user exception will result in either the DIR receiving a
+ * BAD_PARAM system exception or in the client receiving an
+ * UNKNOWN system exception.
+ *
+ * @param any the <code>Any</code> object containing the exception
+ * @deprecated use set_exception()
+ */
+ @Deprecated
+ public void except(Any any)
+ {
+ set_exception(any);
+ }
+
+ /**
+ * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception.
+ * <P>
+ * Returns the given exception to the client. This method
+ * is invoked by the DIR, which may call it at any time.
+ * The <code>Any</code> object passed to this method must
+ * contain either a system
+ * exception or one of the user exceptions specified in the
+ * invoked operation's IDL definition. Passing in an
+ * <code>Any</code> object that does not contain an exception
+ * will cause a BAD_PARAM system exception to be thrown. Passing
+ * in an unlisted user exception will result in either the DIR receiving a
+ * BAD_PARAM system exception or in the client receiving an
+ * UNKNOWN system exception.
+ *
+ * @param any the <code>Any</code> object containing the exception
+ * @exception BAD_PARAM if the given <code>Any</code> object does not
+ * contain an exception or the exception is an
+ * unlisted user exception
+ * @exception UNKNOWN if the given exception is an unlisted
+ * user exception and the DIR did not
+ * receive a BAD_PARAM exception
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code>
+ * package comments for unimplemented features</a>
+ */
+ public void set_exception(Any any)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Returns the context information specified in IDL for the operation
+ * when the operation is not an attribute access and the operation's IDL
+ * definition contains a context expression; otherwise it returns
+ * a nil <code>Context</code> reference. Calling the method
+ * <code>ctx</code> before the method <code>arguments</code> has
+ * been called or after the method <code>ctx</code>,
+ * <code>set_result</code>, or <code>set_exception</code>
+ * has been called will result in a
+ * BAD_INV_ORDER system exception.
+ *
+ * @return the context object that is to be used
+ * to resolve any context strings whose
+ * values need to be sent with the invocation.
+ * @exception BAD_INV_ORDER if (1) the method <code>ctx</code> is called
+ * before the method <code>arguments</code> or
+ * (2) the method <code>ctx</code> is called
+ * after calling <code>set_result</code> or
+ * <code>set_exception</code>
+ */
+ public abstract Context ctx();
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java
new file mode 100644
index 0000000..5802300
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * An object that represents an ORB service: its <code>service_detail_type</code>
+ * field contains the type of the ORB service, and its <code>service_detail</code>
+ * field contains a description of the ORB service.
+
+ *
+ * @author RIP Team
+ */
+public final class ServiceDetail implements org.omg.CORBA.portable.IDLEntity
+{
+ /**
+ * The type of the ORB service that this <code>ServiceDetail</code>
+ * object represents.
+ */
+ public int service_detail_type;
+
+ /**
+ * The data describing the ORB service that this <code>ServiceDetail</code>
+ * object represents.
+ */
+ public byte[] service_detail;
+
+ /**
+ * Constructs a <code>ServiceDetail</code> object with 0 for the type of
+ * ORB service and an empty description.
+ */
+ public ServiceDetail() { }
+
+ /**
+ * Constructs a <code>ServiceDetail</code> object with the given
+ * ORB service type and the given description.
+ *
+ * @param service_detail_type an <code>int</code> specifying the type of
+ * ORB service
+ * @param service_detail a <code>byte</code> array describing the ORB service
+ */
+ public ServiceDetail(int service_detail_type, byte[] service_detail) {
+ this.service_detail_type = service_detail_type;
+ this.service_detail = service_detail;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java
new file mode 100644
index 0000000..903a65e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /**
+ * The Helper for {@code ServiceDetail}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ */
+
+package org.omg.CORBA;
+
+
+public abstract class ServiceDetailHelper {
+
+ public static void write(org.omg.CORBA.portable.OutputStream out, org.omg.CORBA.ServiceDetail that) {
+ out.write_ulong(that.service_detail_type);
+ {
+ out.write_long(that.service_detail.length);
+ out.write_octet_array(that.service_detail, 0, that.service_detail.length);
+ }
+ }
+ public static org.omg.CORBA.ServiceDetail read(org.omg.CORBA.portable.InputStream in) {
+ org.omg.CORBA.ServiceDetail that = new org.omg.CORBA.ServiceDetail();
+ that.service_detail_type = in.read_ulong();
+ {
+ int __length = in.read_long();
+ that.service_detail = new byte[__length];
+ in.read_octet_array(that.service_detail, 0, that.service_detail.length);
+ }
+ return that;
+ }
+ public static org.omg.CORBA.ServiceDetail extract(org.omg.CORBA.Any a) {
+ org.omg.CORBA.portable.InputStream in = a.create_input_stream();
+ return read(in);
+ }
+ public static void insert(org.omg.CORBA.Any a, org.omg.CORBA.ServiceDetail that) {
+ org.omg.CORBA.portable.OutputStream out = a.create_output_stream();
+ write(out, that);
+ a.read_value(out.create_input_stream(), type());
+ }
+ private static org.omg.CORBA.TypeCode _tc;
+ synchronized public static org.omg.CORBA.TypeCode type() {
+ int _memberCount = 2;
+ org.omg.CORBA.StructMember[] _members = null;
+ if (_tc == null) {
+ _members= new org.omg.CORBA.StructMember[2];
+ _members[0] = new org.omg.CORBA.StructMember(
+ "service_detail_type",
+ org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong),
+ null);
+
+ _members[1] = new org.omg.CORBA.StructMember(
+ "service_detail",
+ org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_octet)),
+ null);
+ _tc = org.omg.CORBA.ORB.init().create_struct_tc(id(), "ServiceDetail", _members);
+ }
+ return _tc;
+ }
+ public static String id() {
+ return "IDL:omg.org/CORBA/ServiceDetail:1.0";
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java
new file mode 100644
index 0000000..47098f2
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+
+/**
+ * An IDL struct in the CORBA module that
+ * stores information about a CORBA service available in the
+ * ORB implementation and is obtained from the {@code ORB.get_service_information}
+ * method.
+ */
+public final class ServiceInformation implements org.omg.CORBA.portable.IDLEntity
+{
+ /** Array of ints representing service options.
+ */
+ public int[] service_options;
+
+ /** Array of ServiceDetails giving more details about the service.
+ */
+ public org.omg.CORBA.ServiceDetail[] service_details;
+
+ /** Constructs a ServiceInformation object with empty service_options
+ * and service_details.
+ */
+ public ServiceInformation() { }
+
+ /** Constructs a ServiceInformation object with the given service_options
+ * and service_details.
+ * @param __service_options An array of ints describing the service options.
+ * @param __service_details An array of ServiceDetails describing the service
+ * details.
+ */
+ public ServiceInformation(int[] __service_options,
+ org.omg.CORBA.ServiceDetail[] __service_details)
+ {
+ service_options = __service_options;
+ service_details = __service_details;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java
new file mode 100644
index 0000000..82103df
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /**
+ * The Helper for {@code ServiceInformation}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ */
+
+package org.omg.CORBA;
+
+
+public abstract class ServiceInformationHelper {
+
+ public static void write(org.omg.CORBA.portable.OutputStream out, org.omg.CORBA.ServiceInformation that)
+ {
+ out.write_long(that.service_options.length);
+ out.write_ulong_array(that.service_options, 0, that.service_options.length);
+ out.write_long(that.service_details.length);
+ for (int i = 0 ; i < that.service_details.length ; i += 1) {
+ org.omg.CORBA.ServiceDetailHelper.write(out, that.service_details[i]);
+ }
+ }
+
+ public static org.omg.CORBA.ServiceInformation read(org.omg.CORBA.portable.InputStream in) {
+ org.omg.CORBA.ServiceInformation that = new org.omg.CORBA.ServiceInformation();
+ {
+ int __length = in.read_long();
+ that.service_options = new int[__length];
+ in.read_ulong_array(that.service_options, 0, that.service_options.length);
+ }
+ {
+ int __length = in.read_long();
+ that.service_details = new org.omg.CORBA.ServiceDetail[__length];
+ for (int __index = 0 ; __index < that.service_details.length ; __index += 1) {
+ that.service_details[__index] = org.omg.CORBA.ServiceDetailHelper.read(in);
+ }
+ }
+ return that;
+ }
+ public static org.omg.CORBA.ServiceInformation extract(org.omg.CORBA.Any a) {
+ org.omg.CORBA.portable.InputStream in = a.create_input_stream();
+ return read(in);
+ }
+ public static void insert(org.omg.CORBA.Any a, org.omg.CORBA.ServiceInformation that) {
+ org.omg.CORBA.portable.OutputStream out = a.create_output_stream();
+ write(out, that);
+ a.read_value(out.create_input_stream(), type());
+ }
+ private static org.omg.CORBA.TypeCode _tc;
+ synchronized public static org.omg.CORBA.TypeCode type() {
+ int _memberCount = 2;
+ org.omg.CORBA.StructMember[] _members = null;
+ if (_tc == null) {
+ _members= new org.omg.CORBA.StructMember[2];
+ _members[0] = new org.omg.CORBA.StructMember(
+ "service_options",
+ org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong)),
+ null);
+
+ _members[1] = new org.omg.CORBA.StructMember(
+ "service_details",
+ org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ServiceDetailHelper.type()),
+ null);
+ _tc = org.omg.CORBA.ORB.init().create_struct_tc(id(), "ServiceInformation", _members);
+ }
+ return _tc;
+ }
+ public static String id() {
+ return "IDL:omg.org/CORBA/ServiceInformation:1.0";
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java
new file mode 100644
index 0000000..5e4f6a7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The Holder for {@code ServiceInformation}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code ServiceInformation} object
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code xxx} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code ServiceInformationHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myServiceInformationHolder} is an instance of {@code ServiceInformationHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myServiceInformationHolder.value}.
+ */
+public final class ServiceInformationHolder
+ implements org.omg.CORBA.portable.Streamable {
+
+ /**
+ * The {@code ServiceInformation} value held by this
+ * {@code ServiceInformationHolder} object in its {@code value} field.
+ */
+ public ServiceInformation value;
+
+ /**
+ * Constructs a new {@code ServiceInformationHolder} object with its
+ * {@code value} field initialized to null.
+ */
+ public ServiceInformationHolder() {
+ this(null);
+ }
+
+ /**
+ * Constructs a new {@code ServiceInformationHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code ServiceInformation} object.
+ *
+ * @param arg the {@code ServiceInformation} object with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code ServiceInformationHolder} object
+ */
+ public ServiceInformationHolder(org.omg.CORBA.ServiceInformation arg) {
+ value = arg;
+ }
+
+
+ /**
+ * Marshals the value in this {@code ServiceInformationHolder} object's
+ * {@code value} field to the output stream {@code out}.
+ *
+ * @param out the {@code OutputStream} object that will contain
+ * the CDR formatted data
+ */
+ public void _write(org.omg.CORBA.portable.OutputStream out) {
+ org.omg.CORBA.ServiceInformationHelper.write(out, value);
+ }
+
+ /**
+ * Reads unmarshalled data from the input stream {@code in} and assigns it to
+ * the {@code value} field in this {@code ServiceInformationHolder} object.
+ *
+ * @param in the {@code InputStream} object containing CDR
+ * formatted data from the wire
+ */
+ public void _read(org.omg.CORBA.portable.InputStream in) {
+ value = org.omg.CORBA.ServiceInformationHelper.read(in);
+ }
+
+ /**
+ * Retrieves the {@code TypeCode} object that corresponds
+ * to the value held in this {@code ServiceInformationHolder} object's
+ * {@code value} field.
+ *
+ * @return the type code for the value held in this {@code ServiceInformationHolder}
+ * object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return org.omg.CORBA.ServiceInformationHelper.type();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java
new file mode 100644
index 0000000..8281897
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The mapping of a CORBA <code>enum</code> tagging
+ * <code>SET_OVERRIDE</code> and <code>ADD_OVERRIDE</code>, which
+ * indicate whether policies should replace the
+ * existing policies of an <code>Object</code> or be added to them.
+ * <P>
+ * The method {@link org.omg.CORBA.Object#_set_policy_override} takes
+ * either <code>SetOverrideType.SET_OVERRIDE</code> or
+ * <code>SetOverrideType.ADD_OVERRIDE</code> as its second argument.
+ * The method <code>_set_policy_override</code>
+ * creates a new <code>Object</code> initialized with the
+ * <code>Policy</code> objects supplied as the first argument. If the
+ * second argument is <code>ADD_OVERRIDE</code>, the new policies
+ * are added to those of the <code>Object</code> instance that is
+ * calling the <code>_set_policy_override</code> method. If
+ * <code>SET_OVERRIDE</code> is given instead, the existing policies
+ * are replaced with the given ones.
+ *
+ * @author OMG
+ * @since JDK1.2
+ */
+
+public class SetOverrideType implements org.omg.CORBA.portable.IDLEntity {
+
+ /**
+ * The <code>int</code> constant for the enum value SET_OVERRIDE.
+ */
+ public static final int _SET_OVERRIDE = 0;
+
+ /**
+ * The <code>int</code> constant for the enum value ADD_OVERRIDE.
+ */
+ public static final int _ADD_OVERRIDE = 1;
+
+ /**
+ * The <code>SetOverrideType</code> constant for the enum value SET_OVERRIDE.
+ */
+ public static final SetOverrideType SET_OVERRIDE = new SetOverrideType(_SET_OVERRIDE);
+
+ /**
+ * The <code>SetOverrideType</code> constant for the enum value ADD_OVERRIDE.
+ */
+ public static final SetOverrideType ADD_OVERRIDE = new SetOverrideType(_ADD_OVERRIDE);
+
+ /**
+ * Retrieves the value of this <code>SetOverrideType</code> instance.
+ *
+ * @return the <code>int</code> for this <code>SetOverrideType</code> instance.
+ */
+ public int value() {
+ return _value;
+ }
+
+ /**
+ * Converts the given <code>int</code> to the corresponding
+ * <code>SetOverrideType</code> instance.
+ *
+ * @param i the <code>int</code> to convert; must be either
+ * <code>SetOverrideType._SET_OVERRIDE</code> or
+ * <code>SetOverrideType._ADD_OVERRIDE</code>
+ * @return the <code>SetOverrideType</code> instance whose value
+ * matches the given <code>int</code>
+ * @exception BAD_PARAM if the given <code>int</code> does not
+ * match the value of
+ * any <code>SetOverrideType</code> instance
+ */
+ public static SetOverrideType from_int(int i)
+ {
+ switch (i) {
+ case _SET_OVERRIDE:
+ return SET_OVERRIDE;
+ case _ADD_OVERRIDE:
+ return ADD_OVERRIDE;
+ default:
+ throw new org.omg.CORBA.BAD_PARAM();
+ }
+ }
+
+ /**
+ * Constructs a <code>SetOverrideType</code> instance from an
+ * <code>int</code>.
+ * @param _value must be either <code>SET_OVERRIDE</code> or
+ * <code>ADD_OVERRIDE</code>
+ */
+ protected SetOverrideType(int _value){
+ this._value = _value;
+ }
+
+ /**
+ * The field containing the value for this <code>SetOverrideType</code>
+ * object.
+ *
+ */
+ private int _value;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java
new file mode 100644
index 0000000..fa2c4a6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code SetOverrideType}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/SetOverrideTypeHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* 03 June 1999 11:52:03 o'clock GMT+00:00
+*/
+
+abstract public class SetOverrideTypeHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/SetOverrideType:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.SetOverrideType 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 ());
+ }
+
+ public static org.omg.CORBA.SetOverrideType extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.SetOverrideTypeHelper.id (), "SetOverrideType", new String[] { "SET_OVERRIDE", "ADD_OVERRIDE"} );
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.SetOverrideType read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return org.omg.CORBA.SetOverrideType.from_int (istream.read_long ());
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.SetOverrideType value)
+ {
+ ostream.write_long (value.value ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java
new file mode 100644
index 0000000..aa0cdb1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code Short}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.
+ * <P>A Holder class for a {@code short}
+ * that is used to store "out" and "inout" parameters in IDL operations.
+ * If an IDL operation signature has an IDL {@code short} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code ShortHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myShortHolder} is an instance of {@code ShortHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myShortHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class ShortHolder implements Streamable {
+
+ /**
+ * The {@code short} value held by this {@code ShortHolder}
+ * object.
+ */
+ public short value;
+
+ /**
+ * Constructs a new {@code ShortHolder} object with its
+ * {@code value} field initialized to {@code 0}.
+ */
+ public ShortHolder() {
+ }
+
+ /**
+ * Constructs a new {@code ShortHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code short}.
+ * @param initial the {@code short} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code ShortHolder} object
+ */
+ public ShortHolder(short initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in
+ * this {@code ShortHolder} object
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire.
+ */
+ public void _read(InputStream input) {
+ value = input.read_short();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code ShortHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data.
+ */
+ public void _write(OutputStream output) {
+ output.write_short(value);
+ }
+
+ /**
+ * Returns the TypeCode corresponding to the value held in
+ * this {@code ShortHolder} object.
+ *
+ * @return the TypeCode of the value held in
+ * this {@code ShortHolder} object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_short);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java
new file mode 100644
index 0000000..6159d19
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code ShortSeqHelper}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/ShortSeqHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public abstract class ShortSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/ShortSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, short[] 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 ());
+ }
+
+ public static short[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ShortSeqHelper.id (), "ShortSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static short[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ short value[] = null;
+ int _len0 = istream.read_long ();
+ value = new short[_len0];
+ istream.read_short_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, short[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_short_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java
new file mode 100644
index 0000000..ee4ddbf
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Holder for {@code ShortSeq}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/ShortSeqHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*/
+
+public final class ShortSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public short value[] = null;
+
+ public ShortSeqHolder ()
+ {
+ }
+
+ public ShortSeqHolder (short[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.ShortSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.ShortSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.ShortSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java b/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java
new file mode 100644
index 0000000..a7c8b78
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code String}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code String}
+ * that is used to store "out" and "inout" parameters in IDL operations.
+ * If an IDL operation signature has an IDL {@code string} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code StringHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myStringHolder} is an instance of {@code StringHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myStringHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class StringHolder implements Streamable {
+
+ /**
+ * The {@code String} value held by this {@code StringHolder}
+ * object.
+ */
+ public String value;
+
+ /**
+ * Constructs a new {@code StringHolder} object with its
+ * {@code value} field initialized to {@code null}.
+ */
+ public StringHolder() {
+ }
+
+ /**
+ * Constructs a new {@code StringHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code String}.
+ * @param initial the {@code String} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code StringHolder} object
+ */
+ public StringHolder(String initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads the unmarshalled data from {@code input} and assigns it to
+ * the {@code value} field of this {@code StringHolder} object.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire.
+ */
+ public void _read(InputStream input) {
+ value = input.read_string();
+ }
+
+ /**
+ * Marshals the value held by this {@code StringHolder} object
+ * to the output stream {@code output}.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data.
+ */
+ public void _write(OutputStream output) {
+ output.write_string(value);
+ }
+
+ /**
+ * Retrieves the {@code TypeCode} object that corresponds to
+ * the value held in this {@code StringHolder} object.
+ *
+ * @return the type code of the value held in this {@code StringHolder}
+ * object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_string);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java
new file mode 100644
index 0000000..d2f3c95
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA;
+
+/**
+* The Helper for {@code StringValue}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/StringValueHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from orb.idl
+* 31 May 1999 22:27:30 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public class StringValueHelper implements org.omg.CORBA.portable.BoxedValueHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/StringValue:1.0";
+
+ private static StringValueHelper _instance = new StringValueHelper ();
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String 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;
+ 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;
+ __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_value_box_tc (_id, "StringValue", __typeCode);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ if (!(istream instanceof org.omg.CORBA_2_3.portable.InputStream)) {
+ throw new org.omg.CORBA.BAD_PARAM(); }
+ return (String) ((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (_instance);
+ }
+
+ public java.io.Serializable read_value (org.omg.CORBA.portable.InputStream istream)
+ {
+ String tmp;
+ tmp = istream.read_string ();
+ return (java.io.Serializable) tmp;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ if (!(ostream instanceof org.omg.CORBA_2_3.portable.OutputStream)) {
+ throw new org.omg.CORBA.BAD_PARAM(); }
+ ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, _instance);
+ }
+
+ public void write_value (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value)
+ {
+ if (!(value instanceof String)) {
+ throw new org.omg.CORBA.MARSHAL(); }
+ String valueType = (String) value;
+ ostream.write_string (valueType);
+ }
+
+ public String get_id ()
+ {
+ return _id;
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/StructMember.java b/src/java.corba/share/classes/org/omg/CORBA/StructMember.java
new file mode 100644
index 0000000..58a8e17
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/StructMember.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/StructMember.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Describes a member of an IDL <code>struct</code> in the
+ * Interface Repository, including
+ * the name of the <code>struct</code> member, the type of
+ * the <code>struct</code> member, and
+ * the typedef that represents the IDL type of the
+ * <code>struct</code> member
+ * described the <code>struct</code> member object.
+ */
+public final class StructMember implements org.omg.CORBA.portable.IDLEntity {
+
+ // instance variables
+
+ /**
+ * The name of the struct member described by
+ * this <code>StructMember</code> object.
+ * @serial
+ */
+ public String name;
+
+ /**
+ * The type of the struct member described by
+ * this <code>StructMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.TypeCode type;
+
+ /**
+ * The typedef that represents the IDL type of the struct member described by
+ * this <code>StructMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.IDLType type_def;
+ // constructors
+
+ /**
+ * Constructs a default <code>StructMember</code> object.
+ */
+ public StructMember() { }
+
+ /**
+ * Constructs a <code>StructMember</code> object initialized with the
+ * given values.
+ * @param __name a <code>String</code> object with the name of the struct
+ * member
+ * @param __type a <code>TypeCode</code> object describing the type of the struct
+ * member
+ * @param __type_def an <code>IDLType</code> object representing the IDL type
+ * of the struct member
+ */
+ public StructMember(String __name, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def) {
+ name = __name;
+ type = __type;
+ type_def = __type_def;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java
new file mode 100644
index 0000000..7141758
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code StructMember}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/StructMemberHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl
+* 03 June 1999 11:33:43 o'clock GMT+00:00
+*/
+
+abstract public class StructMemberHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/StructMember:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.StructMember 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 ());
+ }
+
+ public static org.omg.CORBA.StructMember 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [3];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0);
+ _members0[0] = new org.omg.CORBA.StructMember (
+ "name",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode);
+ _members0[1] = new org.omg.CORBA.StructMember (
+ "type",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type ();
+ _members0[2] = new org.omg.CORBA.StructMember (
+ "type_def",
+ _tcOf_members0,
+ null);
+ __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.StructMemberHelper.id (), "StructMember", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.StructMember read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.StructMember value = new org.omg.CORBA.StructMember ();
+ value.name = istream.read_string ();
+ value.type = istream.read_TypeCode ();
+ value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.StructMember value)
+ {
+ ostream.write_string (value.name);
+ ostream.write_TypeCode (value.type);
+ org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/SystemException.java b/src/java.corba/share/classes/org/omg/CORBA/SystemException.java
new file mode 100644
index 0000000..fa808c6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/SystemException.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+import java.util.*;
+import org.omg.CORBA.OMGVMCID;
+import com.sun.corba.se.impl.util.SUNVMCID;
+
+/**
+ * The root class for all CORBA standard exceptions. These exceptions
+ * may be thrown as a result of any CORBA operation invocation and may
+ * also be returned by many standard CORBA API methods. The standard
+ * exceptions contain a minor code, allowing more detailed specification, and a
+ * completion status. This class is subclassed to
+ * generate each one of the set of standard ORB exceptions.
+ * <code>SystemException</code> extends
+ * <code>java.lang.RuntimeException</code>; thus none of the
+ * <code>SystemException</code> exceptions need to be
+ * declared in signatures of the Java methods mapped from operations in
+ * IDL interfaces.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public abstract class SystemException extends java.lang.RuntimeException {
+
+ /**
+ * The CORBA Exception minor code.
+ * @serial
+ */
+ public int minor;
+
+ /**
+ * The status of the operation that threw this exception.
+ * @serial
+ */
+ public CompletionStatus completed;
+
+ /**
+ * Constructs a <code>SystemException</code> exception with the specified detail
+ * message, minor code, and completion status.
+ * A detail message is a String that describes this particular exception.
+ * @param reason the String containing a detail message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ protected SystemException(String reason, int minor, CompletionStatus completed) {
+ super(reason);
+ this.minor = minor;
+ this.completed = completed;
+ }
+
+ /**
+ * Converts this exception to a representative string.
+ */
+ public String toString() {
+ // The fully qualified exception class name
+ String result = super.toString();
+
+ // The vmcid part
+ int vmcid = minor & 0xFFFFF000;
+ switch (vmcid) {
+ case OMGVMCID.value:
+ result += " vmcid: OMG";
+ break;
+ case SUNVMCID.value:
+ result += " vmcid: SUN";
+ break;
+ default:
+ result += " vmcid: 0x" + Integer.toHexString(vmcid);
+ break;
+ }
+
+ // The minor code part
+ int mc = minor & 0x00000FFF;
+ result += " minor code: " + mc;
+
+ // The completion status part
+ switch (completed.value()) {
+ case CompletionStatus._COMPLETED_YES:
+ result += " completed: Yes";
+ break;
+ case CompletionStatus._COMPLETED_NO:
+ result += " completed: No";
+ break;
+ case CompletionStatus._COMPLETED_MAYBE:
+ default:
+ result += " completed: Maybe";
+ break;
+ }
+ return result;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TCKind.java b/src/java.corba/share/classes/org/omg/CORBA/TCKind.java
new file mode 100644
index 0000000..60e89a8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TCKind.java
@@ -0,0 +1,554 @@
+/*
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+
+/**
+ * The Java mapping of the IDL enum <code>TCKind</code>, which
+ * specifies the kind of a <code>TypeCode</code> object. There is
+ * one kind for each primitive and essential IDL data type.
+ * <P>
+ * The class <code>TCKind</code> consists of:
+ * <UL>
+ * <LI>a set of <code>int</code> constants, one for each
+ * kind of IDL data type. These <code>int</code> constants
+ * make it possible to use a <code>switch</code> statement.
+ * <LI>a set of <code>TCKind</code> constants, one for each
+ * kind of IDL data type. The <code>value</code> field for
+ * each <code>TCKind</code> instance is initialized with
+ * the <code>int</code> constant that corresponds with
+ * the IDL data type that the instance represents.
+ * <LI>the method <code>from_int</code>for converting
+ * an <code>int</code> to its
+ * corresponding <code>TCKind</code> instance
+ * <P>Example:
+ * <PRE>
+ * org.omg.CORBA.TCKind k = org.omg.CORBA.TCKind.from_int(
+ * org.omg.CORBA.TCKind._tk_string);
+ * </PRE>
+ * The variable <code>k</code> represents the <code>TCKind</code>
+ * instance for the IDL type <code>string</code>, which is
+ * <code>tk_string</code>.
+ *
+ * <LI>the method <code>value</code> for accessing the
+ * <code>_value</code> field of a <code>TCKind</code> constant
+ * <P>Example:
+ * <PRE>
+ * int i = org.omg.CORBA.TCKind.tk_char.value();
+ * </PRE>
+ * The variable <code>i</code> represents 9, the value for the
+ * IDL data type <code>char</code>.
+ * </UL>
+ * <P>The <code>value</code> field of a <code>TCKind</code> instance
+ * is the CDR encoding used for a <code>TypeCode</code> object in
+ * an IIOP message.
+ */
+
+public class TCKind {
+
+ /**
+ * The <code>int</code> constant for a <code>null</code> IDL data type.
+ */
+ public static final int _tk_null = 0;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>void</code>.
+ */
+ public static final int _tk_void = 1;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>short</code>.
+ */
+ public static final int _tk_short = 2;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>long</code>.
+ */
+ public static final int _tk_long = 3;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>ushort</code>.
+ */
+ public static final int _tk_ushort = 4;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>ulong</code>.
+ */
+ public static final int _tk_ulong = 5;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>float</code>.
+ */
+ public static final int _tk_float = 6;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>double</code>.
+ */
+ public static final int _tk_double = 7;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>boolean</code>.
+ */
+ public static final int _tk_boolean = 8;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>char</code>.
+ */
+ public static final int _tk_char = 9;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>octet</code>.
+ */
+ public static final int _tk_octet = 10;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>any</code>.
+ */
+ public static final int _tk_any = 11;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>TypeCode</code>.
+ */
+ public static final int _tk_TypeCode = 12;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>Principal</code>.
+ */
+ public static final int _tk_Principal = 13;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>objref</code>.
+ */
+ public static final int _tk_objref = 14;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>struct</code>.
+ */
+ public static final int _tk_struct = 15;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>union</code>.
+ */
+ public static final int _tk_union = 16;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>enum</code>.
+ */
+ public static final int _tk_enum = 17;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>string</code>.
+ */
+ public static final int _tk_string = 18;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>sequence</code>.
+ */
+ public static final int _tk_sequence = 19;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>array</code>.
+ */
+ public static final int _tk_array = 20;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>alias</code>.
+ */
+ public static final int _tk_alias = 21;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>except</code>.
+ */
+ public static final int _tk_except = 22;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>longlong</code>.
+ */
+ public static final int _tk_longlong = 23;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>ulonglong</code>.
+ */
+ public static final int _tk_ulonglong = 24;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>longdouble</code>.
+ */
+ public static final int _tk_longdouble = 25;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>wchar</code>.
+ */
+ public static final int _tk_wchar = 26;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>wstring</code>.
+ */
+ public static final int _tk_wstring = 27;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>fixed</code>.
+ */
+ public static final int _tk_fixed = 28;
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>value</code>.
+ */
+ public static final int _tk_value = 29; // orbos 98-01-18: Objects By Value
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>value_box</code>.
+ */
+ public static final int _tk_value_box = 30; // orbos 98-01-18: Objects By Value
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>native</code>.
+ */
+ public static final int _tk_native = 31; // Verify
+
+ /**
+ * The <code>int</code> constant for the IDL data type <code>abstract interface</code>.
+ */
+ public static final int _tk_abstract_interface = 32;
+
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_null</code>.
+ */
+ public static final TCKind tk_null = new TCKind(_tk_null);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_void</code>.
+ */
+ public static final TCKind tk_void = new TCKind(_tk_void);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_short</code>.
+ */
+ public static final TCKind tk_short = new TCKind(_tk_short);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_long</code>.
+ */
+ public static final TCKind tk_long = new TCKind(_tk_long);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_ushort</code>.
+ */
+ public static final TCKind tk_ushort = new TCKind(_tk_ushort);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_ulong</code>.
+ */
+ public static final TCKind tk_ulong = new TCKind(_tk_ulong);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_float</code>.
+ */
+ public static final TCKind tk_float = new TCKind(_tk_float);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_double</code>.
+ */
+ public static final TCKind tk_double = new TCKind(_tk_double);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_boolean</code>.
+ */
+ public static final TCKind tk_boolean = new TCKind(_tk_boolean);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_char</code>.
+ */
+ public static final TCKind tk_char = new TCKind(_tk_char);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_octet</code>.
+ */
+ public static final TCKind tk_octet = new TCKind(_tk_octet);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_any</code>.
+ */
+ public static final TCKind tk_any = new TCKind(_tk_any);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_TypeCode</code>.
+ */
+ public static final TCKind tk_TypeCode = new TCKind(_tk_TypeCode);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_Principal</code>.
+ */
+ public static final TCKind tk_Principal = new TCKind(_tk_Principal);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_objref</code>.
+ */
+ public static final TCKind tk_objref = new TCKind(_tk_objref);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_struct</code>.
+ */
+ public static final TCKind tk_struct = new TCKind(_tk_struct);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_union</code>.
+ */
+ public static final TCKind tk_union = new TCKind(_tk_union);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_enum</code>.
+ */
+ public static final TCKind tk_enum = new TCKind(_tk_enum);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_string</code>.
+ */
+ public static final TCKind tk_string = new TCKind(_tk_string);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_sequence</code>.
+ */
+ public static final TCKind tk_sequence = new TCKind(_tk_sequence);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_array</code>.
+ */
+ public static final TCKind tk_array = new TCKind(_tk_array);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_alias</code>.
+ */
+ public static final TCKind tk_alias = new TCKind(_tk_alias);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_except</code>.
+ */
+ public static final TCKind tk_except = new TCKind(_tk_except);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_longlong</code>.
+ */
+ public static final TCKind tk_longlong = new TCKind(_tk_longlong);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_ulonglong</code>.
+ */
+ public static final TCKind tk_ulonglong = new TCKind(_tk_ulonglong);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_longdouble</code>.
+ */
+ public static final TCKind tk_longdouble = new TCKind(_tk_longdouble);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_wchar</code>.
+ */
+ public static final TCKind tk_wchar = new TCKind(_tk_wchar);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_wstring</code>.
+ */
+ public static final TCKind tk_wstring = new TCKind(_tk_wstring);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_fixed</code>.
+ */
+ public static final TCKind tk_fixed = new TCKind(_tk_fixed);
+
+ // orbos 98-01-18: Objects By Value -- begin
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_value</code>.
+ */
+ public static final TCKind tk_value = new TCKind(_tk_value);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_value_box</code>.
+ */
+ public static final TCKind tk_value_box = new TCKind(_tk_value_box);
+ // orbos 98-01-18: Objects By Value -- end
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_native</code>.
+ */
+ public static final TCKind tk_native = new TCKind(_tk_native);
+
+ /**
+ * The <code>TCKind</code> constant whose <code>value</code> field is
+ * initialized with <code>TCKind._tk_abstract_interface</code>.
+ */
+ public static final TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface);
+
+
+
+
+ /**
+ * Retrieves the value of this <code>TCKind</code> instance.
+ *
+ * @return the <code>int</code> that represents the kind of
+ * IDL data type for this <code>TCKind</code> instance
+ */
+ public int value() {
+ return _value;
+ }
+
+ /**
+ * Converts the given <code>int</code> to the corresponding
+ * <code>TCKind</code> instance.
+ *
+ * @param i the <code>int</code> to convert. It must be one of
+ * the <code>int</code> constants in the class
+ * <code>TCKind</code>.
+ * @return the <code>TCKind</code> instance whose <code>value</code>
+ * field matches the given <code>int</code>
+ * @exception BAD_PARAM if the given <code>int</code> does not
+ * match the <code>_value</code> field of
+ * any <code>TCKind</code> instance
+ */
+ public static TCKind from_int(int i) {
+ switch (i) {
+ case _tk_null:
+ return tk_null;
+ case _tk_void:
+ return tk_void;
+ case _tk_short:
+ return tk_short;
+ case _tk_long:
+ return tk_long;
+ case _tk_ushort:
+ return tk_ushort;
+ case _tk_ulong:
+ return tk_ulong;
+ case _tk_float:
+ return tk_float;
+ case _tk_double:
+ return tk_double;
+ case _tk_boolean:
+ return tk_boolean;
+ case _tk_char:
+ return tk_char;
+ case _tk_octet:
+ return tk_octet;
+ case _tk_any:
+ return tk_any;
+ case _tk_TypeCode:
+ return tk_TypeCode;
+ case _tk_Principal:
+ return tk_Principal;
+ case _tk_objref:
+ return tk_objref;
+ case _tk_struct:
+ return tk_struct;
+ case _tk_union:
+ return tk_union;
+ case _tk_enum:
+ return tk_enum;
+ case _tk_string:
+ return tk_string;
+ case _tk_sequence:
+ return tk_sequence;
+ case _tk_array:
+ return tk_array;
+ case _tk_alias:
+ return tk_alias;
+ case _tk_except:
+ return tk_except;
+ case _tk_longlong:
+ return tk_longlong;
+ case _tk_ulonglong:
+ return tk_ulonglong;
+ case _tk_longdouble:
+ return tk_longdouble;
+ case _tk_wchar:
+ return tk_wchar;
+ case _tk_wstring:
+ return tk_wstring;
+ case _tk_fixed:
+ return tk_fixed;
+ case _tk_value: // orbos 98-01-18: Objects By Value
+ return tk_value;
+ case _tk_value_box: // orbos 98-01-18: Objects By Value
+ return tk_value_box;
+ case _tk_native:
+ return tk_native;
+ case _tk_abstract_interface:
+ return tk_abstract_interface;
+ default:
+ throw new org.omg.CORBA.BAD_PARAM();
+ }
+ }
+
+
+ /**
+ * Creates a new <code>TCKind</code> instance initialized with the given
+ * <code>int</code>.
+ * @deprecated Do not use this constructor as this method should be private
+ * according to the OMG specification. Use {@link #from_int(int)} instead.
+ *
+ * @param _value the <code>int</code> to convert. It must be one of
+ * the <code>int</code> constants in the class
+ * <code>TCKind</code>.
+ */
+ @Deprecated
+ protected TCKind(int _value){
+ this._value = _value;
+ }
+ private int _value;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java b/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java
new file mode 100644
index 0000000..ed4a979
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * <code>TIMEOUT</code> is raised when no delivery has been made and the
+ * specified time-to-live period has been exceeded. It is a standard system
+ * exception because time-to-live QoS can be applied to any invocation.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @since J2SE 1.5
+ */
+
+public final class TIMEOUT extends SystemException {
+
+ /**
+ * Constructs an <code>TIMEOUT</code> exception with
+ * minor code set to 0 and CompletionStatus set to COMPLETED_NO.
+ */
+ public TIMEOUT() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>TIMEOUT</code> exception with the
+ * specified message.
+ *
+ * @param detailMessage string containing a detailed message.
+ */
+ public TIMEOUT(String detailMessage) {
+ this(detailMessage, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>TIMEOUT</code> exception with the
+ * specified minor code and completion status.
+ *
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public TIMEOUT(int minorCode,
+ CompletionStatus completionStatus) {
+ this("", minorCode, completionStatus);
+ }
+
+ /**
+ * Constructs an <code>TIMEOUT</code> exception with the
+ * specified message, minor code, and completion status.
+ *
+ * @param detailMessage string containing a detailed message.
+ * @param minorCode minor code.
+ * @param completionStatus completion status.
+ */
+ public TIMEOUT(String detailMessage,
+ int minorCode,
+ CompletionStatus completionStatus) {
+ super(detailMessage, minorCode, completionStatus);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java
new file mode 100644
index 0000000..f4ce02c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The CORBA <code>TRANSACTION_MODE</code> exception is thrown
+ * by the client ORB if it detects a mismatch between the
+ * InvocationPolicy in the IOR and the chosen invocation path
+ * (i.e, direct or routed invocation).
+ * It contains a minor code, which gives information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * The OMG CORBA core 2.4 specification has details.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class TRANSACTION_MODE extends SystemException {
+ /**
+ * Constructs a <code>TRANSACTION_MODE</code> exception with a default
+ * minor code of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public TRANSACTION_MODE() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_MODE</code> exception with the specified
+ * description message, a minor code of 0, and a completion state of
+ * COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public TRANSACTION_MODE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_MODE</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_MODE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_MODE</code> exception with the specified
+ * description message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_MODE(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java
new file mode 100644
index 0000000..5f4d94e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception indicates that the request carried a null transaction context,
+ * but an active transaction is required.<P>
+ * It contains a minor code, which gives information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * The OMG Transaction Service specfication has details.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class TRANSACTION_REQUIRED extends SystemException {
+ /**
+ * Constructs a <code>TRANSACTION_REQUIRED</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public TRANSACTION_REQUIRED() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified
+ * description message, a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public TRANSACTION_REQUIRED(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_REQUIRED(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_REQUIRED(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java
new file mode 100644
index 0000000..52e597c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when the transaction associated with the request has
+ * already been rolled back or marked to roll back. Thus, the requested
+ * operation either could not be performed or was not performed because
+ * further computation on behalf of the transaction would be fruitless.<P>
+ * See the OMG Transaction
+ * Service specification for details.
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class TRANSACTION_ROLLEDBACK extends SystemException {
+ /**
+ * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public TRANSACTION_ROLLEDBACK() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the
+ * specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public TRANSACTION_ROLLEDBACK(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_ROLLEDBACK(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the
+ * specified description message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_ROLLEDBACK(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java
new file mode 100644
index 0000000..5870c44
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The CORBA <code>TRANSACTION_UNAVAILABLE</code> exception is thrown
+ * by the ORB when it cannot process a transaction service context because
+ * its connection to the Transaction Service has been abnormally terminated.
+ *
+ * It contains a minor code, which gives information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * The OMG CORBA core 2.4 specification has details.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class TRANSACTION_UNAVAILABLE extends SystemException {
+ /**
+ * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception
+ * with a default minor code of 0, a completion state of
+ * CompletionStatus.COMPLETED_NO, and a null description.
+ */
+ public TRANSACTION_UNAVAILABLE() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the
+ * specifieddescription message, a minor code of 0, and a completion state
+ * of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public TRANSACTION_UNAVAILABLE(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the
+ * specified minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_UNAVAILABLE(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the
+ * specified description message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSACTION_UNAVAILABLE(String s, int minor,
+ CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java
new file mode 100644
index 0000000..fc03856
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Exception thrown when the ORB attempted to reach an object and failed.
+ * It is not an indication that an object does not exist. Instead, it simply
+ * means that no further determination of an object's status was possible
+ * because it could not be reached. This exception is raised if an attempt
+ * to establish a connection fails, for example, because the server or the
+ * implementation repository is down.<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class TRANSIENT extends SystemException {
+ /**
+ * Constructs a <code>TRANSIENT</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public TRANSIENT() {
+ this("");
+ }
+
+ /**
+ * Constructs a <code>TRANSIENT</code> exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public TRANSIENT(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs a <code>TRANSIENT</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSIENT(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs a <code>TRANSIENT</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public TRANSIENT(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java
new file mode 100644
index 0000000..8366a75
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java
@@ -0,0 +1,516 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.TypeCodePackage.*;
+import org.omg.CORBA.portable.IDLEntity;
+
+/**
+ * A container for information about a specific CORBA data
+ * type.
+ * <P>
+ * <code>TypeCode</code> objects are used:
+ * <UL>
+ * <LI>in the Dynamic Invocation Interface -- to indicate the types
+ * of the actual arguments or the type of the return value. <BR>
+ * <code>NamedValue</code> objects are used to represent arguments and
+ * return values. One of their components is an <code>Any</code>
+ * object, which in turn has as one of its components a
+ * <code>TypeCode</code> object.
+ * <LI>by an Interface Repository to represent the type specifications
+ * that are part of many OMG IDL declarations
+ * </UL>
+ * <P>
+ * The representation of a <code>TypeCode</code> object is opaque,
+ * but abstractly, a <code>TypeCode</code> object consists of:
+ * <UL>
+ * <LI>a <code>kind</code> field, which is set to an instance
+ * of the class <code>TCKind</code>
+ * <LI>zero or more additional fields appropriate
+ * for the particular kind. For example, the
+ * <code>TypeCode</code> object
+ * describing the OMG IDL type <code>1ong</code> has kind
+ * <code>TCKind.tk_long</code> and no additional fields.
+ * The <code>TypeCode</code> describing OMG IDL type
+ * <code>sequence&lt;boolean, 10&gt;</code> has a <code>kind</code> field
+ * with the value
+ * <code>TCKind.tk_sequence</code> and also fields with the values
+ * <code>boolean</code> and <code>10</code> for the
+ * type of sequence elements and the length of the sequence.
+ * </UL>
+ *
+ * <code>TypeCode</code> objects can be obtained in various ways:
+ * <OL>
+ * <LI>from a call to the method <code>Any.insert_X</code>, where X is
+ * a basic IDL type. This method creates a <code>TypeCode</code> object
+ * for type X and assigns it to the <code>Any</code> object's
+ * <code>type</code> field.
+ * <LI>from invocations of methods in the ORB class
+ * <P>For example, the following creates a <code>TypeCode</code>
+ * object for a <code>string</code> with a maximum of 30 characters:
+ * <PRE>
+ * org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
+ * </PRE>
+ * <P> The following creates a <code>TypeCode</code>
+ * object for an <code>array</code> of five <code>string</code>s:
+ * <PRE>
+ * org.omg.CORBA.TypeCode tcArray = orb.create_array_tc(
+ * 5, TCKind.tk_string);
+ * </PRE>
+ * <P> The following creates a <code>TypeCode</code>
+ * object for an interface named "Account":
+ * <PRE>
+ * org.omg.CORBA.TypeCode tcInterface = orb.create_interface_tc(
+ * "thisId", "Account");
+ * </PRE>
+ * <LI>as the return value from the <code>_type</code> method
+ * in <code>Holder</code> classes for user-defined
+ * IDL types. These <code>Holder</code> classes are generated
+ * by the <code>idltojava</code> compiler.
+ * <LI>from a CORBA Interface Repository
+ * </OL>
+ * <P>
+ * Most of the methods in the class <code>TypeCode</code>
+ * are accessors, and the information contained in a <code>TypeCode</code>
+ * object is specific to a particular type. Therefore, methods
+ * must be invoked
+ * only on the kind of type codes to which they apply. If an
+ * accessor method
+ * tries to access information from an inappropriate kind of
+ * type code, it will throw
+ * the exception <code>TypeCodePackage.BadKind</code>. For example,
+ * if the method <code>discriminator_type</code> is called on anything
+ * other than a <code>union</code>, it will throw <code>BadKind</code>
+ * because only <code>union</code>s have a discriminator.
+ * The following list shows which methods apply to which kinds of
+ * type codes:
+ * <P>
+ * These methods may be invoked on all <code>TypeCode</code> kinds:
+ * <UL>
+ * <LI><code>equal</code>
+ * <LI><code>kind</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>objref</code>, <code>struct</code>,
+ * <code>union</code>, <code>enum</code>,
+ * <code>alias</code>, <code>exception</code>, <code>value</code>,
+ * <code>value_box</code>, <code>native</code>,
+ * and <code>abstract_interface</code>:
+ * <UL>
+ * <LI><code>id</code>
+ * <LI><code>name</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>struct</code>,
+ * <code>union</code>, <code>enum</code>,
+ * and <code>exception</code>:
+ * <UL>
+ * <LI><code>member_count</code>
+ * <LI><code>member_name</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>struct</code>,
+ * <code>union</code>, and <code>exception</code>:
+ * <UL>
+ * <LI><code>member_type(int index)</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>union</code>:
+ * <UL>
+ * <LI><code>member_label</code>
+ * <LI><code>discriminator_type</code>
+ * <LI><code>default_index</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>string</code>,
+ * <code>sequence</code>, and <code>array</code>:
+ * <UL>
+ * <LI><code>length</code>
+ * </UL>
+ * <P>
+ * These methods may be invoked on <code>alias</code>,
+ * <code>sequence</code>, <code>array</code>, and <code>value_box</code>:
+ * <UL>
+ * <LI><code>content_type</code>
+ * </UL>
+ * <P>
+ * Unlike other CORBA pseudo-objects, <code>TypeCode</code>
+ * objects can be passed as general IDL parameters. <p>
+ * The methods <code>parameter</code> and <code>param_count</code>,
+ * which are deprecated, are not mapped. <p>
+ *
+ * Java IDL extends the CORBA specification to allow all operations permitted
+ * on a <code>struct</code> <code>TypeCode</code> to be permitted
+ * on an <code>exception</code> <code>TypeCode</code> as well.
+ */
+public abstract class TypeCode implements IDLEntity {
+
+ /**
+ * Compares this <code>TypeCode</code> object with the given one,
+ * testing for equality. <code>TypeCode</code> objects are equal if
+ * they are interchangeable and give identical results when
+ * <code>TypeCode</code> operations are applied to them.
+ *
+ * @param tc the <code>TypeCode</code> object to compare against
+ * @return <code>true</code> if the type codes are equal;
+ * <code>false</code> otherwise
+ */
+ public abstract boolean equal(TypeCode tc);
+
+ /**
+ * Tests to see if the given <code>TypeCode</code> object is
+ * equivalent to this <code>TypeCode</code> object.
+ *
+ *
+ * @param tc the typecode to compare with this typecode
+ *
+ * @return <code>true</code> if the given typecode is equivalent to
+ * this typecode; <code>false</code> otherwise
+ *
+ */
+ public abstract boolean equivalent(TypeCode tc);
+
+ /**
+ * Strips out all optional name and member name fields,
+ * but leaves all alias typecodes intact.
+ * @return a <code>TypeCode</code> object with optional name and
+ * member name fields stripped out, except for alias typecodes,
+ * which are left intact
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ public abstract TypeCode get_compact_typecode();
+
+
+ /**
+ * Retrieves the kind of this <code>TypeCode</code> object.
+ * The kind of a type code determines which <code>TypeCode</code>
+ * methods may legally be invoked on it.
+ * <P>
+ * The method <code>kind</code> may be invoked on any
+ * <code>TypeCode</code> object.
+ *
+ * @return the <code>TCKind</code> instance indicating the
+ * value of the <code>kind</code> field of this
+ * <code>TypeCode</code> object
+ */
+ public abstract TCKind kind();
+
+ /**
+ * Retrieves the RepositoryId globally identifying the type
+ * of this <code>TypeCode</code> object.
+ * <P>
+ * The method <code>id</code> can be invoked on object reference,
+ * structure, union, enumeration, alias, exception, valuetype,
+ * boxed valuetype, native, and abstract interface type codes.
+ * Object reference, exception, valuetype, boxed valuetype,
+ * native, and abstract interface <code>TypeCode</code> objects
+ * always have a RepositoryId.
+ * Structure, union, enumeration, and alias <code>TypeCode</code> objects
+ * obtained from the Interface Repository or the method
+ * <code>ORB.create_operation_list</code>
+ * also always have a RepositoryId. If there is no RepositoryId, the
+ * method can return an empty string.
+ *
+ * @return the RepositoryId for this <code>TypeCode</code> object
+ * or an empty string if there is no RepositoryID
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of<code>TypeCode</code>
+ * object
+ */
+ public abstract String id() throws BadKind;
+
+ /**
+ * Retrieves the simple name identifying this <code>TypeCode</code>
+ * object within its
+ * enclosing scope. Since names are local to a Repository, the
+ * name returned from a <code>TypeCode</code> object
+ * may not match the name of the
+ * type in any particular Repository, and may even be an empty
+ * string.
+ * <P>
+ * The method <code>name</code> can be invoked on object reference,
+ * structure, union, enumeration, alias, exception, valuetype,
+ * boxed valuetype, native, and abstract interface
+ * <code>TypeCode</code> objects.
+ *
+ * @return the name identifying this <code>TypeCode</code> object
+ * or an empty string
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of<code>TypeCode</code>
+ * object
+ */
+ public abstract String name() throws BadKind;
+
+ /**
+ * Retrieves the number of members in the type described by
+ * this <code>TypeCode</code> object.
+ * <P>
+ * The method <code>member_count</code> can be invoked on
+ * structure, union, and enumeration <code>TypeCode</code> objects.
+ * Java IDL extends the CORBA specification to allow this method to
+ * operate on exceptions as well.
+ *
+ * @return the number of members constituting the type described
+ * by this <code>TypeCode</code> object
+ *
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract int member_count() throws BadKind;
+
+ /**
+ * Retrieves the simple name of the member identified by
+ * the given index. Since names are local to a
+ * Repository, the name returned from a <code>TypeCode</code> object
+ * may not match the name of the member in any particular
+ * Repository, and may even be an empty string.
+ * <P>
+ * The method <code>member_name</code> can be invoked on structure, union,
+ * and enumeration <code>TypeCode</code> objects.
+ * Java IDL extends the CORBA specification to allow this method to
+ * operate on exceptions as well.
+ *
+ * @param index index of the member for which a name is being reqested
+ * @return simple name of the member identified by the
+ * index or an empty string
+ * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is equal
+ * to or greater than
+ * the number of members constituting the type
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract String member_name(int index)
+ throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds;
+
+ /**
+ * Retrieves the <code>TypeCode</code> object describing the type
+ * of the member identified by the given index.
+ * <P>
+ * The method <code>member_type</code> can be invoked on structure
+ * and union <code>TypeCode</code> objects.
+ * Java IDL extends the CORBA specification to allow this method to
+ * operate on exceptions as well.
+ *
+ * @param index index of the member for which type information
+ * is begin requested
+ * @return the <code>TypeCode</code> object describing the
+ * member at the given index
+ * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is
+ * equal to or greater than
+ * the number of members constituting the type
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract TypeCode member_type(int index)
+ throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds;
+
+ /**
+ * Retrieves the label of the union member
+ * identified by the given index. For the default member,
+ * the label is the zero octet.
+ * <P>
+ * The method <code>member_label</code> can only be invoked on union
+ * <code>TypeCode</code> objects.
+ *
+ * @param index index of the union member for which the
+ * label is being requested
+ * @return an <code>Any</code> object describing the label of
+ * the requested union member or the zero octet for
+ * the default member
+ * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is
+ * equal to or greater than
+ * the number of members constituting the union
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on a non-union <code>TypeCode</code>
+ * object
+ */
+ public abstract Any member_label(int index)
+ throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds;
+
+ /**
+ * Returns a <code>TypeCode</code> object describing
+ * all non-default member labels.
+ * The method <code>discriminator_type</code> can be invoked only
+ * on union <code>TypeCode</code> objects.
+ *
+ * @return the <code>TypeCode</code> object describing
+ * the non-default member labels
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on a non-union <code>TypeCode</code>
+ * object
+ */
+ public abstract TypeCode discriminator_type()
+ throws BadKind;
+
+ /**
+ * Returns the index of the
+ * default member, or -1 if there is no default member.
+ * <P>
+ * The method <code>default_index</code> can be invoked only on union
+ * <code>TypeCode</code> objects.
+ *
+ * @return the index of the default member, or -1 if
+ * there is no default member
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on a non-union <code>TypeCode</code>
+ * object
+ */
+ public abstract int default_index() throws BadKind;
+
+ /**
+ * Returns the number of elements in the type described by
+ * this <code>TypeCode</code> object.
+ * For strings and sequences, it returns the
+ * bound, with zero indicating an unbounded string or sequence.
+ * For arrays, it returns the number of elements in the array.
+ * <P>
+ * The method <code>length</code> can be invoked on string, sequence, and
+ * array <code>TypeCode</code> objects.
+ *
+ * @return the bound for strings and sequences, or the
+ * number of elements for arrays
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract int length() throws BadKind;
+
+ /**
+ * Returns the <code>TypeCode</code> object representing the
+ * IDL type for the members of the object described by this
+ * <code>TypeCode</code> object.
+ * For sequences and arrays, it returns the
+ * element type. For aliases, it returns the original type. Note
+ * that multidimensional arrays are represented by nesting
+ * <code>TypeCode</code> objects, one per dimension.
+ * For boxed valuetypes, it returns the boxed type.
+ * <P>
+ * The method <code>content_type</code> can be invoked on sequence, array,
+ * alias, and boxed valuetype <code>TypeCode</code> objects.
+ *
+ * @return a <code>TypeCode</code> object representing
+ * the element type for sequences and arrays, the
+ * original type for aliases, or the
+ * boxed type for boxed valuetypes.
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract TypeCode content_type() throws BadKind;
+
+
+ /**
+ * Returns the number of digits in the fixed type described by this
+ * <code>TypeCode</code> object. For example, the typecode for
+ * the number 3000.275d could be <code>fixed&lt;7,3&gt;</code>, where
+ * 7 is the precision and 3 is the scale.
+ *
+ * @return the total number of digits
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ *
+ */
+ public abstract short fixed_digits() throws BadKind ;
+
+ /**
+ * Returns the scale of the fixed type described by this
+ * <code>TypeCode</code> object. A positive number indicates the
+ * number of digits to the right of the decimal point.
+ * For example, the number 3000d could have the
+ * typecode <code>fixed&lt;4,0&gt;</code>, where the first number is
+ * the precision and the second number is the scale.
+ * A negative number is also possible and adds zeroes to the
+ * left of the decimal point. In this case, <code>fixed&lt;1,-3&gt;</code>,
+ * could be the typecode for the number 3000d.
+ *
+ * @return the scale of the fixed type that this
+ * <code>TypeCode</code> object describes
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method
+ * is invoked on an inappropriate kind of <code>TypeCode</code>
+ * object
+ */
+ public abstract short fixed_scale() throws BadKind ;
+
+ /**
+ * Returns the constant that indicates the visibility of the member
+ * at the given index.
+ *
+ * This operation can only be invoked on non-boxed value
+ * <code>TypeCode</code> objects.
+ *
+ * @param index an <code>int</code> indicating the index into the
+ * value
+ * @return either <code>PRIVATE_MEMBER.value</code> or
+ * <code>PUBLIC_MEMBER.value</code>
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method
+ * is invoked on a non-value type <code>TypeCode</code>
+ * object
+ * @throws org.omg.CORBA.TypeCodePackage.Bounds
+ * if the given index is out of bounds
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ abstract public short member_visibility(int index)
+ throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds ;
+
+ /**
+ * Returns a constant indicating the modifier of the value type
+ * that this <code>TypeCode</code> object describes. The constant
+ * returned must be one of the following: <code>VM_NONE.value</code>,
+ * <code>VM_ABSTRACT.value</code>, <code>VM_CUSTOM.value</code>,
+ * or <code>VM_TRUNCATABLE.value</code>,
+ *
+ * @return a constant describing the value type
+ * that this <code>TypeCode</code> object describes
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind
+ * if this method
+ * is invoked on a non-value type <code>TypeCode</code>
+ * object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ abstract public short type_modifier() throws BadKind ;
+
+ /**
+ * Returns the <code>TypeCode</code> object that describes the concrete base type
+ * of the value type that this <code>TypeCode</code> object describes.
+ * Returns null if it doesn't have a concrete base type.
+ *
+ * @return the <code>TypeCode</code> object that describes the
+ * concrete base type of the value type
+ * that this <code>TypeCode</code> object describes
+ * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method
+ * is invoked on a non-boxed value type <code>TypeCode</code> object
+ * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
+ * comments for unimplemented features</a>
+ */
+ abstract public TypeCode concrete_base_type() throws BadKind ;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java
new file mode 100644
index 0000000..2fcde8b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code TypeCode}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code TypeCode} object
+ * that is used to store "out" and "inout" parameters in IDL operations.
+ * If an IDL operation signature has an IDL {@code TypeCode} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code TypeCodeHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myTypeCodeHolder} is an instance of {@code TypeCodeHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myTypeCodeHolder.value}.
+ *
+ * @since JDK1.2
+ */
+public final class TypeCodeHolder implements Streamable {
+
+ /**
+ * The {@code TypeCode} value held by
+ * this {@code TypeCodeHolder} object.
+ */
+ public TypeCode value;
+
+ /**
+ * Constructs a new {@code TypeCodeHolder} object with its
+ * {@code value} field initialized to {@code null}.
+ */
+ public TypeCodeHolder() {
+ }
+
+ /**
+ * Constructs a new {@code TypeCodeHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code TypeCode} object.
+ * @param initial the {@code TypeCode} object with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code TypeCodeHolder} object
+ */
+ public TypeCodeHolder(TypeCode initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in
+ * this {@code TypeCodeHolder} object
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = input.read_TypeCode();
+ }
+
+ /**
+ * Marshals to {@code output} the value in
+ * this {@code TypeCodeHolder} object.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ output.write_TypeCode(value);
+ }
+
+ /**
+ * Returns the TypeCode corresponding to the value held in
+ * this {@code TypeCodeHolder} object.
+ *
+ * @return the TypeCode of the value held in
+ * this {@code TypeCodeHolder} object
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_TypeCode);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java
new file mode 100644
index 0000000..e139c2b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.TypeCodePackage;
+
+/**
+ * The exception <code>BadKind</code> is thrown when
+ * an inappropriate operation is invoked on a <code>TypeCode</code> object. For example,
+ * invoking the method <code>discriminator_type()</code> on an instance of
+ * <code>TypeCode</code> that does not represent an IDL union will cause the
+ * exception <code>BadKind</code> to be thrown.
+ *
+ * @see org.omg.CORBA.TypeCode
+ * @since JDK1.2
+ */
+
+public final class BadKind extends org.omg.CORBA.UserException {
+ /**
+ * Constructs a <code>BadKind</code> exception with no reason message.
+ */
+ public BadKind() {
+ super();
+ }
+
+ /**
+ * Constructs a <code>BadKind</code> exception with the specified
+ * reason message.
+ * @param reason the String containing a reason message
+ */
+ public BadKind(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java
new file mode 100644
index 0000000..b9c1756
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.TypeCodePackage;
+
+
+/**
+ * This Helper class is used to facilitate the marshalling of
+ * {@code TypeCodePackage/BadKind}.
+ * For more information on Helper files, see
+ * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.
+ */
+
+abstract public class BadKindHelper
+{
+ private static String _id = "IDL:omg.org.CORBA/TypeCode/BadKind:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.TypeCodePackage.BadKind 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 ());
+ }
+
+ public static org.omg.CORBA.TypeCodePackage.BadKind 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [0];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.TypeCodePackage.BadKindHelper.id (), "BadKind", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.TypeCodePackage.BadKind read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.TypeCodePackage.BadKind value = new org.omg.CORBA.TypeCodePackage.BadKind ();
+ // read and discard the repository ID
+ istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.TypeCodePackage.BadKind value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java
new file mode 100644
index 0000000..059a3ab
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.TypeCodePackage;
+
+/**
+ * Provides the <code>TypeCode</code> operations <code>member_name()</code>,
+ * <code>member_type()</code>, and <code>member_label</code>.
+ * These methods
+ * raise <code>Bounds</code> when the index parameter is greater than or equal
+ * to the number of members constituting the type.
+ *
+ * @since JDK1.2
+ */
+
+public final class Bounds extends org.omg.CORBA.UserException {
+
+ /**
+ * Constructs a <code>Bounds</code> exception with no reason message.
+ */
+ public Bounds() {
+ super();
+ }
+
+ /**
+ * Constructs a <code>Bounds</code> exception with the specified
+ * reason message.
+ * @param reason the String containing a reason message
+ */
+ public Bounds(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java
new file mode 100644
index 0000000..5c1c89f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.TypeCodePackage;
+
+
+/**
+ * This Helper class is used to facilitate the marshalling of
+ * {@code TypeCodePackage/Bounds}.
+ * For more information on Helper files, see
+ * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.
+ */
+
+abstract public class BoundsHelper
+{
+ private static String _id = "IDL:omg.org.CORBA/TypeCode/Bounds:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.TypeCodePackage.Bounds 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 ());
+ }
+
+ public static org.omg.CORBA.TypeCodePackage.Bounds 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [0];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.TypeCodePackage.BoundsHelper.id (), "Bounds", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.TypeCodePackage.Bounds read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.TypeCodePackage.Bounds value = new org.omg.CORBA.TypeCodePackage.Bounds ();
+ // read and discard the repository ID
+ istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.TypeCodePackage.Bounds value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html
new file mode 100644
index 0000000..e69994d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+
+-->
+</head>
+<body bgcolor="white">
+
+Provides the user-defined exceptions <code>BadKind</code>
+and <code>Bounds</code>, which are thrown by methods in
+in the class <code>TypeCode</code>.
+
+
+ <h2>Related Documentation</h2>
+
+For an overview, please see:
+<ul>
+ <li><a href="../package-summary.html#package_description">
+ comments on the <code>CORBA</code> package</a>
+
+ </ul>
+
+
+@since JDK1.2
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java
new file mode 100644
index 0000000..54376e8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code ULongLongSeq}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/ULongLongSeqHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:37 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public abstract class ULongLongSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/ULongLongSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, long[] 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 ());
+ }
+
+ public static long[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulonglong);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ULongLongSeqHelper.id (), "ULongLongSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static long[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ long value[] = null;
+ int _len0 = istream.read_long ();
+ value = new long[_len0];
+ istream.read_ulonglong_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, long[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_ulonglong_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java
new file mode 100644
index 0000000..a56e64b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Holder for {@code ULongLongSeq}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/ULongLongSeqHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:37 o'clock GMT+00:00
+*/
+
+public final class ULongLongSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public long value[] = null;
+
+ public ULongLongSeqHolder ()
+ {
+ }
+
+ public ULongLongSeqHolder (long[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.ULongLongSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.ULongLongSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.ULongLongSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java
new file mode 100644
index 0000000..c89e7b7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code ULongSeq}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/ULongSeqHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public abstract class ULongSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/ULongSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, int[] 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 ());
+ }
+
+ public static int[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulong);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ULongSeqHelper.id (), "ULongSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static int[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ int value[] = null;
+ int _len0 = istream.read_long ();
+ value = new int[_len0];
+ istream.read_ulong_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, int[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_ulong_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java
new file mode 100644
index 0000000..0895bb4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Holder for {@code ULongSeq}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/ULongSeqHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*/
+
+public final class ULongSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public int value[] = null;
+
+ public ULongSeqHolder ()
+ {
+ }
+
+ public ULongSeqHolder (int[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.ULongSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.ULongSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.ULongSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java b/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java
new file mode 100644
index 0000000..ba57f3e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * This exception is raised if an operation implementation
+ * throws a non-CORBA exception (such as an exception
+ * specific to the implementation's programming language),
+ * or if an operation raises a user exception that does not
+ * appear in the operation's raises expression. UNKNOWN is
+ * also raised if the server returns a system exception that
+ * is unknown to the client. (This can happen if the server
+ * uses a later version of CORBA than the client and new system
+ * exceptions have been added to the later version.)<P>
+ * It contains a minor code, which gives more detailed information about
+ * what caused the exception, and a completion status. It may also contain
+ * a string describing the exception.
+ * <P>
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meaning}
+ * to see the minor codes for this exception.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class UNKNOWN extends SystemException {
+ /**
+ * Constructs an <code>UNKNOWN</code> exception with a default minor code
+ * of 0, a completion state of CompletionStatus.COMPLETED_NO,
+ * and a null description.
+ */
+ public UNKNOWN() {
+ this("");
+ }
+
+ /**
+ * Constructs an <code>UNKNOWN</code> exception with the specified description message,
+ * a minor code of 0, and a completion state of COMPLETED_NO.
+ * @param s the String containing a detail message
+ */
+ public UNKNOWN(String s) {
+ this(s, 0, CompletionStatus.COMPLETED_NO);
+ }
+
+ /**
+ * Constructs an <code>UNKNOWN</code> exception with the specified
+ * minor code and completion status.
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public UNKNOWN(int minor, CompletionStatus completed) {
+ this("", minor, completed);
+ }
+
+ /**
+ * Constructs an <code>UNKNOWN</code> exception with the specified description
+ * message, minor code, and completion status.
+ * @param s the String containing a description message
+ * @param minor the minor code
+ * @param completed the completion status
+ */
+ public UNKNOWN(String s, int minor, CompletionStatus completed) {
+ super(s, minor, completed);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java
new file mode 100644
index 0000000..fb6d960
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * One of the {@code PolicyErrorCode}s which would be filled if
+ * the requested {@code Policy} is understood to be valid by the
+ * ORB, but is not currently supported.
+ *
+ * @author rip-dev
+ */
+public interface UNSUPPORTED_POLICY {
+ /**
+ * The Error code for PolicyError exception.
+ */
+ final short value = (short) (1L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java
new file mode 100644
index 0000000..a070b9f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A {@code PolicyErrorCode} which would be filled if the value
+ * requested for the {@code Policy} is of a
+ * valid type and within the valid range for that type, but this valid value
+ * is not currently supported.
+ *
+ * @author rip-dev
+ */
+public interface UNSUPPORTED_POLICY_VALUE {
+ /**
+ * The Error code for PolicyError exception.
+ */
+ final short value = (short) (4L);
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java
new file mode 100644
index 0000000..aa6f92f
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code UShortSeq}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/UShortSeqHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public abstract class UShortSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/UShortSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, short[] 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 ());
+ }
+
+ public static short[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ushort);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.UShortSeqHelper.id (), "UShortSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static short[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ short value[] = null;
+ int _len0 = istream.read_long ();
+ value = new short[_len0];
+ istream.read_ushort_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, short[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_ushort_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java
new file mode 100644
index 0000000..d9ab409
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Holder for {@code UShortSeq}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/UShortSeqHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*/
+
+public final class UShortSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public short value[] = null;
+
+ public UShortSeqHolder ()
+ {
+ }
+
+ public UShortSeqHolder (short[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.UShortSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.UShortSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.UShortSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java b/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java
new file mode 100644
index 0000000..61d2593
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/UnionMember.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A description in the Interface Repository of a member of an IDL union.
+ */
+public final class UnionMember implements org.omg.CORBA.portable.IDLEntity {
+ // instance variables
+
+ /**
+ * The name of the union member described by this
+ * <code>UnionMember</code> object.
+ * @serial
+ */
+ public String name;
+
+ /**
+ * The label of the union member described by this
+ * <code>UnionMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.Any label;
+
+ /**
+ * The type of the union member described by this
+ * <code>UnionMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.TypeCode type;
+
+ /**
+ * The typedef that represents the IDL type of the union member described by this
+ * <code>UnionMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.IDLType type_def;
+
+ // constructors
+
+ /**
+ * Constructs a new <code>UnionMember</code> object with its fields initialized
+ * to null.
+ */
+ public UnionMember() { }
+
+ /**
+ * Constructs a new <code>UnionMember</code> object with its fields initialized
+ * to the given values.
+ *
+ * @param __name a <code>String</code> object with the name of this
+ * <code>UnionMember</code> object
+ * @param __label an <code>Any</code> object with the label of this
+ * <code>UnionMember</code> object
+ * @param __type a <code>TypeCode</code> object describing the type of this
+ * <code>UnionMember</code> object
+ * @param __type_def an <code>IDLType</code> object that represents the
+ * IDL type of this <code>UnionMember</code> object
+ */
+ public UnionMember(String __name, org.omg.CORBA.Any __label, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def) {
+ name = __name;
+ label = __label;
+ type = __type;
+ type_def = __type_def;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java
new file mode 100644
index 0000000..de52b23
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code UnionMember}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/UnionMemberHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl
+* 03 June 1999 11:33:43 o'clock GMT+00:00
+*/
+
+abstract public class UnionMemberHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/UnionMember:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.UnionMember 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 ());
+ }
+
+ public static org.omg.CORBA.UnionMember 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [4];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0);
+ _members0[0] = new org.omg.CORBA.StructMember (
+ "name",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any);
+ _members0[1] = new org.omg.CORBA.StructMember (
+ "label",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode);
+ _members0[2] = new org.omg.CORBA.StructMember (
+ "type",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type ();
+ _members0[3] = new org.omg.CORBA.StructMember (
+ "type_def",
+ _tcOf_members0,
+ null);
+ __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.UnionMemberHelper.id (), "UnionMember", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.UnionMember read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.UnionMember value = new org.omg.CORBA.UnionMember ();
+ value.name = istream.read_string ();
+ value.label = istream.read_any ();
+ value.type = istream.read_TypeCode ();
+ value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.UnionMember value)
+ {
+ ostream.write_string (value.name);
+ ostream.write_any (value.label);
+ ostream.write_TypeCode (value.type);
+ org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java
new file mode 100644
index 0000000..4a65b0a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A class that contains user exceptions returned by the server.
+ * When the client uses the DII to make an invocation, any user exception
+ * returned from the server is enclosed in an <code>Any</code> object contained in the
+ * <code>UnknownUserException</code> object. This is available from the
+ * <code>Environment</code> object returned by the method <code>Request.env</code>.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ * @see Request
+ */
+
+public final class UnknownUserException extends UserException {
+
+ /** The <code>Any</code> instance that contains the actual user exception thrown
+ * by the server.
+ * @serial
+ */
+ public Any except;
+
+ /**
+ * Constructs an <code>UnknownUserException</code> object.
+ */
+ public UnknownUserException() {
+ super();
+ }
+
+ /**
+ * Constructs an <code>UnknownUserException</code> object that contains the given
+ * <code>Any</code> object.
+ *
+ * @param a an <code>Any</code> object that contains a user exception returned
+ * by the server
+ */
+ public UnknownUserException(Any a) {
+ super();
+ except = a;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java
new file mode 100644
index 0000000..32ff8ee
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code UnknownUserException}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/UnknownUserExceptionHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from CORBA.idl
+* Thursday, August 24, 2000 5:52:22 PM PDT
+*/
+
+abstract public class UnknownUserExceptionHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/UnknownUserException:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.UnknownUserException 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 ());
+ }
+
+ public static org.omg.CORBA.UnknownUserException 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [1];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any);
+ _members0[0] = new org.omg.CORBA.StructMember (
+ "except",
+ _tcOf_members0,
+ null);
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.UnknownUserExceptionHelper.id (), "UnknownUserException", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.UnknownUserException read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.UnknownUserException value = new org.omg.CORBA.UnknownUserException ();
+ // read and discard the repository ID
+ istream.read_string ();
+ value.except = istream.read_any ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.UnknownUserException value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ ostream.write_any (value.except);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java
new file mode 100644
index 0000000..ee5ccd9
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+* The Holder for {@code UnknownUserException}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/UnknownUserExceptionHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from CORBA.idl
+* Thursday, August 24, 2000 5:52:22 PM PDT
+*/
+
+public final class UnknownUserExceptionHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.UnknownUserException value = null;
+
+ public UnknownUserExceptionHolder ()
+ {
+ }
+
+ public UnknownUserExceptionHolder (org.omg.CORBA.UnknownUserException initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.UnknownUserExceptionHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.UnknownUserExceptionHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.UnknownUserExceptionHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/UserException.java b/src/java.corba/share/classes/org/omg/CORBA/UserException.java
new file mode 100644
index 0000000..fa803d7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/UserException.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The root class for CORBA IDL-defined user exceptions.
+ * All CORBA user exceptions are checked exceptions, which
+ * means that they need to
+ * be declared in method signatures.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+public abstract class UserException extends java.lang.Exception implements org.omg.CORBA.portable.IDLEntity {
+
+ /**
+ * Constructs a <code>UserException</code> object.
+ * This method is called only by subclasses.
+ */
+ protected UserException() {
+ super();
+ }
+
+ /**
+ * Constructs a <code>UserException</code> object with a
+ * detail message. This method is called only by subclasses.
+ *
+ * @param reason a <code>String</code> object giving the reason for this
+ * exception
+ */
+ protected UserException(String reason) {
+ super(reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java b/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java
new file mode 100644
index 0000000..8bbc8f7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/** Defines the code used to represent an Abstract interface in
+* a typecode.
+* This is one of the possible results of the <code>type_modified</code>
+* method on the <code>TypeCode</code> interface.
+* @see org.omg.CORBA.TypeCode
+*/
+public interface VM_ABSTRACT {
+ /** The value representing an abstract interface value type in
+ * a typecode.
+ */
+ final short value = (short) (2L);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java b/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java
new file mode 100644
index 0000000..d9b4034
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/** Defines the code used to represent a custom marshalled value type in
+* a typecode.
+* This is one of the possible results of the <code>type_modifier</code>
+* method on the <code>TypeCode</code> interface.
+* @see org.omg.CORBA.TypeCode
+*/
+public interface VM_CUSTOM {
+ /** The value representing a custom marshalled value type in
+ * a typecode.
+ */
+ final short value = (short) (1L);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java b/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java
new file mode 100644
index 0000000..ec0fac4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * Defines the code used to represent the one of the values of a value type
+ * in a typecode.
+ *
+ * @author OMG
+ * @see org.omg.CORBA.TypeCode
+ * @since JDK1.2
+ */
+
+
+public interface VM_NONE {
+ /**
+ * The value representing the value type in a typecode as per
+ * CORBA 2.3 spec.
+ */
+ final short value = (short) (0L);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java b/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java
new file mode 100644
index 0000000..d2cee0b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/** Defines the code used to represent a truncatable value type in
+* a typecode. A value type is truncatable if it inherits "safely"
+* from another value type, which means it can be cast to a more
+* general inherited type.
+* This is one of the possible results of the <code>type_modifier</code>
+* method on the <code>TypeCode</code> interface.
+* @see org.omg.CORBA.TypeCode
+*/
+public interface VM_TRUNCATABLE {
+ /** The value representing a truncatable value type in
+ * a typecode.
+ */
+ final short value = (short) (3L);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java
new file mode 100644
index 0000000..68a1066
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /**
+ * The Helper for {@code ValueBase}. For more information on
+ * Helper files, see <a href="doc-files/generatedfiles.html#helper">
+ * "Generated Files: Helper Files"</a>.<P>
+ */
+
+/*
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA;
+
+abstract public class ValueBaseHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/ValueBase:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, java.io.Serializable 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 ());
+ }
+
+ public static java.io.Serializable extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (TCKind.tk_value);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static java.io.Serializable read (org.omg.CORBA.portable.InputStream istream)
+ {
+ return ((org.omg.CORBA_2_3.portable.InputStream)istream).read_value ();
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value)
+ {
+ ((org.omg.CORBA_2_3.portable.OutputStream)ostream).write_value (value);
+ }
+
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java
new file mode 100644
index 0000000..364aba7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+import org.omg.CORBA.portable.Streamable;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * The Holder for {@code ValueBase}. For more information on
+ * Holder files, see <a href="doc-files/generatedfiles.html#holder">
+ * "Generated Files: Holder Files"</a>.<P>
+ * A Holder class for a {@code java.io.Serializable}
+ * that is used to store "out" and "inout" parameters in IDL methods.
+ * If an IDL method signature has an IDL {@code ValueBase} as an "out"
+ * or "inout" parameter, the programmer must pass an instance of
+ * {@code ValueBaseHolder} as the corresponding
+ * parameter in the method invocation; for "inout" parameters, the programmer
+ * must also fill the "in" value to be sent to the server.
+ * Before the method invocation returns, the ORB will fill in the
+ * value corresponding to the "out" value returned from the server.
+ * <P>
+ * If {@code myValueBaseHolder} is an instance of {@code ValueBaseHolder},
+ * the value stored in its {@code value} field can be accessed with
+ * {@code myValueBaseHolder.value}.
+ *
+ */
+public final class ValueBaseHolder implements Streamable {
+
+ /**
+ * The {@code java.io.Serializable} value held by this
+ * {@code ValueBaseHolder} object.
+ */
+ public java.io.Serializable value;
+
+ /**
+ * Constructs a new {@code ValueBaseHolder} object with its
+ * {@code value} field initialized to {@code 0}.
+ */
+ public ValueBaseHolder() {
+ }
+
+ /**
+ * Constructs a new {@code ValueBaseHolder} object with its
+ * {@code value} field initialized to the given
+ * {@code java.io.Serializable}.
+ * @param initial the {@code java.io.Serializable} with which to initialize
+ * the {@code value} field of the newly-created
+ * {@code ValueBaseHolder} object
+ */
+ public ValueBaseHolder(java.io.Serializable initial) {
+ value = initial;
+ }
+
+ /**
+ * Reads from {@code input} and initalizes the value in the Holder
+ * with the unmarshalled data.
+ *
+ * @param input the InputStream containing CDR formatted data from the wire
+ */
+ public void _read(InputStream input) {
+ value = ((org.omg.CORBA_2_3.portable.InputStream)input).read_value();
+ }
+
+ /**
+ * Marshals to {@code output} the value in the Holder.
+ *
+ * @param output the OutputStream which will contain the CDR formatted data
+ */
+ public void _write(OutputStream output) {
+ ((org.omg.CORBA_2_3.portable.OutputStream)output).write_value(value);
+ }
+
+ /**
+ * Returns the {@code TypeCode} object
+ * corresponding to the value held in the Holder.
+ *
+ * @return the TypeCode of the value held in the holder
+ */
+ public org.omg.CORBA.TypeCode _type() {
+ return ORB.init().get_primitive_tc(TCKind.tk_value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java b/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java
new file mode 100644
index 0000000..6477938
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CORBA/ValueMember.java
+ * From: ./ir.idl
+ * Date: Fri Aug 28 16:03:31 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ */
+
+package org.omg.CORBA;
+
+/**
+ * A description in the Interface Repository of
+ * a member of a <code>value</code> object.
+ */
+public final class ValueMember implements org.omg.CORBA.portable.IDLEntity {
+
+ // instance variables
+
+ /**
+ * The name of the <code>value</code> member described by this
+ * <code>ValueMember</code> object.
+ * @serial
+ */
+ public String name;
+
+ /**
+ * The repository ID of the <code>value</code> member described by
+ * this <code>ValueMember</code> object;
+ * @serial
+ */
+ public String id;
+
+ /**
+ * The repository ID of the <code>value</code> in which this member
+ * is defined.
+ * @serial
+ */
+ public String defined_in;
+
+ /**
+ * The version of the <code>value</code> in which this member is defined.
+ * @serial
+ */
+ public String version;
+
+ /**
+ * The type of of this <code>value</code> member.
+ * @serial
+ */
+ public org.omg.CORBA.TypeCode type;
+
+ /**
+ * The typedef that represents the IDL type of the <code>value</code>
+ * member described by this <code>ValueMember</code> object.
+ * @serial
+ */
+ public org.omg.CORBA.IDLType type_def;
+
+ /**
+ * The type of access (public, private) for the <code>value</code>
+ * member described by this <code>ValueMember</code> object.
+ * @serial
+ */
+ public short access;
+ // constructors
+
+ /**
+ * Constructs a default <code>ValueMember</code> object.
+ */
+ public ValueMember() { }
+
+ /**
+ * Constructs a <code>ValueMember</code> object initialized with
+ * the given values.
+ *
+ *@param __name The name of the <code>value</code> member described by this
+ * <code>ValueMember</code> object.
+ *@param __id The repository ID of the <code>value</code> member described by
+ * this <code>ValueMember</code> object;
+ *@param __defined_in The repository ID of the <code>value</code> in which this member
+ * is defined.
+ *@param __version The version of the <code>value</code> in which this member is defined.
+ *@param __type The type of of this <code>value</code> member.
+ *@param __type_def The typedef that represents the IDL type of the <code>value</code>
+ * member described by this <code>ValueMember</code> object.
+ *@param __access The type of access (public, private) for the <code>value</code>
+ * member described by this <code>ValueMember</code> object.
+ */
+ public ValueMember(String __name, String __id, String __defined_in, String __version, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def, short __access) {
+ name = __name;
+ id = __id;
+ defined_in = __defined_in;
+ version = __version;
+ type = __type;
+ type_def = __type_def;
+ access = __access;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java
new file mode 100644
index 0000000..ac3130c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code ValueMember}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/ValueMemberHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl
+* 03 June 1999 11:33:44 o'clock GMT+00:00
+*/
+
+abstract public class ValueMemberHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/ValueMember:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.ValueMember 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 ());
+ }
+
+ public static org.omg.CORBA.ValueMember 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [7];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0);
+ _members0[0] = new org.omg.CORBA.StructMember (
+ "name",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", _tcOf_members0);
+ _members0[1] = new org.omg.CORBA.StructMember (
+ "id",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", _tcOf_members0);
+ _members0[2] = new org.omg.CORBA.StructMember (
+ "defined_in",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VersionSpecHelper.id (), "VersionSpec", _tcOf_members0);
+ _members0[3] = new org.omg.CORBA.StructMember (
+ "version",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode);
+ _members0[4] = new org.omg.CORBA.StructMember (
+ "type",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type ();
+ _members0[5] = new org.omg.CORBA.StructMember (
+ "type_def",
+ _tcOf_members0,
+ null);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
+ _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VisibilityHelper.id (), "Visibility", _tcOf_members0);
+ _members0[6] = new org.omg.CORBA.StructMember (
+ "access",
+ _tcOf_members0,
+ null);
+ __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.ValueMemberHelper.id (), "ValueMember", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.ValueMember read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.ValueMember value = new org.omg.CORBA.ValueMember ();
+ value.name = istream.read_string ();
+ value.id = istream.read_string ();
+ value.defined_in = istream.read_string ();
+ value.version = istream.read_string ();
+ value.type = istream.read_TypeCode ();
+ value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream);
+ value.access = istream.read_short ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.ValueMember value)
+ {
+ ostream.write_string (value.name);
+ ostream.write_string (value.id);
+ ostream.write_string (value.defined_in);
+ ostream.write_string (value.version);
+ ostream.write_TypeCode (value.type);
+ org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def);
+ ostream.write_short (value.access);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java b/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java
new file mode 100644
index 0000000..d4bf845
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code VersionSpec}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/VersionSpecHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl
+* 03 June 1999 11:33:43 o'clock GMT+00:00
+*/
+
+abstract public class VersionSpecHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/VersionSpec:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VersionSpecHelper.id (), "VersionSpec", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ String value = null;
+ value = istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ ostream.write_string (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java b/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java
new file mode 100644
index 0000000..5db6c4e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code Visibility}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/VisibilityHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl
+* 03 June 1999 11:33:44 o'clock GMT+00:00
+*/
+
+
+// orbos 98-01-18: Objects By Value -- begin
+abstract public class VisibilityHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/Visibility:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, short 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 ());
+ }
+
+ public static short extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VisibilityHelper.id (), "Visibility", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static short read (org.omg.CORBA.portable.InputStream istream)
+ {
+ short value = (short)0;
+ value = istream.read_short ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, short value)
+ {
+ ostream.write_short (value);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java
new file mode 100644
index 0000000..10d3d7c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Helper for {@code WCharSeq}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/WCharSeqHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public abstract class WCharSeqHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/WCharSeq:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, char[] 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 ());
+ }
+
+ public static char[] extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_wchar);
+ __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode);
+ __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.WCharSeqHelper.id (), "WCharSeq", __typeCode);
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static char[] read (org.omg.CORBA.portable.InputStream istream)
+ {
+ char value[] = null;
+ int _len0 = istream.read_long ();
+ value = new char[_len0];
+ istream.read_wchar_array (value, 0, _len0);
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, char[] value)
+ {
+ ostream.write_long (value.length);
+ ostream.write_wchar_array (value, 0, value.length);
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java
new file mode 100644
index 0000000..af9aac4
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Holder for {@code WCharSeq}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/WCharSeqHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from streams.idl
+* 13 May 1999 22:41:36 o'clock GMT+00:00
+*/
+
+public final class WCharSeqHolder implements org.omg.CORBA.portable.Streamable
+{
+ public char value[] = null;
+
+ public WCharSeqHolder ()
+ {
+ }
+
+ public WCharSeqHolder (char[] initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.WCharSeqHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.WCharSeqHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.WCharSeqHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java
new file mode 100644
index 0000000..fa14f5e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+* The Helper for {@code WStringValue}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+*/
+
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA;
+
+/**
+* org/omg/CORBA/WStringValueHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from orb.idl
+* 31 May 1999 22:27:30 o'clock GMT+00:00
+*
+* The class definition has been modified to conform to the following
+* OMG specifications :
+* <ul>
+* <li> ORB core as defined by CORBA 2.3.1
+* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)
+* </li>
+*
+* <li> IDL/Java Language Mapping as defined in
+* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>
+* </li>
+* </ul>
+*/
+
+public class WStringValueHelper implements org.omg.CORBA.portable.BoxedValueHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/WStringValue:1.0";
+
+ private static WStringValueHelper _instance = new WStringValueHelper ();
+
+ public static void insert (org.omg.CORBA.Any a, String 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 ());
+ }
+
+ public static String 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;
+ 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;
+ __typeCode = org.omg.CORBA.ORB.init ().create_wstring_tc (0);
+ __typeCode = org.omg.CORBA.ORB.init ().create_value_box_tc (_id, "WStringValue", __typeCode);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static String read (org.omg.CORBA.portable.InputStream istream)
+ {
+ if (!(istream instanceof org.omg.CORBA_2_3.portable.InputStream)) {
+ throw new org.omg.CORBA.BAD_PARAM(); }
+ return (String) ((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (_instance);
+ }
+
+ public java.io.Serializable read_value (org.omg.CORBA.portable.InputStream istream)
+ {
+ String tmp;
+ tmp = istream.read_wstring ();
+ return (java.io.Serializable) tmp;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, String value)
+ {
+ if (!(ostream instanceof org.omg.CORBA_2_3.portable.OutputStream)) {
+ throw new org.omg.CORBA.BAD_PARAM(); }
+ ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, _instance);
+ }
+
+ public void write_value (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value)
+ {
+ if (!(value instanceof String)) {
+ throw new org.omg.CORBA.MARSHAL(); }
+ String valueType = (String) value;
+ ostream.write_wstring (valueType);
+ }
+
+ public String get_id ()
+ {
+ return _id;
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java
new file mode 100644
index 0000000..a9670d2
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA;
+
+/**
+ * The CORBA <code>WrongTransaction</code> user-defined exception.
+ * This exception is thrown only by the methods
+ * <code>Request.get_response</code>
+ * and <code>ORB.get_next_response</code> when they are invoked
+ * from a transaction scope that is different from the one in
+ * which the client originally sent the request.
+ * See the OMG Transaction Service Specification for details.
+ *
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
+ */
+
+public final class WrongTransaction extends UserException {
+ /**
+ * Constructs a WrongTransaction object with an empty detail message.
+ */
+ public WrongTransaction() {
+ super(WrongTransactionHelper.id());
+ }
+
+ /**
+ * Constructs a WrongTransaction object with the given detail message.
+ * @param reason The detail message explaining what caused this exception to be thrown.
+ */
+ public WrongTransaction(String reason) {
+ super(WrongTransactionHelper.id() + " " + reason);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java
new file mode 100644
index 0000000..b87ed34
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+* The Helper for {@code WrongTransaction}. For more information on
+* Helper files, see <a href="doc-files/generatedfiles.html#helper">
+* "Generated Files: Helper Files"</a>.<P>
+* org/omg/CORBA/WrongTransactionHelper.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from CORBA.idl
+* Thursday, August 24, 2000 5:32:50 PM PDT
+*/
+
+abstract public class WrongTransactionHelper
+{
+ private static String _id = "IDL:omg.org/CORBA/WrongTransaction:1.0";
+
+ public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.WrongTransaction 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 ());
+ }
+
+ public static org.omg.CORBA.WrongTransaction 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;
+ 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.StructMember[] _members0 = new org.omg.CORBA.StructMember [0];
+ org.omg.CORBA.TypeCode _tcOf_members0 = null;
+ __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.WrongTransactionHelper.id (), "WrongTransaction", _members0);
+ __active = false;
+ }
+ }
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.CORBA.WrongTransaction read (org.omg.CORBA.portable.InputStream istream)
+ {
+ org.omg.CORBA.WrongTransaction value = new org.omg.CORBA.WrongTransaction ();
+ // read and discard the repository ID
+ istream.read_string ();
+ return value;
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.WrongTransaction value)
+ {
+ // write the repository ID
+ ostream.write_string (id ());
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java
new file mode 100644
index 0000000..d33ba97
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+/**
+* The Holder for {@code WrongTransaction}. For more information on
+* Holder files, see <a href="doc-files/generatedfiles.html#holder">
+* "Generated Files: Holder Files"</a>.<P>
+* org/omg/CORBA/WrongTransactionHolder.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from CORBA.idl
+* Thursday, August 24, 2000 5:32:50 PM PDT
+*/
+
+public final class WrongTransactionHolder implements org.omg.CORBA.portable.Streamable
+{
+ public org.omg.CORBA.WrongTransaction value = null;
+
+ public WrongTransactionHolder ()
+ {
+ }
+
+ public WrongTransactionHolder (org.omg.CORBA.WrongTransaction initialValue)
+ {
+ value = initialValue;
+ }
+
+ public void _read (org.omg.CORBA.portable.InputStream i)
+ {
+ value = org.omg.CORBA.WrongTransactionHelper.read (i);
+ }
+
+ public void _write (org.omg.CORBA.portable.OutputStream o)
+ {
+ org.omg.CORBA.WrongTransactionHelper.write (o, value);
+ }
+
+ public org.omg.CORBA.TypeCode _type ()
+ {
+ return org.omg.CORBA.WrongTransactionHelper.type ();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java b/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java
new file mode 100644
index 0000000..5607d70
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Stub for {@code IDLType}. For more information on
+* Stub files, see <a href="doc-files/generatedfiles.html#stub">
+* "Generated Files: Stubs"</a>.<P>
+* org/omg/CORBA/_IDLTypeStub.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ir.idl.
+* 03 June 1999 11:33:44 o'clock GMT+00:00
+*/
+
+public class _IDLTypeStub extends org.omg.CORBA.portable.ObjectImpl implements org.omg.CORBA.IDLType
+{
+ /**
+ * Constructs a default {@code _IDLTypeStub} object.
+ * NOTE: If the default constructor is used, the
+ * object is useless until the method {@code _set_delegate}
+ * has been called.
+ */
+ // NOTE: This constructor is not required according to the spec. Only JCK expects it now.
+ public _IDLTypeStub ()
+ {
+ super ();
+ }
+
+ /**
+ * Constructs an {@code _IDLTypeStub} object initialized
+ * with the given {@code Delegate} object.
+ *
+ * @param delegate a Delegate object
+ */
+ // NOTE: This constructor is not required according to the spec. We keep it as a convenience method.
+ public _IDLTypeStub (org.omg.CORBA.portable.Delegate delegate)
+ {
+ super ();
+ _set_delegate (delegate);
+ }
+
+ public org.omg.CORBA.TypeCode type ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("_get_type", true);
+ _in = _invoke (_out);
+ org.omg.CORBA.TypeCode __result = _in.read_TypeCode ();
+ return __result;
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ return type ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // type
+
+
+ // read interface
+ public org.omg.CORBA.DefinitionKind def_kind ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("_get_def_kind", true);
+ _in = _invoke (_out);
+ org.omg.CORBA.DefinitionKind __result = org.omg.CORBA.DefinitionKindHelper.read (_in);
+ return __result;
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ return def_kind ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // def_kind
+
+
+ // write interface
+ public void destroy ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("destroy", true);
+ _in = _invoke (_out);
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ destroy ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // destroy
+
+ // Type-specific CORBA::Object operations
+ private static String[] __ids = {
+ "IDL:omg.org/CORBA/IDLType:1.0",
+ "IDL:omg.org/CORBA/IRObject:1.0"};
+
+ public String[] _ids ()
+ {
+ return (String[])__ids.clone ();
+ }
+
+ private void readObject (java.io.ObjectInputStream s)
+ {
+ try
+ {
+ String str = s.readUTF ();
+ org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init ().string_to_object (str);
+ org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate ();
+ _set_delegate (delegate);
+ } catch (java.io.IOException e) {}
+ }
+
+ private void writeObject (java.io.ObjectOutputStream s)
+ {
+ try
+ {
+ String str = org.omg.CORBA.ORB.init ().object_to_string (this);
+ s.writeUTF (str);
+ } catch (java.io.IOException e) {}
+ }
+} // class _IDLTypeStub
diff --git a/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java b/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java
new file mode 100644
index 0000000..4312fd7
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA;
+
+
+/**
+* The Stub for {@code Policy}. For more information on
+* Stub files, see <a href="doc-files/generatedfiles.html#stub">
+* "Generated Files: Stubs"</a>.<P>
+* org/omg/CORBA/_PolicyStub.java
+* Generated by the IDL-to-Java compiler (portable), version "3.0"
+* from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl.
+* Saturday, July 17, 1999 12:26:20 AM PDT
+*/
+
+public class _PolicyStub extends org.omg.CORBA.portable.ObjectImpl implements org.omg.CORBA.Policy
+{
+ /** Constructors
+ * NOTE: If the default constructor is used, the
+ * object is useless until _set_delegate (...)
+ * is called.
+ */
+ public _PolicyStub ()
+ {
+ super ();
+ }
+
+ /** Constructs a {@code _PolicyStub} object initialized
+ * with the given {@code Delegate} object.
+ *
+ * @param delegate a Delegate Object
+ */
+ public _PolicyStub (org.omg.CORBA.portable.Delegate delegate)
+ {
+ super ();
+ _set_delegate (delegate);
+ }
+
+
+ /** Returns the constant value that corresponds to the
+ * type of the policy object. The values of
+ * the polivy objectys are allocated by the OMG.
+ * New values for PolicyType should be obtained from the OMG by
+ * sending mail to request@omg.org. In general the constant
+ * values that are allocated are defined in conjunction with
+ * the definition of the corresponding policy object.
+ * @return the constant value that corresponds to the type of
+ * the policy object.
+ */
+ public int policy_type ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("_get_policy_type", true);
+ _in = _invoke (_out);
+ int __result = org.omg.CORBA.PolicyTypeHelper.read (_in);
+ return __result;
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ return policy_type ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // policy_type
+
+
+ /** Copies the policy object. The copy does not retain any
+ * relationships that the policy had with any domain or object.
+ * @return the copy of the policy object.
+ */
+ public org.omg.CORBA.Policy copy ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("copy", true);
+ _in = _invoke (_out);
+ org.omg.CORBA.Policy __result = org.omg.CORBA.PolicyHelper.read (_in);
+ return __result;
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ return copy ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // copy
+
+
+ /** Destroys the policy object. It is the responsibility of
+ * the policy object to determine whether it can be destroyed.
+ */
+ public void destroy ()
+ {
+ org.omg.CORBA.portable.InputStream _in = null;
+ try {
+ org.omg.CORBA.portable.OutputStream _out = _request ("destroy", true);
+ _in = _invoke (_out);
+ } catch (org.omg.CORBA.portable.ApplicationException _ex) {
+ _in = _ex.getInputStream ();
+ String _id = _ex.getId ();
+ throw new org.omg.CORBA.MARSHAL (_id);
+ } catch (org.omg.CORBA.portable.RemarshalException _rm) {
+ destroy ();
+ } finally {
+ _releaseReply (_in);
+ }
+ } // destroy
+
+ // Type-specific CORBA::Object operations
+ private static String[] __ids = {
+ "IDL:omg.org/CORBA/Policy:1.0"};
+
+ public String[] _ids ()
+ {
+ return (String[])__ids.clone ();
+ }
+
+ private void readObject (java.io.ObjectInputStream s)
+ {
+ try
+ {
+ String str = s.readUTF ();
+ org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init ().string_to_object (str);
+ org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate ();
+ _set_delegate (delegate);
+ } catch (java.io.IOException e) {}
+ }
+
+ private void writeObject (java.io.ObjectOutputStream s)
+ {
+ try
+ {
+ String str = org.omg.CORBA.ORB.init ().object_to_string (this);
+ s.writeUTF (str);
+ } catch (java.io.IOException e) {}
+ }
+} // class _PolicyStub
diff --git a/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html b/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html
new file mode 100644
index 0000000..d78aa74
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html
@@ -0,0 +1,143 @@
+<!doctype html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html">
+ <title>Official Specifications for CORBA support in Java[tm] SE 6</title>
+</head>
+<body bgcolor="#FFFFFF">
+
+<h1>
+Official Specifications for CORBA support in Java[tm] SE 6</h1>
+
+<h2>
+Specification References</h2>
+The specifications with which the Java[tm] Platform, Standard Edition (Java SE) v.1.6.0
+ ORB complies are as follows. If these links do not take you to the referenced
+ specification, the OMG may have changed the URL, and you can link to <a
+href="http://www.omg.org/">www.omg.org</a> to search for the correct specification.
+<ul>
+<li>
+CORBA 2.3.1 (<a
+href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)</li>
+
+<li>
+IDL to Java language mapping (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>)</li>
+
+<li>Revised IDL to Java language mapping (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/00-11-03">ptc/00-11-03</a>)</li>
+
+<li>
+Java to IDL language mapping (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/00-01-06">ptc/00-01-06</a>)</li>
+
+<li>
+Interoperable Naming Service (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/00-08-07">ptc/00-08-07</a>)</li>
+
+<li>
+Portable Interceptors (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/2001-03-04">ptc/2001-03-04</a>)</li>
+</ul>
+These are the only specifications referenced by this document.
+
+
+<h2>
+Supported Specification Details</h2>
+Not all of the above specifications are currently implemented in the ORB
+in Java[tm] SE 6. The precise list of supported sections is as follows:
+<ul>
+<li>
+CORBA 2.3.1 chapters 1-3 and 6-9</li>
+
+<li>Revised IDL to Java language mapping, section 1.21.8.2, the <code>orb.properties</code>
+file.</li>
+
+<li>
+CORBA 2.3.1 chapter 4 with the following replacements from the Portable
+Interceptors specification:
+ <ul>
+ <li>section 4.2.3.5 <code>destroy</code></li>
+ <li>section 4.5.2 <code>CodeFactory</code> and <code>PICurrent</code> are required</li>
+ <li>Section 4.5.3.4 as updated for <code>register_initial_reference</code></li>
+ </ul>
+</li>
+
+<li>
+CORBA 2.3.1 chapter 5 with the following update from the Portable Interceptors
+specification:
+ <ul>
+ <li>
+ 5.5.2 <code>StringSeq</code> and <code>WStringSeq</code> are required.
+ This adds the following classes to <code>org.omg.CORBA</code>:
+ <ul>
+ <li><code>StringSeqHolder</code></li>
+ <li><code>StringSeqHelper</code></li>
+ <li><code>WStringSeqHolder</code></li>
+ <li><code>WStringSeqHelper</code></li>
+ </ul>
+ </li>
+ </ul>
+</li>
+
+<li>
+CORBA 2.3.1 sections 10.6.1 and 10.6.2 are supported for repository IDs.</li>
+
+<li>
+CORBA 2.3.1 section 10.7 for <code>TypeCode</code> APIs.</li>
+
+<li>
+CORBA 2.3.1 chapter 11, Portable Object Adapter (POA),
+with the following updates from the Portable Interceptors specification:
+ <ul>
+ <li>Section 11.3.7 POAs must preserve all policies</li>
+ <li>Section 11.3.8.2 again states that POAs must preserve all policies</li>
+ <li>Section 11.3.8.26 <code>POA::id</code> is required.</li>
+ </ul>
+</li>
+
+<li>
+CORBA 2.3.1 chapters 13 and 15 define GIOP 1.0, 1.1, and 1.2. The Java SE 6
+ORB fully supports all versions of GIOP, with the exception that the bi-directional
+GIOP feature defined in sections 15.8 and 15.9 is not supported.</li>
+
+<li>
+All of the Interoperable Naming Service is supported.</li>
+
+<li>
+Portable Interceptors section 13.8 (the new
+<code>Coder</code>/<code>Decoder</code> interfaces)
+and all of chapter 21 (the interceptor specification).</li>
+
+<li>Section 1.21.8 of the Revised IDL to Java Language
+Mapping Specification (ptc/00-11-03)
+has been changed from the version in the
+IDL to Java Language Mapping Specification (ptc/00-01-08).</li>
+</ul>
+
+<h2>
+Tools</h2>
+
+<ul>
+<li>The IDL to Java compiler (<code>idlj</code>) complies with:
+ <ul>
+ <li>CORBA 2.3.1 chapter 3 (IDL definition)</li>
+ <li>CORBA 2.3.1 chapters 5 and 6 (semantics of Value types)</li>
+ <li>CORBA 2.3.1 section 10.6.5 (pragmas)</li>
+ <li>The IDL to Java mapping specification</li>
+ <li>The Revised IDL to Java language mapping specification section 1.12.1 "local interfaces"</li>
+ </ul>
+</li>
+
+<li>The Java to IDL compiler (the IIOP backend for <code>rmic</code>) complies with:
+ <ul>
+ <li>CORBA 2.3.1 chapters 5 and 6 (value types)</li>
+ <li>The Java to IDL language mapping. Note that this implicitly references
+ section 1.21 of the IDL to Java language mapping</li>
+ <li>IDL generated by the <code>-idl</code> flag complies with CORBA 2.3.1 chapter 3.</li>
+ </ul>
+</li>
+</ul>
+
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html b/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html
new file mode 100644
index 0000000..39aa884
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html">
+ <title>IDL-to-Java Generated Files</title>
+</head>
+<body bgcolor="#FFFFFF">
+
+<H1>IDL-to-Java Generated Files</H1>
+
+<P>The files that are generated by the IDL-to-Java compiler, in accordance with
+the <em><a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">
+IDL-to-Java Language Mapping Specification</a></em>,
+which is implemented in Java<sup><font size="-2">TM</font></sup> SE 6
+according the <a href="compliance.html">compliance</a> document.
+
+
+<P>In general IDL names and identifiers are mapped to Java names
+and identifiers with no change. Because of the nature of the Java language,
+a single IDL construct may be mapped to several (differently named) Java constructs.
+The additional names are constructed by appending a descriptive suffix.
+For example, the IDL interface <code>foo</code> is mapped to the Java
+interfaces <code>foo</code> and <code>fooOperations</code>, and additional
+Java classes <code>fooHelper</code>, <code>fooHolder</code>, <code>fooPOA</code>,
+and optionally <code>fooPOATie</code>.
+
+
+
+<P>The mapping in effect reserves the use of several names for its own purposes. These are:
+<UL>
+<LI>The Java class <a href="#helper"><code>&lt;type&gt;Helper</code></a>,
+where <code>&lt;type&gt;</code> is the name of an IDL defined type.
+<LI>The Java class <a href="#holder"><code>&lt;type&gt;Holder</code></a>,
+where <code>&lt;type&gt;</code>
+is the name of an IDL defined type (with certain exceptions such as <code>typedef</code> aliases).
+<LI>The Java classes <code>&lt;basicJavaType&gt;Holder</code>, where <code>&lt;basicJavaType&gt;</code>
+is one of the Java primitive datatypes that is used by one of the IDL basic datatypes.
+<LI>The Java classes <a href="#operations"><code>&lt;interface&gt;Operations</code></a>, <code>&lt;interface&gt;POA</code>,
+and <code>&lt;interface&gt;POATie</code>, where <code>&lt;interface&gt;</code> is the name of an IDL interface type.
+<LI>The nested scope Java package name <code>&lt;interface&gt;Package</code>, where <code>&lt;interface&gt;</code>
+is the name of an IDL interface.
+</UL>
+
+
+<H2><a id="helper">Helper Files</a></H2>
+
+<P>Helper files supply several static methods needed to manipulate the type.
+These include <code>Any</code> insert and extract operations for the type,
+getting the repository id, getting the typecode, and reading
+and writing the type from and to a stream.
+
+<P>The helper class for a mapped IDL interface or abstract interface also
+include narrow operation(s). The static narrow method allows an <code>org.omg.CORBA.Object</code>
+to be narrowed to the object reference of a more specific type.
+The IDL exception <code>CORBA::BAD_PARAM</code> is thrown if the narrow fails because
+the object reference does not support the requested type. A different system exception
+is raised to indicate other kinds of errors. Trying to narrow
+a null will always succeed with a return value of null.
+
+<H2><a id="holder">Holder Files</a></H2>
+
+<P>Support for out and inout parameter passing modes requires the use of additional holder classes.
+These classes are available for all of the basic IDL datatypes in the <code>org.omg.CORBA</code> package
+and are generated for all named user defined IDL types except those defined by typedefs.
+(Note that in this context user defined includes types that are defined in OMG specifications
+such as those for the Interface Repository, and other OMG services.)
+
+<P>Each holder class has a constructor from an instance, a default constructor, and has
+a public instance member, <code>value</code> which is the typed value. The default constructor
+sets the value field to the default value for the type as defined by the Java language:
+false for boolean, 0 for numeric and char types, null for strings, null for object references.
+
+<P>To support portable stubs and skeletons, holder classes also implement
+the <code>org.omg.CORBA.portable.Streamable</code> interface.
+
+
+<H2><a id="operations">Operations Files</a></H2>
+
+<P>A non abstract IDL interface is mapped to two public Java interfaces:
+a <em>signature</em> interface and an <em>operations</em> interface.
+The signature interface, which extends <code>IDLEntity</code>, has the same
+name as the IDL interface name and is used
+as the signature type in method declarations
+when interfaces of the specified type are used in other interfaces.
+The operations interface has the same name as the IDL interface
+with the suffix <code>Operations</code>
+appended to the end and is used in the server-side mapping and as a mechanism
+for providing optimized calls for collocated client and servers.
+
+<P>The Java operations interface contains the mapped operation signatures.
+The Java signature interface extends the operations interface,
+the (mapped) base <code>org.omg.CORBA.Object</code>,
+as well as <code>org.omg.portable.IDLEntity</code>.
+Methods can be invoked on the signature interface. Interface inheritance
+expressed in IDL is reflected in both the Java signature
+interface and operations interface hierarchies.
+
+
+<H2><a id="stub">Stubs</a></H2>
+
+<P>For the mapping of a non-object-oriented language, there will be
+a programming interface to the stubs for each interface type. Generally, the stubs
+will present access to the OMG IDL-defined operations on an object in a way that is easy
+for programmers to predict once they are familiar with OMG IDL and the language mapping
+for the particular programming language. The stubs make calls on the rest of the ORB
+using interfaces that are private to, and presumably optimized for, the particular ORB Core.
+If more than one ORB is available, there may be different stubs
+corresponding to the different ORBs. In this case, it is necessary for
+the ORB and language mapping to cooperate to associate
+the correct stubs with the particular object reference.
+
+<P>Object-oriented programming languages, such as Java,
+C++, and Smalltalk, do not require stub interfaces.
+
+<BR><BR>
+
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ir.idl b/src/java.corba/share/classes/org/omg/CORBA/ir.idl
new file mode 100644
index 0000000..656d163
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/ir.idl
@@ -0,0 +1,793 @@
+/*
+ * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * This file contains OMG IDL from CORBA V2.0, July 1995.
+ * It also contains the TypeCode creation APIs in CORBA::ORB
+ **/
+
+#pragma prefix "omg.org"
+//#pragma javaPackage org.omg
+
+module CORBA {
+ typedef string Identifier;
+ typedef string ScopedName;
+ typedef string RepositoryId;
+
+ enum DefinitionKind {
+ dk_none, dk_all,
+ dk_Attribute, dk_Constant, dk_Exception, dk_Interface,
+ dk_Module, dk_Operation, dk_Typedef,
+ dk_Alias, dk_Struct, dk_Union, dk_Enum,
+ dk_Primitive, dk_String, dk_Sequence, dk_Array,
+ dk_Repository,
+ dk_Wstring, dk_Fixed,
+ dk_Value, dk_ValueBox, dk_ValueMember, // orbos 98-01-18: Objects By Value
+ dk_Native
+ };
+
+
+ interface IRObject
+ /**
+ An IRObject IDL interface represents the most generic interface
+ from which all other Interface Repository interfaces are derived,
+ even the Repository itself.
+ */
+ {
+ // read interface
+ readonly attribute DefinitionKind def_kind;
+
+ // write interface
+ void destroy ();
+ };
+
+
+
+ typedef string VersionSpec;
+
+ interface Contained;
+ interface Repository;
+ interface Container;
+
+ interface Contained : IRObject
+ /**
+ The Contained Interface is inherited by all Interface Repository
+ interfaces that are contained by other objects.
+ */
+ {
+ // read/write interface
+
+ attribute RepositoryId id;
+ attribute Identifier name;
+ attribute VersionSpec version;
+
+ // read interface
+
+ readonly attribute Container defined_in;
+ readonly attribute ScopedName absolute_name;
+ readonly attribute Repository containing_repository;
+
+ struct Description {
+ DefinitionKind kind;
+ any value;
+ };
+
+ Description describe ();
+
+ // write interface
+
+ void move (
+ in Container new_container,
+ in Identifier new_name,
+ in VersionSpec new_version
+ );
+ };
+
+
+ interface ModuleDef;
+ interface ConstantDef;
+ interface IDLType;
+ interface StructDef;
+ interface UnionDef;
+ interface EnumDef;
+ interface AliasDef;
+ interface InterfaceDef;
+ interface ExceptionDef;
+ interface ValueDef; // orbos 98-01-18: Objects By Value
+ interface ValueMemberDef; // orbos 98-01-18: Objects By Value
+ interface ValueBoxDef; // orbos 98-01-18: Objects By Value
+ interface NativeDef;
+
+
+ typedef sequence <InterfaceDef> InterfaceDefSeq;
+
+
+ typedef sequence <Contained> ContainedSeq;
+
+ struct StructMember {
+ Identifier name;
+ TypeCode type;
+ IDLType type_def;
+ };
+ typedef sequence <StructMember> StructMemberSeq;
+
+ struct UnionMember {
+ Identifier name;
+ any label;
+ TypeCode type;
+ IDLType type_def;
+ };
+ typedef sequence <UnionMember> UnionMemberSeq;
+
+
+ typedef sequence <Identifier> EnumMemberSeq;
+
+ // orbos 98-01-18: Objects By Value -- begin
+ typedef short Visibility;
+ const Visibility PRIVATE_MEMBER = 0;
+ const Visibility PUBLIC_MEMBER = 1;
+
+ struct ValueMember {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode type;
+ IDLType type_def;
+ Visibility access;
+ };
+ typedef sequence <ValueMember> ValueMemberSeq;
+
+ struct Initializer {
+ StructMemberSeq members;
+ };
+ typedef sequence <Initializer> InitializerSeq;
+
+ typedef sequence <ValueDef> ValueDefSeq;
+
+ // orbos 98-01-18: Objects By Value -- end
+
+
+ interface Container : IRObject
+ /**
+ The Container interface is used to form a containment hierarchy
+ in the Interface Repository. A Container can contain any number
+ of objects derived from the Contained interface.
+ */
+ {
+ // read interface
+
+ Contained lookup ( in ScopedName search_name);
+
+ ContainedSeq contents (
+ in DefinitionKind limit_type,
+ in boolean exclude_inherited
+ );
+
+ ContainedSeq lookup_name (
+ in Identifier search_name,
+ in long levels_to_search,
+ in DefinitionKind limit_type,
+ in boolean exclude_inherited
+ );
+
+ struct Description {
+ Contained contained_object;
+ DefinitionKind kind;
+ any value;
+ };
+
+ typedef sequence<Description> DescriptionSeq;
+
+ DescriptionSeq describe_contents (
+ in DefinitionKind limit_type,
+ in boolean exclude_inherited,
+ in long max_returned_objs
+ );
+
+ // write interface
+
+ ModuleDef create_module (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version
+ );
+
+ ConstantDef create_constant (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType type,
+ in any value
+ );
+
+ StructDef create_struct (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in StructMemberSeq members
+ );
+
+ UnionDef create_union (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType discriminator_type,
+ in UnionMemberSeq members
+ );
+
+ EnumDef create_enum (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in EnumMemberSeq members
+ );
+
+ AliasDef create_alias (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType original_type
+ );
+
+ ExceptionDef create_exception (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in StructMemberSeq members
+ );
+
+
+ InterfaceDef create_interface (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in boolean is_abstract,
+ in InterfaceDefSeq base_interfaces
+ );
+
+ // orbos 98-01-18: Objects By Value
+ ValueDef create_value(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in boolean is_custom,
+ in boolean is_abstract,
+ in octet flags, // must be 0
+ in ValueDef base_value,
+ in boolean has_safe_base,
+ in ValueDefSeq abstract_base_values,
+ in InterfaceDefSeq supported_interfaces,
+ in InitializerSeq initializers
+ );
+
+ // orbos 98-01-18: Objects By Value
+ ValueBoxDef create_value_box(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType original_type_def
+ );
+
+ NativeDef create_native(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version
+ );
+
+ };
+
+
+
+ interface IDLType : IRObject
+ /**
+ The IDLType interface is an abstract interface inherited by all
+ IR objects that represent the OMG IDL types. It provides access
+ to the TypeCode describing the type, and is used in defining the
+ other interfaces wherever definitions of IDLType must be referenced.
+ */
+ {
+ readonly attribute TypeCode type;
+ };
+
+
+
+ interface PrimitiveDef;
+ interface StringDef;
+ interface SequenceDef;
+ interface ArrayDef;
+
+ enum PrimitiveKind {
+ pk_null, pk_void, pk_short, pk_long, pk_ushort, pk_ulong,
+ pk_float, pk_double, pk_boolean, pk_char, pk_octet,
+ pk_any, pk_TypeCode, pk_Principal, pk_string, pk_objref
+ };
+
+ interface Repository : Container
+ /**
+ Repository is an interface that provides global access to the
+ Interface Repository. Repository objects can contain constants,
+ typedefs, exceptions, interfaces, and modules.
+ */
+ {
+ // read interface
+
+ Contained lookup_id (in RepositoryId search_id);
+
+ PrimitiveDef get_primitive (in PrimitiveKind kind);
+
+ // write interface
+
+ StringDef create_string (in unsigned long bound);
+
+ SequenceDef create_sequence (
+ in unsigned long bound,
+ in IDLType element_type
+ );
+
+ ArrayDef create_array (
+ in unsigned long length,
+ in IDLType element_type
+ );
+ };
+
+
+ interface ModuleDef : Container, Contained
+ /**
+ A ModuleDef can contain constants, typedefs, exceptions, interfaces,
+ and other module objects.
+ */
+ {
+ };
+
+ struct ModuleDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ };
+
+
+ interface ConstantDef : Contained
+ /**
+ A ConstantDef object defines a named constant.
+ */
+ {
+ readonly attribute TypeCode type;
+ attribute IDLType type_def;
+ attribute any value;
+ };
+
+ struct ConstantDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode type;
+ any value;
+ };
+
+
+ interface TypedefDef : Contained, IDLType
+ /**
+ TypedefDef is an abstract interface used as a base interface for
+ all named non-object types(structures, unions, enumerations,
+ aliases). The TypedefDef interface is not inherited by the definition
+ objects for the primitive or anonymous types.
+ */
+ {
+ };
+
+ struct TypeDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode type;
+ };
+
+
+ interface StructDef : TypedefDef, Container
+ /**
+ A StructDef represents an OMG IDL structure definition.
+ */
+ {
+ attribute StructMemberSeq members;
+ };
+
+
+ interface UnionDef : TypedefDef, Container
+ /**
+ A UnionDef represents an OMG IDL union definition.
+ */
+ {
+ readonly attribute TypeCode discriminator_type;
+ attribute IDLType discriminator_type_def;
+ attribute UnionMemberSeq members;
+ };
+
+
+ interface EnumDef : TypedefDef
+ /**
+ A EnumDef represents an OMG IDL enum definition.
+ */
+ {
+ attribute EnumMemberSeq members;
+ };
+
+
+ interface AliasDef : TypedefDef
+ /**
+ An AliasDef represents an OMG IDL typedef that aliases other
+ definition.
+ */
+ {
+ attribute IDLType original_type_def;
+ };
+
+
+ interface PrimitiveDef: IDLType
+ /**
+ A PrimitiveDef represents one of the IDL primitive types. As
+ primitive types are unnamed, this interface is not derived from
+ TypedefDef or Contained.
+ */
+ {
+ readonly attribute PrimitiveKind kind;
+ };
+
+
+ interface StringDef : IDLType
+ /**
+ A StringDef represents an OMG IDL string type. As string
+ types are anonymous, this interface is not derived from TypedefDef
+ or Contained.
+ */
+ {
+ attribute unsigned long bound;
+ };
+
+
+ interface SequenceDef : IDLType
+ /**
+ A SequenceDef represents an OMG IDL sequence type. As sequence
+ types are anonymous, this interface is not derived from TypedefDef
+ or Contained.
+ */
+ {
+ attribute unsigned long bound;
+ readonly attribute TypeCode element_type;
+ attribute IDLType element_type_def;
+ };
+
+ interface ArrayDef : IDLType
+ /**
+ An ArrayDef represents an OMG IDL array type. As array
+ types are anonymous, this interface is not derived from TypedefDef
+ or Contained.
+ */
+ {
+ attribute unsigned long length;
+ readonly attribute TypeCode element_type;
+ attribute IDLType element_type_def;
+ };
+
+
+ interface ExceptionDef : Contained, Container
+ /**
+ An ExceptionDef represents an exception definition.
+ */
+ {
+ readonly attribute TypeCode type;
+ attribute StructMemberSeq members;
+ };
+ struct ExceptionDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode type;
+ };
+
+
+
+ enum AttributeMode {ATTR_NORMAL, ATTR_READONLY};
+
+ interface AttributeDef : Contained
+ /**
+ An AttributeDef represents the information that defines an
+ attribute of an interface.
+ */
+ {
+ readonly attribute TypeCode type;
+ attribute IDLType type_def;
+ attribute AttributeMode mode;
+ };
+
+ struct AttributeDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode type;
+ AttributeMode mode;
+ };
+
+
+
+ enum OperationMode {OP_NORMAL, OP_ONEWAY};
+
+ enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT};
+ struct ParameterDescription {
+ Identifier name;
+ TypeCode type;
+ IDLType type_def;
+ ParameterMode mode;
+ };
+ typedef sequence <ParameterDescription> ParDescriptionSeq;
+
+ typedef Identifier ContextIdentifier;
+ typedef sequence <ContextIdentifier> ContextIdSeq;
+
+ typedef sequence <ExceptionDef> ExceptionDefSeq;
+ typedef sequence <ExceptionDescription> ExcDescriptionSeq;
+
+ interface OperationDef : Contained
+ /**
+ An OperationDef represents the information that defines an
+ operation of an interface.
+ */
+ {
+ readonly attribute TypeCode result;
+ attribute IDLType result_def;
+ attribute ParDescriptionSeq params;
+ attribute OperationMode mode;
+ attribute ContextIdSeq contexts;
+ attribute ExceptionDefSeq exceptions;
+ };
+
+ struct OperationDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ TypeCode result;
+ OperationMode mode;
+ ContextIdSeq contexts;
+ ParDescriptionSeq parameters;
+ ExcDescriptionSeq exceptions;
+ };
+
+
+
+ typedef sequence <RepositoryId> RepositoryIdSeq;
+ typedef sequence <OperationDescription> OpDescriptionSeq;
+ typedef sequence <AttributeDescription> AttrDescriptionSeq;
+
+ interface InterfaceDef : Container, Contained, IDLType
+ /**
+ An InterfaceDef object represents an interface definition. It can
+ contains constants, typedefs, exceptions, operations, and
+ attributes.
+ */
+ {
+ // read/write interface
+
+ attribute InterfaceDefSeq base_interfaces;
+ attribute boolean is_abstract;
+
+ // read interface
+
+ boolean is_a (in RepositoryId interface_id);
+
+ struct FullInterfaceDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ boolean is_abstract;
+ OpDescriptionSeq operations;
+ AttrDescriptionSeq attributes;
+ RepositoryIdSeq base_interfaces;
+ TypeCode type;
+ };
+
+ FullInterfaceDescription describe_interface();
+
+ // write interface
+
+ AttributeDef create_attribute (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType type,
+ in AttributeMode mode
+ );
+
+ OperationDef create_operation (
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType result,
+ in OperationMode mode,
+ in ParDescriptionSeq params,
+ in ExceptionDefSeq exceptions,
+ in ContextIdSeq contexts
+ );
+ };
+
+ struct InterfaceDescription {
+ Identifier name;
+ RepositoryId id;
+ RepositoryId defined_in;
+ VersionSpec version;
+ RepositoryIdSeq base_interfaces;
+ };
+
+
+ // orbos 98-01-18: Objects By Value -- begin
+
+ interface ValueMemberDef : Contained
+
+ /** A <code>ValueMemberDef</code> object represents the public
+ and private data member definition of a <code>Value</code> type
+ */
+
+ {
+ readonly attribute TypeCode type;
+ attribute IDLType type_def;
+ attribute Visibility access;
+ };
+
+ interface ValueDef : Container, Contained, IDLType
+ /**
+ A ValueDef object represents the definition of the
+ <code>Value</code> object used to pass the object state
+ between hosts
+ */
+
+ {
+ // read/write interface
+ attribute InterfaceDefSeq supported_interfaces;
+ attribute InitializerSeq initializers;
+ attribute ValueDef base_value;
+ attribute ValueDefSeq abstract_base_values;
+ attribute boolean is_abstract;
+ attribute boolean is_custom;
+ attribute octet flags; // always 0
+ attribute boolean has_safe_base;
+
+ // read interface
+ boolean is_a(in RepositoryId value_id);
+
+ struct FullValueDescription {
+ Identifier name;
+ RepositoryId id;
+ boolean is_abstract;
+ boolean is_custom;
+ octet flags; // always 0
+ RepositoryId defined_in;
+ VersionSpec version;
+ OpDescriptionSeq operations;
+ AttrDescriptionSeq attributes;
+ ValueMemberSeq members;
+ InitializerSeq initializers;
+ RepositoryIdSeq supported_interfaces;
+ RepositoryIdSeq abstract_base_values;
+ boolean has_safe_base;
+ RepositoryId base_value;
+ TypeCode type;
+ };
+
+ FullValueDescription describe_value();
+
+ // write interface
+
+ ValueMemberDef create_value_member(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType type_def,
+ in Visibility access
+ );
+
+ AttributeDef create_attribute(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType type,
+ in AttributeMode mode
+ );
+
+ OperationDef create_operation(
+ in RepositoryId id,
+ in Identifier name,
+ in VersionSpec version,
+ in IDLType result,
+ in OperationMode mode,
+ in ParDescriptionSeq params,
+ in ExceptionDefSeq exceptions,
+ in ContextIdSeq contexts
+ );
+ };
+ struct ValueDescription {
+ Identifier name;
+ RepositoryId id;
+ boolean is_abstract;
+ boolean is_custom;
+ octet flags; // always 0
+ RepositoryId defined_in;
+ VersionSpec version;
+ RepositoryIdSeq supported_interfaces;
+ RepositoryIdSeq abstract_base_values;
+ boolean has_safe_base;
+ RepositoryId base_value;
+ };
+
+ interface ValueBoxDef : IDLType
+
+ /** ValueBoxDef is an interface that reresents a value type with
+ a single data member inside its state section and no
+ inheritance or methods. For example, when transmitting a
+ string or sequence as an actual parameter on an interface
+ operation or as a data member of a value type that is an
+ actual parameter, it may be important to preserve any sharing
+ of the string or sequence within the object graph being
+ transmitted. Because current IDL data types do not preserve
+ referential integrity in this way, this requirement is
+ conveniently handled by using a value type. Value types also
+ support the transmission of nulls (as a distinguished value),
+ whereas IDL data types such as string and sequence (which are
+ mapped to empty strings and sequences) do not. The Java to IDL
+ mapping requires both preservation of referential integrity
+ and transmission of nulls. Because it would be cumbersome to
+ require the full IDL syntax for a value type for this specific
+ usage, this shorthand notation is introduced to cover this use
+ of value types for simple containment of a single data member.
+ */
+
+ {
+ attribute IDLType original_type_def;
+ };
+
+ // orbos 98-01-18: Objects By Value -- end
+
+ enum TCKind {
+ tk_null, tk_void,
+ tk_short, tk_long, tk_ushort, tk_ulong,
+ tk_float, tk_double, tk_boolean, tk_char,
+ tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref,
+ tk_struct, tk_union, tk_enum, tk_string,
+ tk_sequence, tk_array, tk_alias, tk_except,
+ tk_longlong, tk_ulonglong, tk_longdouble,
+ tk_wchar, tk_wstring, tk_fixed,
+ tk_value, tk_value_box,
+ tk_native,
+ tk_abstract_interface
+ };
+
+ interface NativeDef : TypedefDef {
+ };
+};
diff --git a/src/java.corba/share/classes/org/omg/CORBA/orb.idl b/src/java.corba/share/classes/org/omg/CORBA/orb.idl
new file mode 100644
index 0000000..bd6cb07
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/orb.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// IDL not generated by rmic, do not edit
+// These are all in IDL module CORBA
+// The Java classes are in the package org.omg.CORBA
+// See ValueType Semantics:Standard Value Box Definitions (5.3) in CORBA 2.3 spec
+
+#ifndef __org_omg_CORBA__
+#define __org_omg_CORBA__
+
+#pragma prefix "omg.org"
+
+module CORBA{
+
+ valuetype StringValue string;
+ valuetype WStringValue wstring;
+
+};
+
+#include "ir.idl"
+
+#pragma prefix ""
+
+#endif
diff --git a/src/java.corba/share/classes/org/omg/CORBA/package.html b/src/java.corba/share/classes/org/omg/CORBA/package.html
new file mode 100644
index 0000000..d8eb990
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/package.html
@@ -0,0 +1,982 @@
+<!doctype html>
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en]C-gatewaynet (WinNT; U)
+[Netscape]">
+ <TITLE>package</TITLE>
+<!--
+/*
+* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+</HEAD>
+<BODY>
+Provides the mapping of the OMG CORBA APIs to the Java&trade;
+programming language, including the class <code>ORB</code>, which is implemented
+so that a programmer can use it as a fully-functional Object Request Broker
+(ORB).
+
+<P>For a precise list of supported sections of official CORBA specifications with which
+the Java[TM] Platform, Standard Edition 6 complies, see <A
+HREF="doc-files/compliance.html"><em>Official Specifications for CORBA support in
+Java[TM] SE 6</em></A>.
+
+
+<H1>General Information</H1>
+The information in this section is information relevant to someone who
+compiles Interface Definition Language (IDL) files and uses the
+ORB to write clients and servers.
+
+<P>The classes and interfaces described in this section can be put into
+four groups: <code>ORB classes</code>, Exceptions, <code>Helper</code> classes,
+and <code>Holder</code> classes.
+
+<H2>
+The <code>ORB</code> Class</H2>
+
+<P>An ORB handles (or brokers) method invocations between a client and
+the method's implementation on a server. Because the client and server
+may be anywhere on a network, and because the invocation and implementation
+may be written in different programming languages, an ORB does a great
+deal of work behind the scenes to accomplish this communication.
+
+<P>Most of what an ORB does is completely transparent to the user, and a major
+portion of the <code>CORBA</code> package consists of classes used by the ORB
+behind the scenes. The result is that most programmers will use only a
+small part of this package directly. In fact, most programmers will use
+only a few methods from the <code>ORB</code> class, some exceptions, and
+occasionally,
+a holder class.
+<H3>
+<code>ORB</code> Methods</H3>
+
+<P>Before an application can enter the CORBA environment, it must first:
+<UL>
+<LI>Be initialized into the ORB and possibly the object adapter (POA) environments.
+<LI>Get references to ORB object (for use in future ORB operations)
+and perhaps other objects (including the root POA or some Object Adapter objects).
+</UL>
+<P>The following operations are provided to initialize applications and obtain
+ the appropriate object references:
+ <UL>
+ <LI>Operations providing access to the ORB, which are discussed in this
+ section.
+ <LI>Operations providing access to Object Adapters, Interface Repository,
+ Naming Service, and other Object Services. These operations are described
+ in <a href="#adv"><em>Other Classes</em></a>.
+ </UL>
+ <P>
+When an application requires a CORBA environment it needs a mechanism to
+get an ORB object reference and possibly an OA object reference
+(such as the root POA). This serves two purposes. First, it initializes
+an application into the ORB and OA environments. Second, it returns the
+ORB object reference and the OA object reference to the application
+for use in future ORB and OA operations.
+
+<P>In order to obtain an ORB object reference, applications call
+the <code>ORB.init</code> operation. The parameters to the call can comprise an
+identifier for the ORB for which the object reference is required,
+ and an arg_list, which is used to allow environment-specific data to be
+ passed into the call.
+
+<P>These are the <code>ORB</code> methods
+ that provide access to the ORB:
+<UL>
+<LI>
+<code><b>init</b>()</code>
+
+<LI>
+<code><b>init</b>(String [] args, Properties props)</code>
+
+<LI>
+<code><b>init</b>(Applet app, Properties props)</code>
+</UL>
+
+<P>Using the <code>init()</code> method without parameters initiates
+a singleton ORB, which can only
+give typecode creation <code>any</code>s needed in code generated
+in Helper classes by <code>idlj</code>.
+
+<P>Applications require a portable means by which to obtain their
+initial object references. References are required for the root
+POA, POA Current, Interface Repository, and various Object Services
+instances. The functionality required by the application is similar
+ to that provided by the Naming Service. However, the OMG does not
+ want to mandate that the Naming Service be made available to all
+ applications in order that they may be portably initialized.
+ Consequently, the operations shown in this section provide a
+ simplified, local version of the Naming Service that applications
+ can use to obtain a small, defined set of object references which
+ are essential to its operation. Because only a small well-defined
+ set of objects are expected with this mechanism, the naming context
+ can be flattened to be a single-level name space. This simplification
+ results in only two operations being defined to achieve the functionality
+ required.
+
+<P>Initial references are obtained via two operations provided in
+the ORB object interface, providing facilities to list and
+resolve initial object references. These are:
+<UL>
+<LI>
+<code><b>resolve_initial_references</b>(String name)</code>
+<LI>
+<code><b>list_initial_services</b>()</code>
+<LI>
+<code><b>register_initial_reference</b>(String id, org.omg.CORBA.Object obj)</code>
+</UL>
+
+<P>An example that uses some of these methods is {@extLink idl_getting_started Getting Started with Java IDL}.
+
+<H2>
+Exceptions</H2>
+Exceptions in Java IDL are similar to those in any code written in the
+Java programming language. If a method is defined to throw an exception,
+then any code using that method must have a <code>try</code>/<code>catch</code>
+block and handle that exception when it is thrown.
+
+<P>The documentation on {@extLink jidlexception Java&nbsp;IDL exceptions }
+has more information and explains the difference between
+system exceptions and user-defined exceptions.
+
+<P>The following is a list of the system exceptions (which are unchecked
+exceptions inheriting through <code><a href="SystemException.html">
+org.omg.CORBA.SystemException</a></code> from
+<code>java.lang.RuntimeException</code>) that are defined in the package
+<code>org.omg.CORBA</code>:
+<PRE><code>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BAD_CONTEXT
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BAD_INV_ORDER
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BAD_OPERATION
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BAD_PARAM
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BAD_TYPECODE
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMM_FAILURE
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATA_CONVERSION
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FREE_MEM
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMP_LIMIT
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INITIALIZE
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTERNAL
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTF_REPOS
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INVALID_TRANSACTION
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INV_FLAG
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INV_IDENT
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INV_OBJREF
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INV_POLICY
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MARSHAL
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#NO_IMPLEMENT">NO_IMPLEMENT</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_MEMORY
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_PERMISSION
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_RESOURCES
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO_RESPONSE
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJECT_NOT_EXIST
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJ_ADAPTER
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PERSIST_STORE
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRANSACTION_REQUIRED
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRANSACTION_ROLLEDBACK
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRANSIENT
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UNKNOWN
+</code></PRE>
+<P>
+The following is a list of user-defined exceptions defined in the package
+<code>org.omg.CORBA</code>.
+<PRE><code>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bounds
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UnknownUserException
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WrongTransaction&nbsp;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PolicyError
+</code></PRE>
+
+ <H2>Subpackages</H2>
+There are some packages inside the <code>CORBA</code> package with
+"Package" as part of their names. These packages are generally quite small
+because all they do is provide exceptions or classes for use by interfaces
+and classes in the <code>CORBA</code> package.
+
+<P>For example, the package <code><a href="TypeCodePackage/package-summary.html">
+org.omg.CORBA.TypeCodePackage</a></code> contains
+two exceptions thrown by methods in the class <code>TypeCode</code>. These
+exceptions are:
+<UL>
+<LI>
+<code>BadKind</code>
+
+<LI>
+<code>Bounds</code>
+</UL>
+The package <code><a href="ORBPackage/package-summary.html">
+org.omg.CORBA.ORBPackage</a></code> contains two exceptions:
+<UL>
+<LI>
+<code>InvalidName</code>
+
+<LI>
+<code>InconsistentTypeCode</code>
+</UL>
+
+<P>Another package that is a subpackage of <code>CORBA</code> is the
+<code><a href="portable/package-summary.html">portable</a></code>
+package. It provides a set of ORB APIs that makes it
+possible for code generated by one vendor's IDL compiler to run
+on another vendor's ORB.
+
+
+
+
+<H2>
+Holder classes</H2>
+
+
+<P>Support for out and inout parameter passing modes requires the use of
+additional <em><a href="doc-files/generatedfiles.html#holder">holder
+classes</a></em>. Because the Java programming language does not support out or
+inout parameters, holder classes are needed as a means of passing a parameter
+that can be modified. To support portable stubs and skeletons,
+holder classes also implement the
+<code><a href="portable/Streamable.html">org.omg.CORBA.portable.Streamable</a></code>
+interface.
+
+ <P>Holder classes are named by appending "Holder" to the name of the type.
+ The name of the type refers to its name in the Java programming language. For
+ example, a holder class for the interface named <code>Account</code>
+ in the Java programming
+ language would be named <code>AccountHolder</code>.
+
+
+<P>Holder classes are available for all of the basic IDL
+ datatypes in the <code>org.omg.CORBA</code> package. So, for example,
+ there are already-defined classes for <code>LongHolder</code>, <code>ShortHolder</code>,
+ <code>FloatHolder</code>, and so on. Classes are also generated for
+ all named user-defined IDL types except those defined by <code>typedefs</code>.
+ (Note that in this context user defined includes types that are
+ defined in OMG specifications such as those for the Interface
+ Repository, and other OMG services.)
+
+
+<P>Each holder class has:
+<UL>
+<LI>a constructor from an instance
+<LI>a default constructor
+<LI>a public instance member, <code>value</code> which is the typed value.
+<LI>a method for reading an input stream and assigning the contents to the
+type's <code>value</code> field
+<LI>a method for writing the value of the <code>value</code> field to an output stream
+<LI>a method for getting the typecode of the type
+</UL>
+
+<P>The default constructor sets the value field to the default value for the
+type as defined by the Java language:
+<UL>
+<LI><code>false</code> for boolean
+<LI><code>0</code> for numeric and char types
+<LI><code>null</code> for strings and object references
+</UL>
+
+
+
+<P>
+As an example, if the interface <code>Account</code>, defined in OMG IDL,
+were mapped to the Java programming language, the following holder class
+would be generated:
+<PRE>
+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 ();
+ }
+
+}
+</PRE>
+
+<P>For more information on Holder classes, see Chapter 1.4, <em>Mapping for
+Basic Types</em> in the <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">
+<em>OMG IDL to Java Language Mapping</em></a>. The Holder classes defined
+in the package <code>org.omg.CORBA</code> are:
+<PRE><code>
+&nbsp;&nbsp;&nbsp;&nbsp; AnyHolder
+&nbsp;&nbsp;&nbsp;&nbsp; AnySeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; BooleanHolder
+&nbsp;&nbsp;&nbsp;&nbsp; BooleanSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ByteHolder
+&nbsp;&nbsp;&nbsp;&nbsp; CharHolder
+&nbsp;&nbsp;&nbsp;&nbsp; CharSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; CurrentHolder
+&nbsp;&nbsp;&nbsp;&nbsp; DoubleHolder
+&nbsp;&nbsp;&nbsp;&nbsp; DoubleSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; FixedHolder
+&nbsp;&nbsp;&nbsp;&nbsp; FloatHolder
+&nbsp;&nbsp;&nbsp;&nbsp; FloatSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; IntHolder
+&nbsp;&nbsp;&nbsp;&nbsp; LongHolder
+&nbsp;&nbsp;&nbsp;&nbsp; LongLongSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; LongSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ObjectHolder
+&nbsp;&nbsp;&nbsp;&nbsp; OctetSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ParameterModeHolder
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyErrorHolder
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyListHolder
+&nbsp;&nbsp;&nbsp;&nbsp; PrincipalHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ServiceInformationHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ShortHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ShortSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; StringHolder
+&nbsp;&nbsp;&nbsp;&nbsp; StringSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; TypeCodeHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ULongLongSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ULongSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; UnknownUserExceptionHolder
+&nbsp;&nbsp;&nbsp;&nbsp; UShortSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; ValueBaseHolder
+&nbsp;&nbsp;&nbsp;&nbsp; WCharSeqHolder
+&nbsp;&nbsp;&nbsp;&nbsp; WrongTransactionHolder
+&nbsp;&nbsp;&nbsp;&nbsp; WStringSeqHolder
+</code></PRE>
+
+<h2>Helper Classes </h2>
+<P>Helper files supply several static methods needed to manipulate the type.
+ These include:
+ <UL>
+ <LI><code>Any</code> insert and extract operations for the type
+ <LI>getting the repository id
+ <LI>getting the typecode
+ <LI>reading and writing the type from and to a stream
+ <LI>implement the <code>ValueHelper</code> interface (if it is a user-defined
+ value type)
+ </UL>
+
+<P>The helper class for a mapped IDL interface or abstract interface
+also include narrow operation(s). The static narrow method allows
+an <code>org.omg.CORBA.Object</code> to be narrowed to the object reference
+of a more specific type. The IDL exception <code>CORBA.BAD_PARAM</code>
+is thrown if the narrow fails because the object reference does not
+support the requested type. A different system exception is raised
+to indicate other kinds of errors. Trying to narrow a <code>null</code> will always
+succeed with a return value of <code>null</code>.
+Generally, the only helper method an application programmer uses is
+the <code>narrow</code> method. The other methods are normally used behind
+the scenes and are transparent to the programmer.
+
+<P>Helper classes
+fall into two broad categories, <a href="#value">helpers for value types</a> and
+<a href="#basic">helpers for non value types</a>. Because all of the helper
+classes in one category
+provide the same methods, one generic explanation of each
+category of helper classes is presented here.
+
+<P>
+When OMG IDL is mapped to the Java programming language,
+a "helper" class is generated for each user-defined type.
+This generated class will have the name of the user-defined type with
+the suffix <code>Helper</code> appended. For example, if the
+interface <code>Account</code> is defined in OMG IDL, the
+<code>idlj</code> compiler will automatically generate a class named
+<code>AccountHelper</code>. The <code>AccountHelper</code> class
+will contain the static methods needed for manipulating instances of the type,
+in this case, <code>Account</code> objects.
+
+
+<a id="narrow"></a>
+<h3>The <code>narrow</code> Method</h3>
+When an object is the return value for a method, it is returned in the
+form of a generic object, either an <code>org.omg.CORBA.Object</code> object
+or a <code>java.lang.Object</code> object. This object must be cast to its
+more specific type before it can be operated on. For example, an
+<code>Account</code> object will be returned as a generic object and must
+be narrowed to an <code>Account</code> object so that <code>Account</code>
+methods may be called on it.
+<P>
+The <code>narrow</code> method has two forms, one that takes an
+<code>org.omg.CORBA.Object</code> object and one that takes a
+<code>java.lang.Object</code> object. Whether the interface is abstract or
+not determines which <code>narrow</code> method its helper class will provide.
+The helper class for an interface
+that is not abstract will have a <code>narrow</code> method that takes a CORBA
+object, whereas the <code>narrow</code> method for an interface that is abstract
+will take an object in the Java programming language. The helper class for a
+non-abstract interface that has at least one abstract base interface will provide
+both versions of the <code>narrow</code> method.
+<P>The {@extLink idl_guides Hello World tutorial}
+uses a <code>narrow</code> method that looks like this:
+<PRE>
+ // 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));
+</PRE>
+
+<a id="basic"></a>
+<h3>Example of a Basic Helper Class</h3>
+A basic helper class, for purposes of this explanation, is one with
+the methods that are provided by every helper class, plus a <code>narrow</code>
+method if the type defined in OMG IDL maps to an interface in the Java
+programming language. Types that are not value types will have a basic
+helper class generated for them.
+<P>
+For example, assuming that the interface <code>Account</code> is not a
+value type IDL type and is also not an abstract interface and has no
+abstract base interfaces, its <code>AccountHelper</code> class will look
+like this:
+<PRE>
+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;
+ }
+ }
+
+}
+</PRE>
+
+<a id="value"></a>
+<h3>Value Type Helper Classes</h3>
+A helper class for a value type includes different renderings of
+the same methods generated for non-value type methods. The main difference
+ is that value types are types that can be
+passed by value as parameters or return values of a method, which means that
+they must be serializable.
+<P>Assuming that <code>Address</code> is a value type, the
+<code>AddressHelper</code> class will look like this:
+<pre>
+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 ());
+ }
+
+
+}
+</pre>
+
+<P>The Helper classes defined in the package <code>org.omg.CORBA</code> are:
+<PRE><code>
+&nbsp;&nbsp;&nbsp;&nbsp; AnySeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; BooleanSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; CharSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; CompletionStatusHelper
+&nbsp;&nbsp;&nbsp;&nbsp; CurrentHelper
+&nbsp;&nbsp;&nbsp;&nbsp; DefinitionKindHelper
+&nbsp;&nbsp;&nbsp;&nbsp; DoubleSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; FieldNameHelper
+&nbsp;&nbsp;&nbsp;&nbsp; FloatSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; IdentifierHelper
+&nbsp;&nbsp;&nbsp;&nbsp; IDLTypeHelper
+&nbsp;&nbsp;&nbsp;&nbsp; LongLongSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; LongSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; NameValuePairHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ObjectHelper
+&nbsp;&nbsp;&nbsp;&nbsp; OctetSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ParameterModeHelper
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyErrorCodeHelper
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyErrorHelper
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyHelper
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyListHelper
+&nbsp;&nbsp;&nbsp;&nbsp; PolicyTypeHelper
+&nbsp;&nbsp;&nbsp;&nbsp; RepositoryIdHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ServiceDetailHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ServiceInformationHelper
+&nbsp;&nbsp;&nbsp;&nbsp; SetOverrideTypeHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ShortSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; StringSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; StringValueHelper
+&nbsp;&nbsp;&nbsp;&nbsp; StructMemberHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ULongLongSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ULongSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; UnionMemberHelper
+&nbsp;&nbsp;&nbsp;&nbsp; UnknownUserExceptionHelper
+&nbsp;&nbsp;&nbsp;&nbsp; UShortSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ValueBaseHelper
+&nbsp;&nbsp;&nbsp;&nbsp; ValueMemberHelper
+&nbsp;&nbsp;&nbsp;&nbsp; VersionSpecHelper
+&nbsp;&nbsp;&nbsp;&nbsp; VisibilityHelper
+&nbsp;&nbsp;&nbsp;&nbsp; WCharSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; WrongTransactionHelper
+&nbsp;&nbsp;&nbsp;&nbsp; WStringSeqHelper
+&nbsp;&nbsp;&nbsp;&nbsp; WStringValueHelper
+</code></PRE>
+<a id="adv"></a>
+<H1>
+Other Classes</H1>
+The other classes and interfaces in the <code>CORBA</code> package, which are
+used behind the scenes, can be put into four groups. Three of the groups
+are used with requests in some capacity, and the fourth group, concerning
+the Interface Repository, is a category by itself.
+<H2>
+Classes Created by an ORB</H2>
+The first group contains classes that are created by an ORB and contain
+information used in request operations.
+<UL>
+<LI>
+<code>TCKind</code> -- indicates the kind (datatype) for a <code>TypeCode</code>
+object
+
+<LI>
+<code>TypeCode</code> -- indicates a datatype and possibly other information
+
+<LI>
+<code>Any</code> -- contains a value and its typecode
+
+<LI>
+<code>NamedValue</code> -- contains a name, an <code>Any</code> object, and an
+argument mode flag. <code>NamedValue</code> objects contain information about
+method arguments, method return values, or a context.
+
+<LI>
+<code>ContextList</code> -- a list of strings that describe the contexts that
+need to be resolved and sent with an invocation
+
+<LI>
+<code>ExceptionList</code> -- a list of <code>TypeCode</code>s for exceptions that
+may be thrown by a method
+
+<LI>
+<code>Environment</code> -- a container for the exception thrown during a method
+invocation
+
+<LI>
+<code>Context</code> -- a list of <code>NamedValue</code> objects used to pass
+auxiliary information from client to server
+
+<LI>
+<code>NVList</code> -- a list of <code>NamedValue</code> objects, used to pass
+arguments or get results
+</UL>
+
+<H2>
+Classes That Deal with Requests</H2>
+The second group of classes deals with requests:
+<UL>
+<LI>
+<code>Object</code> -- the base class for all CORBA object references
+
+<LI>
+<code>Request</code> -- the main class in the DII, which contains methods for
+adding arguments to the request, for accessing information about the method
+being invoked (the method name, its arguments, exceptions it throws, and
+so on), and for making invocations on the request
+
+<LI>
+<code>DynamicImplementation</code> -- the base class for server implementations
+using the DSI. It has the method <code>invoke</code>, which is used by an
+implementation
+of this class to determine the state of a <code>ServerRequest</code> object
+and to set its result or exception
+
+<LI>
+<code>ServerRequest</code> -- captures the explicit state of a request for
+the Dynamic Skeleton Interface
+</UL>
+
+<H2>
+Interfaces That Serve as Constants</H2>
+The third group contains interfaces that serve as constants. The IDL-to-Java
+mapping mandates that IDL enums are mapped to a Java class with the enumerated
+values represented as public static final fields in that class (e.g.
+DefinitionKind).
+On the other hand IDL constants defined outside of an IDL interface are
+mapped to a Java interface for each constant.
+
+<P>This is why several interfaces in the <code>org.omg.CORBA</code> package
+consist of a single field, <code>value</code>, which is a <code>short</code>. This
+field is a constant used for such things as an error code or value modifier.
+For example, the <code>value</code> field of the interface <code>BAD_POLICY</code>
+is one of the possible reasons for the exception <code>PolicyError</code> to
+be thrown. To specify this error code, you would use <code>BAD_POLICY.value</code>.
+
+<P>The exception <code>PolicyError</code> uses the <code>value</code> field of
+the following interfaces as its possible error codes.
+<UL>
+<LI>
+<code>BAD_POLICY</code>
+
+<LI>
+<code>BAD_POLICY_TYPE</code>
+
+<LI>
+<code>BAD_POLICY_VALUE</code>
+
+<LI>
+<code>UNSUPPORTED_POLICY</code>
+
+<LI>
+<code>UNSUPPORTED_POLICY_VALUE</code>
+</UL>
+The method <code>TypeCode.type_modifier</code> returns the <code>value</code> field
+of one of the following interfaces. The <code>VM</code> in the names of these
+interfaces stands for "value modifier."
+<UL>
+<LI>
+<code>VM_NONE</code>
+
+<LI>
+<code>VM_ABSTRACT</code>
+
+<LI>
+<code>VM_CUSTOM</code>
+
+<LI>
+<code>VM_TRUNCATABLE</code>
+</UL>
+The following constants are returned by a <code>ValueMember</code> object's
+access method to denote the visibility of the <code>ValueMember</code> object.
+<UL>
+<LI>
+<code>PRIVATE_MEMBER</code>
+
+<LI>
+<code>PUBLIC_MEMBER</code>
+</UL>
+These flags, used in <code>NamedValue</code> objects or as parameters to methods,
+are defined in the following interfaces:
+<UL>
+<LI>
+<code>ARG_IN</code>
+
+<LI>
+<code>ARG_INOUT</code>
+
+<LI>
+<code>ARG_OUT</code>
+
+<LI>
+<code>CTX_RESTRICT_SCOPE</code>
+</UL>
+
+<H2>
+Interface Repository Interfaces and Classes</H2>
+A fourth group contains the Interface Repository interfaces and classes,
+which are generated by the <code>idlj</code> compiler from the OMG IDL
+interface <code>ir.idl</code>. The purpose of the Interface Repository is to
+identify the interfaces stored in it so that they can be accessed by an
+ORB. Each module, type, interface, attribute, operation, parameter, exception,
+constant, and so on is described completely by the Interface Repository
+API.
+
+<P>An ORB does not require that there be an interface repository, and Java
+IDL does not include one. Even though this release does not include an
+implementation of an interface repository, the following IR classes and
+interfaces have been included for the purpose of creating typecodes (see
+create_value_tc, create_struct_tc, create_union_tc and create_exception_tc
+methods in interface org.omg.CORBA.ORB):
+<BR>&nbsp;
+<UL>
+<LI>
+IRObject
+
+<LI>
+IDLType
+
+<LI>
+DefinitionKind
+
+<LI>
+StructMember
+
+<LI>
+UnionMember
+
+<LI>
+ValueMember
+</UL>
+<!-- End Page Data -->
+<HR>
+<H1>
+Related Documentation</H1>
+For overviews, guides, and a tutorial, please see:
+<UL>
+<LI> {@extLink idl_guides Java&nbsp;IDL tutorial page}.</LI>
+<LI> {@extLink rmi_iiop_guides RMI-IIOP developer's guide}.</LI>
+</UL>
+
+
+
+
+<P><A id="unimpl"></A>
+<H1>
+CORBA Features Not Implemented in Java IDL</H1>
+
+<P>Some of the API included in <code>org.omg</code> subpackages is provided for
+conformance with the current OMG CORBA specification but is not implemented
+in Sun's release of the JDK&trade;. This enables
+other JDK licensees to provide implementations of this API in standard
+extensions and products.
+
+<P><A id="NO_IMPLEMENT"></A>
+<h2>Features That Throw NO_IMPLEMENT</h2>
+
+<P>Some of the API included in <code>org.omg</code> subpackages throw
+<code>NO_IMPLEMENT</code> exceptions for various reasons. Among these reasons
+are:
+ <UL>
+ <LI>In some cases, for example <code>LocalObject</code>, the complete
+ implementation according to the specification indicates that
+ these API should throw <code>NO_IMPLEMENT</code>.
+
+ <LI>In most cases, for example methods in <code>ORB.java</code>,
+ methods that throw
+ <code>NO_IMPLEMENT</code> are actually implemented in subclasses
+ elsewhere in the ORB code.
+
+ <LI>In some cases, for example <code>_get_interface_def()</code>
+ and <code>_get_interface</code>, API are really not yet implemented.
+ </UL>
+
+
+
+
+<H2>
+General Summary of Features or API Not Implemented in This Release:</H2>
+
+<UL>
+<LI>
+Interface Repository. An Interface Repository is not required for normal
+operation of Java IDL.
+
+<LI>
+Java IDL does not support <code>long double</code>.
+
+
+<LI>
+Policies (<code><a href="Policy.html">org.omg.CORBA.Policy</a></code>)
+and methods for getting them are not implemented.
+
+<LI>
+Domain managers (<code><a href="DomainManager.html">org.omg.CORBA.DomainManager</a></code>) and methods for
+getting them are not implemented.
+
+<LI>
+Service Information <code><a href="ServiceInformation.html">org.omg.CORBA.ServiceInformation</a></code>
+and ORB method
+<code>public boolean get_service_information(short service_type, ServiceInformationHolder service_info)</code>
+are not implemented.
+
+<LI>ORB methods for supporting single-threading
+(<code>perform_work</code>, <code>work_pending</code>) are not implemented.
+
+<LI>IDL contexts.
+</UL>
+
+<HR>
+<H2>
+Specific List of Unimplemented Features in Package <code>org.omg.CORBA</code></H2>
+
+
+<H3>
+Unimplemented Methods in package <code>org.omg.CORBA</code>:</H3>
+
+<UL>
+<LI>
+<code>ORB</code>
+
+<UL>
+<LI>
+<code>public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val)</code>
+
+
+
+<LI>
+<code>public void perform_work()</code>
+
+<LI>
+<code>public boolean work_pending()</code>
+
+<LI>
+<code>public org.omg.CORBA.Current get_current()</code>
+
+<LI>
+<code>create_operation_list</code>
+
+<LI>
+<code>get_default_context</code>
+
+<LI>
+<code>get_service_information</code>
+
+<LI>
+obsolete <code>DynAnys</code> (deprecated in favor of <code>DynamicAny</code> package)
+
+
+</UL>
+
+
+
+</UL>
+@since JDK1.2
+@serial exclude
+</BODY>
+</HTML>
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java
new file mode 100644
index 0000000..f9cf860
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.portable;
+
+/**
+This class is used for reporting application level exceptions between ORBs and stubs.
+*/
+
+public class ApplicationException extends Exception {
+ /**
+ * Constructs an ApplicationException from the CORBA repository ID of the exception
+ * and an input stream from which the exception data can be read as its parameters.
+ * @param id the repository id of the user exception
+ * @param ins the stream which contains the user exception data
+ */
+ public ApplicationException(String id,
+ InputStream ins) {
+ this.id = id;
+ this.ins = ins;
+ }
+
+ /**
+ * Returns the CORBA repository ID of the exception
+ * without removing it from the exceptions input stream.
+ * @return The CORBA repository ID of this exception
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Returns the input stream from which the exception data can be read as its parameters.
+ * @return The stream which contains the user exception data
+ */
+ public InputStream getInputStream() {
+ return ins;
+ }
+
+ private String id;
+ private InputStream ins;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java
new file mode 100644
index 0000000..71ad68e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA.portable;
+import java.io.Serializable;
+
+public interface BoxedValueHelper {
+ Serializable read_value(InputStream is);
+ void write_value(OutputStream os, Serializable value);
+ String get_id();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java b/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java
new file mode 100644
index 0000000..9e785ba
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Defines the base interface for all custom value types
+ * generated from IDL.
+ *
+ * All value types implement ValueBase either directly
+ * or indirectly by implementing either the StreamableValue
+ * or CustomValue interface.
+ * @author OMG
+ */
+
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.CustomMarshal;
+/**
+ * An extension of <code>ValueBase</code> that is implemented by custom value
+ * types.
+ */
+public interface CustomValue extends ValueBase, CustomMarshal {
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java b/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java
new file mode 100644
index 0000000..a0375fb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java
@@ -0,0 +1,408 @@
+/*
+ * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.Request;
+import org.omg.CORBA.NamedValue;
+import org.omg.CORBA.NVList;
+import org.omg.CORBA.Context;
+import org.omg.CORBA.ContextList;
+import org.omg.CORBA.ExceptionList;
+import org.omg.CORBA.TypeCode;
+import org.omg.CORBA.SystemException;
+
+/**
+ * Specifies a portable API for ORB-vendor-specific
+ * implementation of the org.omg.CORBA.Object methods.
+ *
+ * Each stub (proxy) contains a delegate
+ * object, to which all org.omg.CORBA.Object methods are forwarded.
+ * This allows a stub generated by one vendor's ORB to work with the delegate
+ * from another vendor's ORB.
+ *
+ * @see org.omg.CORBA.Object
+ * @author OMG
+ */
+
+public abstract class Delegate {
+
+ /**
+ * Return an InterfaceDef for the object reference provided.
+ * @param self The object reference whose InterfaceDef needs to be returned
+ * @return the InterfaceDef
+ */
+ public abstract org.omg.CORBA.Object get_interface_def(
+ org.omg.CORBA.Object self);
+
+ /**
+ * Returns a duplicate of the object reference provided.
+ * @param obj The object reference whose duplicate needs to be returned
+ * @return the duplicate object reference
+ */
+ public abstract org.omg.CORBA.Object duplicate(org.omg.CORBA.Object obj);
+
+ /**
+ * Releases resources associated with the object reference provided.
+ * @param obj The object reference whose resources need to be released
+ */
+ public abstract void release(org.omg.CORBA.Object obj);
+
+ /**
+ * Checks if the object reference is an instance of the given interface.
+ * @param obj The object reference to be checked.
+ * @param repository_id The repository identifier of the interface
+ * to check against.
+ * @return true if the object reference supports the interface
+ */
+ public abstract boolean is_a(org.omg.CORBA.Object obj, String repository_id);
+
+ /**
+ * Determines whether the server object for the object reference has been
+ * destroyed.
+ * @param obj The object reference which delegated to this delegate.
+ * @return true if the ORB knows authoritatively that the server object does
+ * not exist, false otherwise
+ */
+ public abstract boolean non_existent(org.omg.CORBA.Object obj);
+
+ /**
+ * Determines if the two object references are equivalent.
+ * @param obj The object reference which delegated to this delegate.
+ * @param other The object reference to check equivalence against.
+ * @return true if the objects are CORBA-equivalent.
+ */
+ public abstract boolean is_equivalent(org.omg.CORBA.Object obj,
+ org.omg.CORBA.Object other);
+
+ /**
+ * Returns an ORB-internal identifier (hashcode) for this object reference.
+ * @param obj The object reference which delegated to this delegate.
+ * @param max specifies an upper bound on the hash value returned by
+ * the ORB.
+ * @return ORB-internal hash identifier for object reference
+ */
+ public abstract int hash(org.omg.CORBA.Object obj, int max);
+
+ /**
+ * Creates a Request instance for use in the Dynamic Invocation Interface.
+ * @param obj The object reference which delegated to this delegate.
+ * @param operation The name of the operation to be invoked using the
+ * Request instance.
+ * @return the created Request instance
+ */
+ public abstract Request request(org.omg.CORBA.Object obj, String operation);
+
+ /**
+ * Creates a Request instance for use in the Dynamic Invocation Interface.
+ *
+ * @param obj The object reference which delegated to this delegate.
+ * @param ctx The context to be used.
+ * @param operation The name of the operation to be
+ * invoked.
+ * @param arg_list The arguments to the operation in the
+ * form of an NVList.
+ * @param result A container for the result as a NamedValue.
+ * @return The created Request object.
+ *
+ */
+ public abstract Request create_request(org.omg.CORBA.Object obj,
+ Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result);
+
+ /**
+ * Creates a Request instance for use in the Dynamic Invocation Interface.
+ *
+ * @param obj The object reference which delegated to this delegate.
+ * @param ctx The context to be used.
+ * @param operation The name of the operation to be
+ * invoked.
+ * @param arg_list The arguments to the operation in the
+ * form of an NVList.
+ * @param result A container for the result as a NamedValue.
+ * @param exclist A list of possible exceptions the
+ * operation can throw.
+ * @param ctxlist A list of context strings that need
+ * to be resolved and sent with the
+ * Request.
+ * @return The created Request object.
+ */
+ public abstract Request create_request(org.omg.CORBA.Object obj,
+ Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result,
+ ExceptionList exclist,
+ ContextList ctxlist);
+
+ /**
+ * Provides a reference to the orb associated with its parameter.
+ *
+ * @param obj the object reference which delegated to this delegate.
+ * @return the associated orb.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.ORB orb(org.omg.CORBA.Object obj) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Returns the <code>Policy</code> object of the specified type
+ * which applies to this object.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @param policy_type The type of policy to be obtained.
+ * @return A <code>Policy</code> object of the type specified by
+ * the policy_type parameter.
+ * @exception org.omg.CORBA.BAD_PARAM raised when the value of policy type
+ * is not valid either because the specified type is not supported by this
+ * ORB or because a policy object of that type is not associated with this
+ * Object.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Policy get_policy(org.omg.CORBA.Object self,
+ int policy_type) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Retrieves the <code>DomainManagers</code> of this object.
+ * This allows administration services (and applications) to retrieve the
+ * domain managers, and hence the security and other policies applicable
+ * to individual objects that are members of the domain.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @return The list of immediately enclosing domain managers of this object.
+ * At least one domain manager is always returned in the list since by
+ * default each object is associated with at least one domain manager at
+ * creation.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.DomainManager[] get_domain_managers(
+ org.omg.CORBA.Object
+ self) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Associates the policies passed in
+ * with a newly created object reference that it returns. Only certain
+ * policies that pertain to the invocation of an operation at the client
+ * end can be overridden using this operation. Attempts to override any
+ * other policy will result in the raising of the CORBA::NO_PERMISSION
+ * exception.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @param policies A sequence of references to Policy objects.
+ * @param set_add Indicates whether these policies should be added
+ * onto any otheroverrides that already exist (ADD_OVERRIDE) in
+ * the object reference, or they should be added to a clean
+ * override free object reference (SET_OVERRIDE).
+ * @return A new object reference with the new policies associated with it.
+ *
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object set_policy_override(org.omg.CORBA.Object self,
+ org.omg.CORBA.Policy[] policies,
+ org.omg.CORBA.SetOverrideType set_add) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * Returns true if this object is implemented by a local servant.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @return true only if the servant incarnating this object is located in
+ * this Java VM. Return false if the servant is not local or the ORB
+ * does not support local stubs for this particular servant. The default
+ * behavior of is_local() is to return false.
+ */
+ public boolean is_local(org.omg.CORBA.Object self) {
+ return false;
+ }
+
+ /**
+ * Returns a Java reference to the servant which should be used for this
+ * request. servant_preinvoke() is invoked by a local stub.
+ * If a ServantObject object is returned, then its servant field
+ * has been set to an object of the expected type (Note: the object may
+ * or may not be the actual servant instance). The local stub may cast
+ * the servant field to the expected type, and then invoke the operation
+ * directly. The ServantRequest object is valid for only one invocation,
+ * and cannot be used for more than one invocation.
+ *
+ * @param self The object reference which delegated to this delegate.
+ *
+ * @param operation a string containing the operation name.
+ * The operation name corresponds to the operation name as it would be
+ * encoded in a GIOP request.
+ *
+ * @param expectedType a Class object representing the expected type of the servant.
+ * The expected type is the Class object associated with the operations
+ * class of the stub's interface (e.g. A stub for an interface Foo,
+ * would pass the Class object for the FooOperations interface).
+ *
+ * @return a ServantObject object.
+ * The method may return a null value if it does not wish to support
+ * this optimization (e.g. due to security, transactions, etc).
+ * The method must return null if the servant is not of the expected type.
+ */
+ public ServantObject servant_preinvoke(org.omg.CORBA.Object self,
+ String operation,
+ Class expectedType) {
+ return null;
+ }
+
+ /**
+ * servant_postinvoke() is invoked by the local stub after the operation
+ * has been invoked on the local servant.
+ * This method must be called if servant_preinvoke() returned a non-null
+ * value, even if an exception was thrown by the servant's method.
+ * For this reason, the call to servant_postinvoke() should be placed
+ * in a Java finally clause.
+ *
+ * @param self The object reference which delegated to this delegate.
+ *
+ * @param servant the instance of the ServantObject returned from
+ * the servant_preinvoke() method.
+ */
+ public void servant_postinvoke(org.omg.CORBA.Object self,
+ ServantObject servant) {
+ }
+
+ /**
+ * request is called by a stub to obtain an OutputStream for
+ * marshaling arguments. The stub must supply the operation name,
+ * and indicate if a response is expected (i.e is this a oneway
+ * call).
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @param operation a string containing the operation name.
+ * The operation name corresponds to the operation name as it would be
+ * encoded in a GIOP request.
+ * @param responseExpected false if the operation is a one way operation,
+ * and true otherwise.
+ * @return OutputStream the OutputStream into which request arguments
+ * can be marshaled.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public OutputStream request(org.omg.CORBA.Object self,
+ String operation,
+ boolean responseExpected) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * invoke is called by a stub to invoke an operation. The stub provides an
+ * OutputStream that was previously returned by a request()
+ * call. invoke returns an InputStream which contains the
+ * marshaled reply. If an exception occurs, invoke may throw an
+ * ApplicationException object which contains an InputStream from
+ * which the user exception state may be unmarshaled.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @param output the OutputStream which contains marshaled arguments
+ * @return input the InputStream from which reply parameters can be
+ * unmarshaled.
+ * @throws ApplicationException thrown when implementation throws
+ * (upon invocation) an exception defined as part of its remote method
+ * definition.
+ * @throws RemarshalException thrown when remarshalling fails.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public InputStream invoke(org.omg.CORBA.Object self,
+ OutputStream output)
+ throws ApplicationException, RemarshalException {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * releaseReply may optionally be called by a stub to release a
+ * reply stream back to the ORB when the unmarshaling has
+ * completed. The stub passes the InputStream returned by
+ * invoke() or ApplicationException.getInputStream(). A null
+ * value may also be passed to releaseReply, in which case the
+ * method is a noop.
+ *
+ * @param self The object reference which delegated to this delegate.
+ * @param input the InputStream returned from invoke().
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public void releaseReply(org.omg.CORBA.Object self,
+ InputStream input) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Provides the implementation to override the toString() method
+ * of the delegating CORBA object.
+ *
+ * @param self the object reference that delegated to this delegate
+ * @return a <code>String</code> object that represents the object
+ * reference that delegated to this <code>Delegate</code>
+ * object
+ */
+
+ public String toString(org.omg.CORBA.Object self) {
+ return self.getClass().getName() + ":" + this.toString();
+ }
+
+ /**
+ * Provides the implementation to override the hashCode() method
+ * of the delegating CORBA object.
+ *
+ * @param self the object reference that delegated to this delegate
+ * @return an <code>int</code> that represents the hashcode for the
+ * object reference that delegated to this <code>Delegate</code>
+ * object
+ */
+ public int hashCode(org.omg.CORBA.Object self) {
+ return System.identityHashCode(self);
+ }
+
+ /**
+ * Provides the implementation to override the equals(java.lang.Object obj)
+ * method of the delegating CORBA object.
+ *
+ * @param self the object reference that delegated to this delegate
+ * @param obj the <code>Object</code> with which to compare
+ * @return <code>true</code> if <code>obj</code> equals <code>self</code>;
+ * <code>false</code> otherwise
+ */
+ public boolean equals(org.omg.CORBA.Object self, java.lang.Object obj) {
+ return (self == obj);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java b/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java
new file mode 100644
index 0000000..867fdeb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.portable;
+
+/**
+ * An interface with no members whose only purpose is to serve as a marker
+ * indicating that an implementing class is a
+ * Java value type from IDL that has a corresponding Helper class.
+ * RMI IIOP serialization looks for such a marker to perform
+ * marshalling/unmarshalling.
+ **/
+public interface IDLEntity extends java.io.Serializable {
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java
new file mode 100644
index 0000000..cdf73ac
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.SystemException;
+/**
+ * The Indirection exception is a Java specific system exception.
+ * It is thrown when the ORB's input stream is called to demarshal
+ * a value that is encoded as an indirection that is in the process
+ * of being demarshaled. This can occur when the ORB input stream
+ * calls the ValueHandler to demarshal an RMI value whose state
+ * contains a recursive reference to itself. Because the top-level
+ * ValueHandler.read_value() call has not yet returned a value,
+ * the ORB input stream's indirection table does not contain an entry
+ * for an object with the stream offset specified by the indirection
+ * tag. The stream offset is returned in the exception's offset field.
+ * @see org.omg.CORBA_2_3.portable.InputStream
+ * @see org.omg.CORBA_2_3.portable.OutputStream
+ */
+public class IndirectionException extends SystemException {
+
+ /**
+ * Points to the stream's offset.
+ */
+ public int offset;
+
+ /**
+ * Creates an IndirectionException with the right offset value.
+ * The stream offset is returned in the exception's offset field.
+ * This exception is constructed and thrown during reading
+ * recursively defined values off of a stream.
+ *
+ * @param offset the stream offset where recursion is detected.
+ */
+ public IndirectionException(int offset){
+ super("", 0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
+ this.offset = offset;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java
new file mode 100644
index 0000000..e03578e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java
@@ -0,0 +1,320 @@
+/*
+ * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.TypeCode;
+import org.omg.CORBA.Principal;
+import org.omg.CORBA.Any;
+
+/**
+ * InputStream is the Java API for reading IDL types
+ * from CDR marshal streams. These methods are used by the ORB to
+ * unmarshal IDL types as well as to extract IDL types out of Anys.
+ * The <code>_array</code> versions of the methods can be directly
+ * used to read sequences and arrays of IDL types.
+ *
+ * @since JDK1.2
+ */
+
+public abstract class InputStream extends java.io.InputStream
+{
+ /**
+ * Reads a boolean value from this input stream.
+ *
+ * @return the <code>boolean</code> value read from this input stream
+ */
+ public abstract boolean read_boolean();
+ /**
+ * Reads a char value from this input stream.
+ *
+ * @return the <code>char</code> value read from this input stream
+ */
+ public abstract char read_char();
+ /**
+ * Reads a wide char value from this input stream.
+ *
+ * @return the <code>char</code> value read from this input stream
+ */
+ public abstract char read_wchar();
+ /**
+ * Reads an octet (that is, a byte) value from this input stream.
+ *
+ * @return the <code>byte</code> value read from this input stream
+ */
+ public abstract byte read_octet();
+ /**
+ * Reads a short value from this input stream.
+ *
+ * @return the <code>short</code> value read from this input stream
+ */
+ public abstract short read_short();
+ /**
+ * Reads a unsigned short value from this input stream.
+ *
+ * @return the <code>short</code> value read from this input stream
+ */
+ public abstract short read_ushort();
+ /**
+ * Reads a CORBA long (that is, Java int) value from this input stream.
+ *
+ * @return the <code>int</code> value read from this input stream
+ */
+ public abstract int read_long();
+ /**
+ * Reads an unsigned CORBA long (that is, Java int) value from this input
+stream.
+ *
+ * @return the <code>int</code> value read from this input stream
+ */
+ public abstract int read_ulong();
+ /**
+ * Reads a CORBA longlong (that is, Java long) value from this input stream.
+ *
+ * @return the <code>long</code> value read from this input stream
+ */
+ public abstract long read_longlong();
+ /**
+ * Reads a CORBA unsigned longlong (that is, Java long) value from this input
+stream.
+ *
+ * @return the <code>long</code> value read from this input stream
+ */
+ public abstract long read_ulonglong();
+ /**
+ * Reads a float value from this input stream.
+ *
+ * @return the <code>float</code> value read from this input stream
+ */
+ public abstract float read_float();
+ /**
+ * Reads a double value from this input stream.
+ *
+ * @return the <code>double</code> value read from this input stream
+ */
+ public abstract double read_double();
+ /**
+ * Reads a string value from this input stream.
+ *
+ * @return the <code>String</code> value read from this input stream
+ */
+ public abstract String read_string();
+ /**
+ * Reads a wide string value from this input stream.
+ *
+ * @return the <code>String</code> value read from this input stream
+ */
+ public abstract String read_wstring();
+
+ /**
+ * Reads an array of booleans from this input stream.
+ * @param value returned array of booleans.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_boolean_array(boolean[] value, int offset, int
+length);
+ /**
+ * Reads an array of chars from this input stream.
+ * @param value returned array of chars.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_char_array(char[] value, int offset, int
+length);
+ /**
+ * Reads an array of wide chars from this input stream.
+ * @param value returned array of wide chars.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_wchar_array(char[] value, int offset, int
+length);
+ /**
+ * Reads an array of octets (that is, bytes) from this input stream.
+ * @param value returned array of octets (that is, bytes).
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_octet_array(byte[] value, int offset, int
+length);
+ /**
+ * Reads an array of shorts from this input stream.
+ * @param value returned array of shorts.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_short_array(short[] value, int offset, int
+length);
+ /**
+ * Reads an array of unsigned shorts from this input stream.
+ * @param value returned array of shorts.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_ushort_array(short[] value, int offset, int
+length);
+ /**
+ * Reads an array of CORBA longs (that is, Java ints) from this input stream.
+ * @param value returned array of CORBA longs (that is, Java ints).
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_long_array(int[] value, int offset, int
+length);
+ /**
+ * Reads an array of unsigned CORBA longs (that is, Java ints) from this input
+stream.
+ * @param value returned array of CORBA longs (that is, Java ints).
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_ulong_array(int[] value, int offset, int
+length);
+ /**
+ * Reads an array of CORBA longlongs (that is, Java longs) from this input
+stream.
+ * @param value returned array of CORBA longs (that is, Java longs).
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_longlong_array(long[] value, int offset, int
+length);
+ /**
+ * Reads an array of unsigned CORBA longlongs (that is, Java longs) from this
+input stream.
+ * @param value returned array of CORBA longs (that is, Java longs).
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_ulonglong_array(long[] value, int offset, int
+length);
+ /**
+ * Reads an array of floats from this input stream.
+ * @param value returned array of floats.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_float_array(float[] value, int offset, int
+length);
+ /**
+ * Reads an array of doubles from this input stream.
+ * @param value returned array of doubles.
+ * @param offset offset on the stream.
+ * @param length length of buffer to read.
+ */
+ public abstract void read_double_array(double[] value, int offset, int
+length);
+
+ /**
+ * Reads a CORBA object from this input stream.
+ *
+ * @return the <code>Object</code> instance read from this input stream.
+ */
+ public abstract org.omg.CORBA.Object read_Object();
+ /**
+ * Reads a <code>TypeCode</code> from this input stream.
+ *
+ * @return the <code>TypeCode</code> instance read from this input stream.
+ */
+ public abstract TypeCode read_TypeCode();
+ /**
+ * Reads an Any from this input stream.
+ *
+ * @return the <code>Any</code> instance read from this input stream.
+ */
+ public abstract Any read_any();
+
+ /**
+ * Returns principal for invocation.
+ * @return Principal for invocation.
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public Principal read_Principal() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+ /**
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public int read() throws java.io.IOException {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Reads a BigDecimal number.
+ * @return a java.math.BigDecimal number
+ */
+ public java.math.BigDecimal read_fixed() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Reads a CORBA context from the stream.
+ * @return a CORBA context
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Context read_Context() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ /*
+ * The following methods were added by orbos/98-04-03: Java to IDL
+ * Mapping. These are used by RMI over IIOP.
+ */
+
+ /**
+ * Unmarshals an object and returns a CORBA Object,
+ * which is an instance of the class passed as its argument.
+ * This class is the stub class of the expected type.
+ *
+ * @param clz The Class object for the stub class which
+ * corresponds to the type that is statistically expected, or
+ * the Class object for the RMI/IDL interface type that
+ * is statistically expected.
+ * @return an Object instance of clz read from this stream
+ *
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.Object read_Object(java.lang.Class
+ clz) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Returns the ORB that created this InputStream.
+ *
+ * @return the <code>ORB</code> object that created this stream
+ *
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.ORB orb() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java b/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java
new file mode 100644
index 0000000..b626a5c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+/**
+This interface provides a dispatching mechanism for an incoming call.
+It is invoked by the ORB to dispatch a request to a servant.
+*/
+
+public interface InvokeHandler {
+ /**
+ * Invoked by the ORB to dispatch a request to the servant.
+ *
+ * ORB passes the method name, an InputStream containing the
+ * marshalled arguments, and a ResponseHandler which the servant
+ * uses to construct a proper reply.
+ *
+ * Only CORBA SystemException may be thrown by this method.
+ *
+ * The method must return an OutputStream created by the
+ * ResponseHandler which contains the marshalled reply.
+ *
+ * A servant must not retain a reference to the ResponseHandler
+ * beyond the lifetime of a method invocation.
+ *
+ * Servant behaviour is defined as follows:
+ * <p>1. Determine correct method, and unmarshal parameters from
+ * InputStream.
+ * <p>2. Invoke method implementation.
+ * <p>3. If no user exception, create a normal reply using
+ * ResponseHandler.
+ * <p>4. If user exception occurred, create exception reply using
+ * ResponseHandler.
+ * <p>5. Marshal reply into OutputStream returned by
+ * ResponseHandler.
+ * <p>6. Return OutputStream to ORB.
+ *
+ * @param method The method name.
+ * @param input The <code>InputStream</code> containing the marshalled arguments.
+ * @param handler The <code>ResponseHandler</code> which the servant uses
+ * to construct a proper reply
+ * @return The <code>OutputStream</code> created by the
+ * ResponseHandler which contains the marshalled reply
+ * @throws SystemException is thrown when invocation fails due to a CORBA system exception.
+ */
+
+ OutputStream _invoke(String method, InputStream input,
+ ResponseHandler handler)
+ throws org.omg.CORBA.SystemException;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java
new file mode 100644
index 0000000..3cd515d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java
@@ -0,0 +1,534 @@
+/*
+ * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.Request;
+import org.omg.CORBA.NamedValue;
+import org.omg.CORBA.NVList;
+import org.omg.CORBA.ExceptionList;
+import org.omg.CORBA.ContextList;
+import org.omg.CORBA.Context;
+import org.omg.CORBA.TypeCode;
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.SystemException;
+
+
+/**
+ * The common base class for all stub classes; provides default implementations
+ * of the <code>org.omg.CORBA.Object</code> methods. All method implementations are
+ * forwarded to a <code>Delegate</code> object stored in the <code>ObjectImpl</code>
+ * instance. <code>ObjectImpl</code> allows for portable stubs because the
+ * <code>Delegate</code> can be implemented by a different vendor-specific ORB.
+ */
+
+abstract public class ObjectImpl implements org.omg.CORBA.Object
+{
+
+ /**
+ * The field that stores the <code>Delegate</code> instance for
+ * this <code>ObjectImpl</code> object. This <code>Delegate</code>
+ * instance can be implemented by a vendor-specific ORB. Stub classes,
+ * which are derived from this <code>ObjectImpl</code> class, can be
+ * portable because they delegate all of the methods called on them to this
+ * <code>Delegate</code> object.
+ */
+ private transient Delegate __delegate;
+
+
+ /**
+ * Retrieves the reference to the vendor-specific <code>Delegate</code>
+ * object to which this <code>ObjectImpl</code> object delegates all
+ * methods invoked on it.
+ *
+ * @return the Delegate contained in this ObjectImpl instance
+ * @throws BAD_OPERATION if the delegate has not been set
+ * @see #_set_delegate
+ */
+ public Delegate _get_delegate() {
+ if (__delegate == null)
+ throw new BAD_OPERATION("The delegate has not been set!");
+ return __delegate;
+ }
+
+
+ /**
+ * Sets the Delegate for this <code>ObjectImpl</code> instance to the given
+ * <code>Delegate</code> object. All method invocations on this
+ * <code>ObjectImpl</code> object will be forwarded to this delegate.
+ *
+ * @param delegate the <code>Delegate</code> instance to which
+ * all method calls on this <code>ObjectImpl</code> object
+ * will be delegated; may be implemented by a third-party ORB
+ * @see #_get_delegate
+ */
+ public void _set_delegate(Delegate delegate) {
+ __delegate = delegate;
+ }
+
+ /**
+ * Retrieves a string array containing the repository identifiers
+ * supported by this <code>ObjectImpl</code> object. For example,
+ * for a stub, this method returns information about all the
+ * interfaces supported by the stub.
+ *
+ * @return the array of all repository identifiers supported by this
+ * <code>ObjectImpl</code> instance
+ */
+ public abstract String[] _ids();
+
+
+ /**
+ * Returns a duplicate of this <code>ObjectImpl</code> object.
+ *
+ * @return an <code>orb.omg.CORBA.Object</code> object that is
+ * a duplicate of this object
+ */
+ public org.omg.CORBA.Object _duplicate() {
+ return _get_delegate().duplicate(this);
+ }
+
+ /**
+ * Releases the resources associated with this <code>ObjectImpl</code> object.
+ */
+ public void _release() {
+ _get_delegate().release(this);
+ }
+
+ /**
+ * Checks whether the object identified by the given repository
+ * identifier is an <code>ObjectImpl</code> object.
+ *
+ * @param repository_id a <code>String</code> object with the repository
+ * identifier to check
+ * @return <code>true</code> if the object identified by the given
+ * repository id is an instance of <code>ObjectImpl</code>;
+ * <code>false</code> otherwise
+ */
+ public boolean _is_a(String repository_id) {
+ return _get_delegate().is_a(this, repository_id);
+ }
+
+ /**
+ * Checks whether the the given <code>ObjectImpl</code> object is
+ * equivalent to this <code>ObjectImpl</code> object.
+ *
+ * @param that an instance of <code>ObjectImpl</code> to compare with
+ * this <code>ObjectImpl</code> object
+ * @return <code>true</code> if the given object is equivalent
+ * to this <code>ObjectImpl</code> object;
+ * <code>false</code> otherwise
+ */
+ public boolean _is_equivalent(org.omg.CORBA.Object that) {
+ return _get_delegate().is_equivalent(this, that);
+ }
+
+ /**
+ * Checks whether the server object for this <code>ObjectImpl</code>
+ * object has been destroyed.
+ *
+ * @return <code>true</code> if the ORB knows authoritatively that the
+ * server object does not exist; <code>false</code> otherwise
+ */
+ public boolean _non_existent() {
+ return _get_delegate().non_existent(this);
+ }
+
+ /**
+ * Retrieves the hash code that serves as an ORB-internal identifier for
+ * this <code>ObjectImpl</code> object.
+ *
+ * @param maximum an <code>int</code> indicating the upper bound on the hash
+ * value returned by the ORB
+ * @return an <code>int</code> representing the hash code for this
+ * <code>ObjectImpl</code> object
+ */
+ public int _hash(int maximum) {
+ return _get_delegate().hash(this, maximum);
+ }
+
+ /**
+ * Creates a <code>Request</code> object containing the given method
+ * that can be used with the Dynamic Invocation Interface.
+ *
+ * @param operation the method to be invoked by the new <code>Request</code>
+ * object
+ * @return a new <code>Request</code> object initialized with the
+ * given method
+ */
+ public Request _request(String operation) {
+ return _get_delegate().request(this, operation);
+ }
+
+ /**
+ * Creates a <code>Request</code> object that contains the given context,
+ * method, argument list, and container for the result.
+ *
+ * @param ctx the Context for the request
+ * @param operation the method that the new <code>Request</code>
+ * object will invoke
+ * @param arg_list the arguments for the method; an <code>NVList</code>
+ * in which each argument is a <code>NamedValue</code> object
+ * @param result a <code>NamedValue</code> object to be used for
+ * returning the result of executing the request's method
+ * @return a new <code>Request</code> object initialized with the
+ * given context, method, argument list, and container for the
+ * return value
+ */
+ public Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result) {
+ return _get_delegate().create_request(this,
+ ctx,
+ operation,
+ arg_list,
+ result);
+ }
+
+ /**
+ * Creates a <code>Request</code> object that contains the given context,
+ * method, argument list, container for the result, exceptions, and
+ * list of property names to be used in resolving the context strings.
+ * This <code>Request</code> object is for use in the Dynamic
+ * Invocation Interface.
+ *
+ * @param ctx the <code>Context</code> object that contains the
+ * context strings that must be resolved before they are
+ * sent along with the request
+ * @param operation the method that the new <code>Request</code>
+ * object will invoke
+ * @param arg_list the arguments for the method; an <code>NVList</code>
+ * in which each argument is a <code>NamedValue</code> object
+ * @param result a <code>NamedValue</code> object to be used for
+ * returning the result of executing the request's method
+ * @param exceptions a list of the exceptions that the given method
+ * throws
+ * @param contexts a list of the properties that are needed to
+ * resolve the contexts in <i>ctx</i>; the strings in
+ * <i>contexts</i> are used as arguments to the method
+ * <code>Context.get_values</code>,
+ * which returns the value associated with the given property
+ * @return a new <code>Request</code> object initialized with the
+ * given context strings to resolve, method, argument list,
+ * container for the result, exceptions, and list of property
+ * names to be used in resolving the context strings
+ */
+ public Request _create_request(Context ctx,
+ String operation,
+ NVList arg_list,
+ NamedValue result,
+ ExceptionList exceptions,
+ ContextList contexts) {
+ return _get_delegate().create_request(this,
+ ctx,
+ operation,
+ arg_list,
+ result,
+ exceptions,
+ contexts);
+ }
+
+ /**
+ * Retrieves the interface definition for this <code>ObjectImpl</code>
+ * object.
+ *
+ * @return the <code>org.omg.CORBA.Object</code> instance that is the
+ * interface definition for this <code>ObjectImpl</code> object
+ */
+ public org.omg.CORBA.Object _get_interface_def()
+ {
+ // First try to call the delegate implementation class's
+ // "Object get_interface_def(..)" method (will work for JDK1.2 ORBs).
+ // Else call the delegate implementation class's
+ // "InterfaceDef get_interface(..)" method using reflection
+ // (will work for pre-JDK1.2 ORBs).
+
+ org.omg.CORBA.portable.Delegate delegate = _get_delegate();
+ try {
+ // If the ORB's delegate class does not implement
+ // "Object get_interface_def(..)", this will call
+ // get_interface_def(..) on portable.Delegate.
+ return delegate.get_interface_def(this);
+ }
+ catch( org.omg.CORBA.NO_IMPLEMENT ex ) {
+ // Call "InterfaceDef get_interface(..)" method using reflection.
+ try {
+ Class[] argc = { org.omg.CORBA.Object.class };
+ java.lang.reflect.Method meth =
+ delegate.getClass().getMethod("get_interface", argc);
+ Object[] argx = { this };
+ return (org.omg.CORBA.Object)meth.invoke(delegate, argx);
+ }
+ catch( java.lang.reflect.InvocationTargetException exs ) {
+ Throwable t = exs.getTargetException();
+ if (t instanceof Error) {
+ throw (Error) t;
+ }
+ else if (t instanceof RuntimeException) {
+ throw (RuntimeException) t;
+ }
+ else {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ } catch( RuntimeException rex ) {
+ throw rex;
+ } catch( Exception exr ) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ }
+ }
+
+ /**
+ * Returns a reference to the ORB associated with this object and
+ * its delegate. This is the <code>ORB</code> object that created
+ * the delegate.
+ *
+ * @return the <code>ORB</code> instance that created the
+ * <code>Delegate</code> object contained in this
+ * <code>ObjectImpl</code> object
+ */
+ public org.omg.CORBA.ORB _orb() {
+ return _get_delegate().orb(this);
+ }
+
+
+ /**
+ * Retrieves the <code>Policy</code> object for this
+ * <code>ObjectImpl</code> object that has the given
+ * policy type.
+ *
+ * @param policy_type an int indicating the policy type
+ * @return the <code>Policy</code> object that is the specified policy type
+ * and that applies to this <code>ObjectImpl</code> object
+ * @see org.omg.CORBA.PolicyOperations#policy_type
+ */
+ public org.omg.CORBA.Policy _get_policy(int policy_type) {
+ return _get_delegate().get_policy(this, policy_type);
+ }
+
+ /**
+ * Retrieves a list of the domain managers for this
+ * <code>ObjectImpl</code> object.
+ *
+ * @return an array containing the <code>DomainManager</code>
+ * objects for this instance of <code>ObjectImpl</code>
+ */
+ public org.omg.CORBA.DomainManager[] _get_domain_managers() {
+ return _get_delegate().get_domain_managers(this);
+ }
+
+ /**
+ * Sets this <code>ObjectImpl</code> object's override type for
+ * the given policies to the given instance of
+ * <code>SetOverrideType</code>.
+ *
+ * @param policies an array of <code>Policy</code> objects with the
+ * policies that will replace the current policies or be
+ * added to the current policies
+ * @param set_add either <code>SetOverrideType.SET_OVERRIDE</code>,
+ * indicating that the given policies will replace any existing
+ * ones, or <code>SetOverrideType.ADD_OVERRIDE</code>, indicating
+ * that the given policies should be added to any existing ones
+ * @return an <code>Object</code> with the given policies replacing or
+ * added to its previous policies
+ */
+ public org.omg.CORBA.Object
+ _set_policy_override(org.omg.CORBA.Policy[] policies,
+ org.omg.CORBA.SetOverrideType set_add) {
+ return _get_delegate().set_policy_override(this, policies,
+ set_add);
+ }
+
+ /**
+ * Checks whether this <code>ObjectImpl</code> object is implemented
+ * by a local servant. If so, local invocation API's may be used.
+ *
+ * @return <code>true</code> if this object is implemented by a local
+ * servant; <code>false</code> otherwise
+ */
+ public boolean _is_local() {
+ return _get_delegate().is_local(this);
+ }
+
+ /**
+ * Returns a Java reference to the local servant that should be used for sending
+ * a request for the method specified. If this <code>ObjectImpl</code>
+ * object is a local stub, it will invoke the <code>_servant_preinvoke</code>
+ * method before sending a request in order to obtain the
+ * <code>ServantObject</code> instance to use.
+ * <P>
+ * If a <code>ServantObject</code> object is returned, its <code>servant</code>
+ * field has been set to an object of the expected type (Note: the object may
+ * or may not be the actual servant instance). The local stub may cast
+ * the servant field to the expected type, and then invoke the operation
+ * directly. The <code>ServantRequest</code> object is valid for only one
+ * invocation and cannot be used for more than one invocation.
+ *
+ * @param operation a <code>String</code> containing the name of the method
+ * to be invoked. This name should correspond to the method name as
+ * it would be encoded in a GIOP request.
+ *
+ * @param expectedType a <code>Class</code> object representing the
+ * expected type of the servant that is returned. This expected
+ * type is the <code>Class</code> object associated with the
+ * operations class for the stub's interface. For example, a
+ * stub for an interface <code>Foo</code> would pass the
+ * <code>Class</code> object for the <code>FooOperations</code>
+ * interface.
+ *
+ * @return (1) a <code>ServantObject</code> object, which may or may
+ * not be the actual servant instance, or (2) <code>null</code> if
+ * (a) the servant is not local or (b) the servant has ceased to
+ * be local due to a ForwardRequest from a POA ServantManager
+ * @throws org.omg.CORBA.BAD_PARAM if the servant is not the expected type
+ */
+ public ServantObject _servant_preinvoke(String operation,
+ Class expectedType) {
+ return _get_delegate().servant_preinvoke(this, operation,
+ expectedType);
+ }
+
+ /**
+ * Is called by the local stub after it has invoked an operation
+ * on the local servant that was previously retrieved from a
+ * call to the method <code>_servant_preinvoke</code>.
+ * The <code>_servant_postinvoke</code> method must be called
+ * if the <code>_servant_preinvoke</code>
+ * method returned a non-null value, even if an exception was thrown
+ * by the method invoked by the servant. For this reason, the call
+ * to the method <code>_servant_postinvoke</code> should be placed
+ * in a Java <code>finally</code> clause.
+ *
+ * @param servant the instance of the <code>ServantObject</code>
+ * returned by the <code>_servant_preinvoke</code> method
+ */
+ public void _servant_postinvoke(ServantObject servant) {
+ _get_delegate().servant_postinvoke(this, servant);
+ }
+
+ /*
+ * The following methods were added by orbos/98-04-03: Java to IDL
+ * Mapping. These are used by RMI over IIOP.
+ */
+
+ /**
+ * Returns an <code>OutputStream</code> object to use for marshalling
+ * the arguments of the given method. This method is called by a stub,
+ * which must indicate if a response is expected, that is, whether or not
+ * the call is oneway.
+ *
+ * @param operation a String giving the name of the method.
+ * @param responseExpected a boolean -- <code>true</code> if the
+ * request is not one way, that is, a response is expected
+ * @return an <code>OutputStream</code> object for dispatching the request
+ */
+ public OutputStream _request(String operation,
+ boolean responseExpected) {
+ return _get_delegate().request(this, operation, responseExpected);
+ }
+
+ /**
+ * Invokes an operation and returns an <code>InputStream</code>
+ * object for reading the response. The stub provides the
+ * <code>OutputStream</code> object that was previously returned by a
+ * call to the <code>_request</code> method. The method specified
+ * as an argument to <code>_request</code> when it was
+ * called previously is the method that this method invokes.
+ * <P>
+ * If an exception occurs, the <code>_invoke</code> method may throw an
+ * <code>ApplicationException</code> object that contains an InputStream from
+ * which the user exception state may be unmarshalled.
+ *
+ * @param output an OutputStream object for dispatching the request
+ * @return an <code>InputStream</code> object containing the marshalled
+ * response to the method invoked
+ * @throws ApplicationException if the invocation
+ * meets application-defined exception
+ * @throws RemarshalException if the invocation leads
+ * to a remarshalling error
+ * @see #_request
+ */
+ public InputStream _invoke(OutputStream output)
+ throws ApplicationException, RemarshalException {
+ return _get_delegate().invoke(this, output);
+ }
+
+ /**
+ * Releases the given
+ * reply stream back to the ORB when unmarshalling has
+ * completed after a call to the method <code>_invoke</code>.
+ * Calling this method is optional for the stub.
+ *
+ * @param input the <code>InputStream</code> object that was returned
+ * by the <code>_invoke</code> method or the
+ * <code>ApplicationException.getInputStream</code> method;
+ * may be <code>null</code>, in which case this method does
+ * nothing
+ * @see #_invoke
+ */
+ public void _releaseReply(InputStream input) {
+ _get_delegate().releaseReply(this, input);
+ }
+
+ /**
+ * Returns a <code>String</code> object that represents this
+ * <code>ObjectImpl</code> object.
+ *
+ * @return the <code>String</code> representation of this object
+ */
+ public String toString() {
+ if ( __delegate != null )
+ return __delegate.toString(this);
+ else
+ return getClass().getName() + ": no delegate set";
+ }
+
+ /**
+ * Returns the hash code for this <code>ObjectImpl</code> object.
+ *
+ * @return the hash code for this object
+ */
+ public int hashCode() {
+ if ( __delegate != null )
+ return __delegate.hashCode(this);
+ else
+ return super.hashCode();
+ }
+
+ /**
+ * Compares this <code>ObjectImpl</code> object with the given one
+ * for equality.
+ *
+ *@param obj the object with which to compare this object
+ *@return <code>true</code> if the two objects are equal;
+ * <code>false</code> otherwise
+ */
+ public boolean equals(java.lang.Object obj) {
+ if ( __delegate != null )
+ return __delegate.equals(this, obj);
+ else
+ return (this==obj);
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java
new file mode 100644
index 0000000..9dab5ae
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java
@@ -0,0 +1,287 @@
+/*
+ * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.TypeCode;
+import org.omg.CORBA.Principal;
+import org.omg.CORBA.Any;
+
+/**
+ * OuputStream is the Java API for writing IDL types
+ * to CDR marshal streams. These methods are used by the ORB to
+ * marshal IDL types as well as to insert IDL types into Anys.
+ * The <code>_array</code> versions of the methods can be directly
+ * used to write sequences and arrays of IDL types.
+ *
+ * @since JDK1.2
+ */
+
+
+public abstract class OutputStream extends java.io.OutputStream
+{
+ /**
+ * Returns an input stream with the same buffer.
+ *@return an input stream with the same buffer.
+ */
+ public abstract InputStream create_input_stream();
+
+ /**
+ * Writes a boolean value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_boolean(boolean value);
+ /**
+ * Writes a char value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_char(char value);
+ /**
+ * Writes a wide char value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_wchar(char value);
+ /**
+ * Writes a CORBA octet (i.e. byte) value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_octet(byte value);
+ /**
+ * Writes a short value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_short(short value);
+ /**
+ * Writes an unsigned short value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_ushort(short value);
+ /**
+ * Writes a CORBA long (i.e. Java int) value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_long(int value);
+ /**
+ * Writes an unsigned CORBA long (i.e. Java int) value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_ulong(int value);
+ /**
+ * Writes a CORBA longlong (i.e. Java long) value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_longlong(long value);
+ /**
+ * Writes an unsigned CORBA longlong (i.e. Java long) value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_ulonglong(long value);
+ /**
+ * Writes a float value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_float(float value);
+ /**
+ * Writes a double value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_double(double value);
+ /**
+ * Writes a string value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_string(String value);
+ /**
+ * Writes a wide string value to this stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_wstring(String value);
+
+ /**
+ * Writes an array of booleans on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_boolean_array(boolean[] value, int offset,
+ int length);
+ /**
+ * Writes an array of chars on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_char_array(char[] value, int offset,
+ int length);
+ /**
+ * Writes an array of wide chars on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_wchar_array(char[] value, int offset,
+ int length);
+ /**
+ * Writes an array of CORBA octets (bytes) on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_octet_array(byte[] value, int offset,
+ int length);
+ /**
+ * Writes an array of shorts on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_short_array(short[] value, int offset,
+ int length);
+ /**
+ * Writes an array of unsigned shorts on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_ushort_array(short[] value, int offset,
+ int length);
+ /**
+ * Writes an array of CORBA longs (i.e. Java ints) on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_long_array(int[] value, int offset,
+ int length);
+ /**
+ * Writes an array of unsigned CORBA longs (i.e. Java ints) on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_ulong_array(int[] value, int offset,
+ int length);
+ /**
+ * Writes an array of CORBA longlongs (i.e. Java longs) on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_longlong_array(long[] value, int offset,
+ int length);
+ /**
+ * Writes an array of unsigned CORBA longlongs (i.e. Java ints) on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_ulonglong_array(long[] value, int offset,
+ int length);
+ /**
+ * Writes an array of floats on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_float_array(float[] value, int offset,
+ int length);
+ /**
+ * Writes an array of doubles on this output stream.
+ * @param value the array to be written.
+ * @param offset offset on the stream.
+ * @param length length of buffer to write.
+ */
+ public abstract void write_double_array(double[] value, int offset,
+ int length);
+ /**
+ * Writes a CORBA Object on this output stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_Object(org.omg.CORBA.Object value);
+ /**
+ * Writes a TypeCode on this output stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_TypeCode(TypeCode value);
+ /**
+ * Writes an Any on this output stream.
+ * @param value the value to be written.
+ */
+ public abstract void write_any(Any value);
+
+ /**
+ * Writes a Principle on this output stream.
+ * @param value the value to be written.
+ * @deprecated Deprecated by CORBA 2.2.
+ */
+ @Deprecated
+ public void write_Principal(Principal value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Writes an integer (length of arrays) onto this stream.
+ * @param b the value to be written.
+ * @throws java.io.IOException if there is an input/output error
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public void write(int b) throws java.io.IOException {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Writes a BigDecimal number.
+ * @param value a BidDecimal--value to be written.
+ */
+ public void write_fixed(java.math.BigDecimal value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Writes a CORBA context on this stream. The
+ * Context is marshaled as a sequence of strings.
+ * Only those Context values specified in the contexts
+ * parameter are actually written.
+ * @param ctx a CORBA context
+ * @param contexts a <code>ContextList</code> object containing the list of contexts
+ * to be written
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public void write_Context(org.omg.CORBA.Context ctx,
+ org.omg.CORBA.ContextList contexts) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Returns the ORB that created this OutputStream.
+ * @return the ORB that created this OutputStream
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ public org.omg.CORBA.ORB orb() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java
new file mode 100644
index 0000000..b0a6800
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+/**
+This class is used for reporting locate forward exceptions and object forward
+GIOP messages back to the ORB. In this case the ORB must remarshal the request
+before trying again.
+Stubs which use the stream-based model shall catch the <code>RemarshalException</code>
+which is potentially thrown from the <code>_invoke()</code> method of <code>ObjectImpl</code>.
+Upon catching the exception, the stub shall immediately remarshal the request by calling
+<code>_request()</code>, marshalling the arguments (if any), and then calling
+<code>_invoke()</code>. The stub shall repeat this process until <code>_invoke()</code>
+returns normally or raises some exception other than <code>RemarshalException</code>.
+*/
+
+public final class RemarshalException extends Exception {
+ /**
+ * Constructs a RemarshalException.
+ */
+ public RemarshalException() {
+ super();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java
new file mode 100644
index 0000000..09a73cd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+/**
+This interface is supplied by an ORB to a servant at invocation time and allows
+the servant to later retrieve an OutputStream for returning the invocation results.
+*/
+
+public interface ResponseHandler {
+ /**
+ * Called by the servant during a method invocation. The servant
+ * should call this method to create a reply marshal buffer if no
+ * exception occurred.
+ *
+ * @return an OutputStream suitable for marshalling the reply.
+ *
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ OutputStream createReply();
+
+ /**
+ * Called by the servant during a method invocation. The servant
+ * should call this method to create a reply marshal buffer if a
+ * user exception occurred.
+ *
+ * @return an OutputStream suitable for marshalling the exception
+ * ID and the user exception body.
+ */
+ OutputStream createExceptionReply();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java
new file mode 100644
index 0000000..2735927
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.portable;
+
+/**
+ This class is part of the local stub API, the purpose of which is to provide
+ high performance calls for collocated clients and servers
+ (i.e. clients and servers residing in the same Java VM).
+ The local stub API is supported via three additional methods on
+ <code>ObjectImpl</code> and <code>Delegate</code>.
+ ORB vendors may subclass this class to return additional
+ request state that may be required by their implementations.
+ @see ObjectImpl
+ @see Delegate
+*/
+
+public class ServantObject
+{
+ /** The real servant. The local stub may cast this field to the expected type, and then
+ * invoke the operation directly. Note, the object may or may not be the actual servant
+ * instance.
+ */
+ public java.lang.Object servant;
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java b/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java
new file mode 100644
index 0000000..45f29e0
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.CORBA.portable;
+
+import org.omg.CORBA.TypeCode;
+
+/**
+ * The base class for the Holder classess of all complex
+ * IDL types. The ORB treats all generated Holders as Streamable to invoke
+ * the methods for marshalling and unmarshalling.
+ *
+ * @since JDK1.2
+ */
+
+public interface Streamable {
+ /**
+ * Reads data from <code>istream</code> and initalizes the
+ * <code>value</code> field of the Holder with the unmarshalled data.
+ *
+ * @param istream the InputStream that represents the CDR data from the wire.
+ */
+ void _read(InputStream istream);
+ /**
+ * Marshals to <code>ostream</code> the value in the
+ * <code>value</code> field of the Holder.
+ *
+ * @param ostream the CDR OutputStream
+ */
+ void _write(OutputStream ostream);
+
+ /**
+ * Retrieves the <code>TypeCode</code> object corresponding to the value
+ * in the <code>value</code> field of the Holder.
+ *
+ * @return the <code>TypeCode</code> object for the value held in the holder
+ */
+ TypeCode _type();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java b/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java
new file mode 100644
index 0000000..7155eed
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package org.omg.CORBA.portable;
+
+/**
+ * Defines the base type for all non-boxed IDL valuetypes
+ * that are not custom marshaled.
+ *
+ * All value types implement ValueBase either directly or
+ * indirectly by implementing either the
+ * StreamableValue or CustomValue interface.
+ *
+ * @author OMG
+ */
+public interface StreamableValue extends Streamable, ValueBase {
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java
new file mode 100644
index 0000000..725ca7c
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA.portable;
+/**
+ * The org.omg.CORBA.portable.UnknownException is used for reporting
+ * unknown exceptions between ties and ORBs and between ORBs and stubs.
+ * It provides a Java representation of an UNKNOWN system exception
+ * that has an UnknownExceptionInfo service context.
+ * If the CORBA system exception org.omg.CORBA.portable.UnknownException
+ * is thrown, then the stub does one of the following:
+ * (1) Translates it to org.omg.CORBA.UNKNOWN.
+ * (2) Translates it to the nested exception that the UnknownException contains.
+ * (3) Passes it on directly to the user.
+ */
+public class UnknownException extends org.omg.CORBA.SystemException {
+ /**
+ * A throwable--the original exception that was wrapped in a CORBA
+ * UnknownException.
+ */
+ public Throwable originalEx;
+ /**
+ * Constructs an UnknownException object.
+ * @param ex a Throwable object--to be wrapped in this exception.
+ */
+ public UnknownException(Throwable ex) {
+ super("", 0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
+ originalEx = ex;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java
new file mode 100644
index 0000000..926e728
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA.portable;
+/**
+ * The generated Java classes corresponding to valuetype IDL types
+ * implement this interface. In other words, the Java mapping of
+ * valuetype objects implement the ValueBase interface. The generated
+ * Java class for valuetype's shall provide an implementation of the
+ * ValueBase interface for the corresponding value type.
+ * For value types that are streamable (i.e. non-custom),
+ * the generated Java class shall also provide an implementation
+ * for the org.omg.CORBA.portable.Streamable interface.
+ * (CORBA::ValueBase is mapped to java.io.Serializable.)
+ */
+public interface ValueBase extends IDLEntity {
+ /**
+ * Provides truncatable repository ids.
+ * @return a String array--list of truncatable repository ids.
+ */
+ String[] _truncatable_ids();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java
new file mode 100644
index 0000000..355104b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA.portable;
+import java.io.Serializable;
+
+/**
+ * The ValueFactory interface is the native mapping for the IDL
+ * type CORBA::ValueFactory. The read_value() method is called by
+ * the ORB runtime while in the process of unmarshaling a value type.
+ * A user shall implement this method as part of implementing a type
+ * specific value factory. In the implementation, the user shall call
+ * is.read_value(java.io.Serializable) with a uninitialized valuetype
+ * to use for unmarshaling. The value returned by the stream is
+ * the same value passed in, with all the data unmarshaled.
+ * @see org.omg.CORBA_2_3.ORB
+ */
+
+public interface ValueFactory {
+ /**
+ * Is called by
+ * the ORB runtime while in the process of unmarshaling a value type.
+ * A user shall implement this method as part of implementing a type
+ * specific value factory.
+ * @param is an InputStream object--from which the value will be read.
+ * @return a Serializable object--the value read off of "is" Input stream.
+ */
+ Serializable read_value(org.omg.CORBA_2_3.portable.InputStream is);
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java
new file mode 100644
index 0000000..9ce5169
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.portable;
+
+/**
+ * Java to IDL ptc 02-01-12 1.5.1.4
+ *
+ * ValueInputStream is used for implementing RMI-IIOP
+ * stream format version 2.
+ */
+public interface ValueInputStream {
+
+ /**
+ * The start_value method reads a valuetype
+ * header for a nested custom valuetype and
+ * increments the valuetype nesting depth.
+ */
+ void start_value();
+
+ /**
+ * The end_value method reads the end tag
+ * for the nested custom valuetype (after
+ * skipping any data that precedes the end
+ * tag) and decrements the valuetype nesting
+ * depth.
+ */
+ void end_value();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java
new file mode 100644
index 0000000..3d6e0bd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.CORBA.portable;
+
+/**
+ * Java to IDL ptc 02-01-12 1.5.1.3
+ *
+ * ValueOutputStream is used for implementing RMI-IIOP
+ * stream format version 2.
+ */
+public interface ValueOutputStream {
+ /**
+ * The start_value method ends any currently open chunk,
+ * writes a valuetype header for a nested custom valuetype
+ * (with a null codebase and the specified repository ID),
+ * and increments the valuetype nesting depth.
+ */
+ void start_value(java.lang.String rep_id);
+
+ /**
+ * The end_value method ends any currently open chunk,
+ * writes the end tag for the nested custom valuetype,
+ * and decrements the valuetype nesting depth.
+ */
+ void end_value();
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/package.html b/src/java.corba/share/classes/org/omg/CORBA/portable/package.html
new file mode 100644
index 0000000..e0f5cbb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA/portable/package.html
@@ -0,0 +1,96 @@
+<!doctype html>
+<html>
+<head>
+<!--
+Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+-->
+</head>
+<body>
+
+Provides a portability layer, that is, a set of ORB APIs
+that makes it possible for code generated
+by one vendor to run on another vendor's ORB.
+Stubs and other code, generated either from IDL or
+interfaces written in the Java programming language,
+can call into these ORB APIs.
+
+
+
+<p>
+<a id="unimpl"></a>
+<hr>
+<h1>CORBA Features Throwing NO_IMPLEMENT() Exceptions</h1>
+<hr>
+Some methods throw NO_IMPLEMENT() exceptions by default, but ORB vendors
+can override them to provide real implementations. The ORB included in
+Sun's release of the Java[tm] Platform, Standard Edition 6, includes
+implementations for the following methods.
+
+<h2>List of Unimplemented Features in Package
+<code>org.omg.CORBA.portable</code></h2>
+
+<h3>Unimplemented Interfaces in package <code>org.omg.CORBA.portable</code></h3>
+ <ul>
+ <li><code>InvokeHandler</code>
+ <li><code>ResponseHandler</code>
+ </ul>
+
+<h3>Unimplemented Methods in package <code>org.omg.CORBA.portable</code></h3>
+<ul>
+<li><code>InputStream</code>
+ <ul>
+ <li><code>public int read()</code>
+ <li><code>public.math.BigDecimal read_fixed()</code>
+ <li><code>public org.omg.CORBA.Context read_Context()</code>
+ <li><code>public org.omg.CORBA.Object read_Object(java.lang.Class clz)</code>
+ <li><code>public org.omg.CORBA.ORB orb()</code>
+ </ul>
+<li><code>OutputStream</code>
+ <ul>
+ <li><code>public org.omg.CORBA.ORB orb()</code>
+ <li><code>public void write_Context(org.omg.CORBA.Context ctx,
+ org.omg.CORBA.ContextList contexts)</code>
+ <li><code>public void write_fixed(java.math.BigDecimal value)</code>
+ <li><code>public void write(int b)</code>
+ </ul>
+<li><code>Delegate</code>
+ <ul>
+ <li><code>public void releaseReply(org.omg.CORBA.Object self, InputStream input)</code>
+ <li><code>public InputStream invoke(org.omgl.CORBA.Object self, OutputStream output)</code>
+ <li><code>public OutputStream request(org.omg.CORBA.Object self, String operation,
+ boolean responseExpected)</code>
+ <li><code>public org.omg.CORBA.Object set_policy_override(org.omg.CORBA.Object self,
+ org.omg.CORBA.Policy[] policies,
+ org.omg.CORBA.SetOverrideType set_add)</code>
+ <li><code>public org.omg.CORBA.DomainManager[] get_domain_managers(
+ org.omg.CORBA.Objectself)</code>
+ <li><code>public org.omg.CORBA.Policy get_policy(org.omg.CORBA.Object self,
+ int policy_type)</code>
+ </ul>
+</ul>
+
+@since JDK1.2
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java
new file mode 100644
index 0000000..fc203c3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA_2_3;
+
+/**
+ * A class extending <code>org.omg.CORBA.ORB</code> to make the ORB
+ * portable under the OMG CORBA version 2.3 specification.
+ */
+public abstract class ORB extends org.omg.CORBA.ORB {
+
+/**
+ *
+ */
+ public org.omg.CORBA.portable.ValueFactory register_value_factory(String id,
+ org.omg.CORBA.portable.ValueFactory factory)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+/**
+ *
+ */
+ public void unregister_value_factory(String id)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+/**
+ *
+ */
+ public org.omg.CORBA.portable.ValueFactory lookup_value_factory(String id)
+ {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+/**
+ * @see <a href="package-summary.html#unimpl"><code>CORBA_2_3</code> package
+ * comments for unimplemented features</a>
+ */
+ // always return a ValueDef or throw BAD_PARAM if
+ // <em>repid</em> does not represent a valuetype
+ public org.omg.CORBA.Object get_value_def(String repid)
+ throws org.omg.CORBA.BAD_PARAM {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+/**
+ * @see <a href="package-summary.html#unimpl"><code>CORBA_2_3</code> package
+ * comments for unimplemented features</a>
+ */
+ public void set_delegate(java.lang.Object wrapper) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html b/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html
new file mode 100644
index 0000000..7a82edb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html
@@ -0,0 +1,67 @@
+<!doctype html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
+ <title>package</title>
+<!--
+/*
+* Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+</head>
+<body>
+The CORBA_2_3 package defines additions to existing CORBA interfaces
+in the Java[tm] Standard Edition 6.&nbsp;&nbsp; These changes occurred in recent
+revisions to the CORBA API defined by the OMG.&nbsp; The new methods were
+added to&nbsp; interfaces derived from the corresponding interfaces in
+the CORBA package.&nbsp; This provides backward compatibility and avoids
+breaking the JCK tests.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6, ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+<P>
+<a id="unimpl"></a>
+The following methods in the abstract class
+<code>org.omg.CORBA_2_3.ORB</code> are unimplemented:
+<UL>
+ <LI><code>public org.omg.CORBA.portable.ValueFactory
+ <b>register_value_factory(String id, org.omg.CORBA.portable.ValueFactory
+ factory)</b></code>
+ <LI><code>public void <b>unregister_value_factory(String id)</b></code>
+ <LI><code>public org.omg.CORBA.portable.ValueFactory
+ <b>lookup_value_factory(String id)</b></code>
+ <LI><code>public org.omg.CORBA.Object <b>get_value_def(String repid)</b></code>
+ <LI><code>public void <b>set_delegate(java.lang.Object wrapper)</b></code>
+</UL>
+@since JDK 1.3
+<br>
+@serial exclude
+
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java
new file mode 100644
index 0000000..a158ae9
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA_2_3.portable;
+
+/**
+ * Delegate class provides the ORB vendor specific implementation
+ * of CORBA object. It extends org.omg.CORBA.portable.Delegate and
+ * provides new methods that were defined by CORBA 2.3.
+ *
+ * @see org.omg.CORBA.portable.Delegate
+ * @author OMG
+ * @since JDK1.2
+ */
+
+public abstract class Delegate extends org.omg.CORBA.portable.Delegate {
+
+ /** Returns the codebase for object reference provided.
+ * @param self the object reference whose codebase needs to be returned.
+ * @return the codebase as a space delimited list of url strings or
+ * null if none.
+ */
+ public java.lang.String get_codebase(org.omg.CORBA.Object self) {
+ return null;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
new file mode 100644
index 0000000..1913538
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA_2_3.portable;
+
+import java.io.SerializablePermission;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * InputStream provides for the reading of all of the mapped IDL types
+ * from the stream. It extends org.omg.CORBA.portable.InputStream. This
+ * class defines new methods that were added for CORBA 2.3.
+ *
+ * @see org.omg.CORBA.portable.InputStream
+ * @author OMG
+ * @since JDK1.2
+ */
+
+public abstract class InputStream extends org.omg.CORBA.portable.InputStream {
+
+
+ private static final String ALLOW_SUBCLASS_PROP = "jdk.corba.allowInputStreamSubclass";
+
+ private static final boolean allowSubclass = AccessController.doPrivileged(
+ new PrivilegedAction<Boolean>() {
+ @Override
+ public Boolean run() {
+ String prop = System.getProperty(ALLOW_SUBCLASS_PROP);
+ return prop == null ? false :
+ (prop.equalsIgnoreCase("false") ? false : true);
+ }
+ });
+
+ private static Void checkPermission() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ if (!allowSubclass)
+ sm.checkPermission(new
+ SerializablePermission("enableSubclassImplementation"));
+ }
+ return null;
+ }
+
+ private InputStream(Void ignore) { }
+
+ /**
+ * Create a new instance of this class.
+ *
+ * @implNote
+ * Throws SecurityException if SecurityManager is installed and
+ * enableSubclassImplementation SerializablePermission
+ * is not granted or jdk.corba.allowInputStreamSubclass system
+ * property is either not set or is set to 'false'.
+ */
+ public InputStream() {
+ this(checkPermission());
+ }
+
+ /**
+ * Unmarshalls a value type from the input stream.
+ * @return the value type unmarshalled from the input stream
+ */
+ public java.io.Serializable read_value() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshalls a value type from the input stream.
+ * @param clz is the declared type of the value to be unmarshalled
+ * @return the value unmarshalled from the input stream
+ */
+ public java.io.Serializable read_value(java.lang.Class clz) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshalls a value type from the input stream.
+ * @param factory is the instance fo the helper to be used for
+ * unmarshalling the value type
+ * @return the value unmarshalled from the input stream
+ */
+ public java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshalls a value type from the input stream.
+ * @param rep_id identifies the type of the value to be unmarshalled
+ * @return value type unmarshalled from the input stream
+ */
+ public java.io.Serializable read_value(java.lang.String rep_id) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshalls a value type from the input stream.
+ * @param value is an uninitialized value which is added to the orb's
+ * indirection table before calling Streamable._read() or
+ * CustomMarshal.unmarshal() to unmarshal the value.
+ * @return value type unmarshalled from the input stream
+ */
+ public java.io.Serializable read_value(java.io.Serializable value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshal the value object or a suitable stub object.
+ * @return ORB runtime returns the value object or a suitable stub object.
+ */
+ public java.lang.Object read_abstract_interface() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Unmarshal the class object or the stub class corresponding to the passed type.
+ * @param clz is the Class object for the stub class which corresponds to
+ * the type that is statically expected.
+ * @return ORB runtime returns the value object or a suitable stub object.
+ */
+ public java.lang.Object read_abstract_interface(java.lang.Class clz) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java
new file mode 100644
index 0000000..6fbfabe
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA_2_3.portable;
+
+import org.omg.CORBA_2_3.portable.Delegate;
+
+/**
+ * ObjectImpl class is the base class for all stubs. It provides the
+ * basic delegation mechanism. It extends org.omg.CORBA.portable.ObjectImpl
+ * and provides new methods defined by CORBA 2.3.
+ *
+ * @see org.omg.CORBA.portable.ObjectImpl
+ * @author OMG
+ * @since JDK1.2
+ */
+
+
+public abstract class ObjectImpl extends org.omg.CORBA.portable.ObjectImpl {
+
+ /** Returns the codebase for this object reference.
+ * @return the codebase as a space delimited list of url strings or
+ * null if none.
+ */
+ public java.lang.String _get_codebase() {
+ org.omg.CORBA.portable.Delegate delegate = _get_delegate();
+ if (delegate instanceof Delegate)
+ return ((Delegate) delegate).get_codebase(this);
+ return null;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java
new file mode 100644
index 0000000..00955b3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.CORBA_2_3.portable;
+
+import java.io.SerializablePermission;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * OutputStream provides interface for writing of all of the mapped IDL type
+ * to the stream. It extends org.omg.CORBA.portable.OutputStream, and defines
+ * new methods defined by CORBA 2.3.
+ *
+ * @see org.omg.CORBA.portable.OutputStream
+ * @author OMG
+ * @since JDK1.2
+ */
+
+public abstract class OutputStream extends org.omg.CORBA.portable.OutputStream {
+
+ private static final String ALLOW_SUBCLASS_PROP = "jdk.corba.allowOutputStreamSubclass";
+ private static final boolean allowSubclass = AccessController.doPrivileged(
+ new PrivilegedAction<Boolean>() {
+ @Override
+ public Boolean run() {
+ String prop = System.getProperty(ALLOW_SUBCLASS_PROP);
+ return prop == null ? false :
+ (prop.equalsIgnoreCase("false") ? false : true);
+ }
+ });
+
+ private static Void checkPermission() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ if (!allowSubclass)
+ sm.checkPermission(new
+ SerializablePermission("enableSubclassImplementation"));
+ }
+ return null;
+ }
+ private OutputStream(Void ignore) { }
+
+ /**
+ * Create a new instance of this class.
+ *
+ * @implNote
+ * Throws SecurityException if SecurityManager is installed and
+ * enableSubclassImplementation SerializablePermission
+ * is not granted or jdk.corba.allowOutputStreamSubclass system
+ * property is either not set or is set to 'false'.
+ */
+ public OutputStream() {
+ this(checkPermission());
+ }
+
+ /**
+ * Marshals a value type to the output stream.
+ * @param value is the acutal value to write
+ */
+ public void write_value(java.io.Serializable value) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Marshals a value type to the output stream.
+ * @param value is the acutal value to write
+ * @param clz is the declared type of the value to be marshaled
+ */
+ public void write_value(java.io.Serializable value, java.lang.Class clz) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Marshals a value type to the output stream.
+ * @param value is the acutal value to write
+ * @param repository_id identifies the type of the value type to
+ * be marshaled
+ */
+ public void write_value(java.io.Serializable value, String repository_id) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Marshals a value type to the output stream.
+ * @param value is the acutal value to write
+ * @param factory is the instance of the helper to be used for marshaling
+ * the boxed value
+ */
+ public void write_value(java.io.Serializable value, org.omg.CORBA.portable.BoxedValueHelper factory) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ /**
+ * Marshals a value object or a stub object.
+ * @param obj the actual value object to marshal or the stub to be marshalled
+ */
+ public void write_abstract_interface(java.lang.Object obj) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html
new file mode 100644
index 0000000..6b3f430
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+
+</head>
+<body bgcolor="white">
+
+ Provides methods for the input and output of value types, and contains
+ other updates to the <code>org/omg/CORBA/portable</code> package.
+
+@since 1.3
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html
new file mode 100644
index 0000000..9636d1d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the following classes, which are used in
+<code>org.omg.CosNaming.NamingContextExt</code>:
+<UL>
+ <LI><code>AddressHelper</code>
+ <LI><code>StringNameHelper</code>
+ <LI><code>URLStringHelper</code>
+ <LI><code>InvalidAddress</code>
+</UL>
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html
new file mode 100644
index 0000000..b97eafd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains Exception classes for the <code>org.omg.CosNaming</code>
+ package. The list of exception classes are:
+ <UL>
+ <LI><code>AlreadyBound</code>
+ <LI><code>CannotProceed</code>
+ <LI><code>InvalidName</code>
+ <LI><code>NotEmpty</code>
+ <LI><code>NotFound</code>
+ <LI><code>NotFoundReason</code>
+ </UL>
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java b/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java
new file mode 100644
index 0000000..9b43349
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CosNaming/_BindingIteratorImplBase.java
+ * From: nameservice.idl
+ * Date: Tue Aug 11 03:12:09 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ * @deprecated Deprecated in JDK 1.4.
+ */
+
+package org.omg.CosNaming;
+public abstract class _BindingIteratorImplBase extends org.omg.CORBA.DynamicImplementation implements org.omg.CosNaming.BindingIterator {
+ // Constructor
+ public _BindingIteratorImplBase() {
+ super();
+ }
+ // Type strings for this class and its superclases
+ private static final String _type_ids[] = {
+ "IDL:omg.org/CosNaming/BindingIterator:1.0"
+ };
+
+ public String[] _ids() { return (String[]) _type_ids.clone(); }
+
+ private static java.util.Dictionary _methods = new java.util.Hashtable();
+ static {
+ _methods.put("next_one", new java.lang.Integer(0));
+ _methods.put("next_n", new java.lang.Integer(1));
+ _methods.put("destroy", new java.lang.Integer(2));
+ }
+ // DSI Dispatch call
+ public void invoke(org.omg.CORBA.ServerRequest r) {
+ switch (((java.lang.Integer) _methods.get(r.op_name())).intValue()) {
+ case 0: // org.omg.CosNaming.BindingIterator.next_one
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _b = _orb().create_any();
+ _b.type(org.omg.CosNaming.BindingHelper.type());
+ _list.add_value("b", _b, org.omg.CORBA.ARG_OUT.value);
+ r.params(_list);
+ org.omg.CosNaming.BindingHolder b;
+ b = new org.omg.CosNaming.BindingHolder();
+ boolean ___result;
+ ___result = this.next_one(b);
+ org.omg.CosNaming.BindingHelper.insert(_b, b.value);
+ org.omg.CORBA.Any __result = _orb().create_any();
+ __result.insert_boolean(___result);
+ r.result(__result);
+ }
+ break;
+ case 1: // org.omg.CosNaming.BindingIterator.next_n
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _how_many = _orb().create_any();
+ _how_many.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong));
+ _list.add_value("how_many", _how_many, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _bl = _orb().create_any();
+ _bl.type(org.omg.CosNaming.BindingListHelper.type());
+ _list.add_value("bl", _bl, org.omg.CORBA.ARG_OUT.value);
+ r.params(_list);
+ int how_many;
+ how_many = _how_many.extract_ulong();
+ org.omg.CosNaming.BindingListHolder bl;
+ bl = new org.omg.CosNaming.BindingListHolder();
+ boolean ___result;
+ ___result = this.next_n(how_many, bl);
+ org.omg.CosNaming.BindingListHelper.insert(_bl, bl.value);
+ org.omg.CORBA.Any __result = _orb().create_any();
+ __result.insert_boolean(___result);
+ r.result(__result);
+ }
+ break;
+ case 2: // org.omg.CosNaming.BindingIterator.destroy
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ r.params(_list);
+ this.destroy();
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ default:
+ throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
+ }
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java b/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java
new file mode 100644
index 0000000..ece23c2
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * File: ./org/omg/CosNaming/_NamingContextImplBase.java
+ * From: nameservice.idl
+ * Date: Tue Aug 11 03:12:09 1998
+ * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18
+ * @deprecated Deprecated in JDK 1.4.
+ */
+
+package org.omg.CosNaming;
+public abstract class _NamingContextImplBase extends org.omg.CORBA.DynamicImplementation implements org.omg.CosNaming.NamingContext {
+ // Constructor
+ public _NamingContextImplBase() {
+ super();
+ }
+ // Type strings for this class and its superclases
+ private static final String _type_ids[] = {
+ "IDL:omg.org/CosNaming/NamingContext:1.0"
+ };
+
+ public String[] _ids() { return (String[]) _type_ids.clone(); }
+
+ private static java.util.Dictionary _methods = new java.util.Hashtable();
+ static {
+ _methods.put("bind", new java.lang.Integer(0));
+ _methods.put("bind_context", new java.lang.Integer(1));
+ _methods.put("rebind", new java.lang.Integer(2));
+ _methods.put("rebind_context", new java.lang.Integer(3));
+ _methods.put("resolve", new java.lang.Integer(4));
+ _methods.put("unbind", new java.lang.Integer(5));
+ _methods.put("list", new java.lang.Integer(6));
+ _methods.put("new_context", new java.lang.Integer(7));
+ _methods.put("bind_new_context", new java.lang.Integer(8));
+ _methods.put("destroy", new java.lang.Integer(9));
+ }
+ // DSI Dispatch call
+ public void invoke(org.omg.CORBA.ServerRequest r) {
+ switch (((java.lang.Integer) _methods.get(r.op_name())).intValue()) {
+ case 0: // org.omg.CosNaming.NamingContext.bind
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _obj = _orb().create_any();
+ _obj.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_objref));
+ _list.add_value("obj", _obj, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CORBA.Object obj;
+ obj = _obj.extract_Object();
+ try {
+ this.bind(n, obj);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e3) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e3);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 1: // org.omg.CosNaming.NamingContext.bind_context
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _nc = _orb().create_any();
+ _nc.type(org.omg.CosNaming.NamingContextHelper.type());
+ _list.add_value("nc", _nc, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CosNaming.NamingContext nc;
+ nc = org.omg.CosNaming.NamingContextHelper.extract(_nc);
+ try {
+ this.bind_context(n, nc);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e3) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e3);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 2: // org.omg.CosNaming.NamingContext.rebind
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _obj = _orb().create_any();
+ _obj.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_objref));
+ _list.add_value("obj", _obj, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CORBA.Object obj;
+ obj = _obj.extract_Object();
+ try {
+ this.rebind(n, obj);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 3: // org.omg.CosNaming.NamingContext.rebind_context
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _nc = _orb().create_any();
+ _nc.type(org.omg.CosNaming.NamingContextHelper.type());
+ _list.add_value("nc", _nc, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CosNaming.NamingContext nc;
+ nc = org.omg.CosNaming.NamingContextHelper.extract(_nc);
+ try {
+ this.rebind_context(n, nc);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 4: // org.omg.CosNaming.NamingContext.resolve
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CORBA.Object ___result;
+ try {
+ ___result = this.resolve(n);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __result = _orb().create_any();
+ __result.insert_Object(___result);
+ r.result(__result);
+ }
+ break;
+ case 5: // org.omg.CosNaming.NamingContext.unbind
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ try {
+ this.unbind(n);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 6: // org.omg.CosNaming.NamingContext.list
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _how_many = _orb().create_any();
+ _how_many.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong));
+ _list.add_value("how_many", _how_many, org.omg.CORBA.ARG_IN.value);
+ org.omg.CORBA.Any _bl = _orb().create_any();
+ _bl.type(org.omg.CosNaming.BindingListHelper.type());
+ _list.add_value("bl", _bl, org.omg.CORBA.ARG_OUT.value);
+ org.omg.CORBA.Any _bi = _orb().create_any();
+ _bi.type(org.omg.CosNaming.BindingIteratorHelper.type());
+ _list.add_value("bi", _bi, org.omg.CORBA.ARG_OUT.value);
+ r.params(_list);
+ int how_many;
+ how_many = _how_many.extract_ulong();
+ org.omg.CosNaming.BindingListHolder bl;
+ bl = new org.omg.CosNaming.BindingListHolder();
+ org.omg.CosNaming.BindingIteratorHolder bi;
+ bi = new org.omg.CosNaming.BindingIteratorHolder();
+ this.list(how_many, bl, bi);
+ org.omg.CosNaming.BindingListHelper.insert(_bl, bl.value);
+ org.omg.CosNaming.BindingIteratorHelper.insert(_bi, bi.value);
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ case 7: // org.omg.CosNaming.NamingContext.new_context
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ r.params(_list);
+ org.omg.CosNaming.NamingContext ___result;
+ ___result = this.new_context();
+ org.omg.CORBA.Any __result = _orb().create_any();
+ org.omg.CosNaming.NamingContextHelper.insert(__result, ___result);
+ r.result(__result);
+ }
+ break;
+ case 8: // org.omg.CosNaming.NamingContext.bind_new_context
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ org.omg.CORBA.Any _n = _orb().create_any();
+ _n.type(org.omg.CosNaming.NameHelper.type());
+ _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value);
+ r.params(_list);
+ org.omg.CosNaming.NameComponent[] n;
+ n = org.omg.CosNaming.NameHelper.extract(_n);
+ org.omg.CosNaming.NamingContext ___result;
+ try {
+ ___result = this.bind_new_context(n);
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e1) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e1);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e2) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e2);
+ r.except(_except);
+ return;
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.InvalidName e3) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e3);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __result = _orb().create_any();
+ org.omg.CosNaming.NamingContextHelper.insert(__result, ___result);
+ r.result(__result);
+ }
+ break;
+ case 9: // org.omg.CosNaming.NamingContext.destroy
+ {
+ org.omg.CORBA.NVList _list = _orb().create_list(0);
+ r.params(_list);
+ try {
+ this.destroy();
+ }
+ catch (org.omg.CosNaming.NamingContextPackage.NotEmpty e0) {
+ org.omg.CORBA.Any _except = _orb().create_any();
+ org.omg.CosNaming.NamingContextPackage.NotEmptyHelper.insert(_except, e0);
+ r.except(_except);
+ return;
+ }
+ org.omg.CORBA.Any __return = _orb().create_any();
+ __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
+ r.result(__return);
+ }
+ break;
+ default:
+ throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
+ }
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl b/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl
new file mode 100644
index 0000000..ae276b0
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl
@@ -0,0 +1,509 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// name.idl - Naming service interface
+#pragma prefix "omg.org"
+
+
+/**
+ * The CORBA COS Naming Service provides the ability to bind a name
+ * to an object relative to a naming context. A naming context is an
+ * object that contains a set of name bindings in which each name is unique.
+ * To resolve a name is to determine the object associated with the name in
+ * a given context. <p>
+ *
+ * See http://www.omg.org/technology/documents/formal/naming_service.htm
+ * for the complete CORBA
+ * COS Naming Specification. <p>
+ */
+module CosNaming
+{
+ typedef string Istring;
+
+ /**
+ * Many of the operations defined on a naming context take names as
+ * parameters. Names have structure. A name is an ordered sequence of
+ * components. <p>
+ *
+ * A name with a single component is called a simple name; a name with
+ * multiple components is called a compound name. Each component except
+ * the last is used to name a context; the last component denotes the
+ * bound object. <p>
+ *
+ * A name component consists of two attributes: the identifier
+ * attribute and the kind attribute. Both the identifier attribute and the
+ * kind attribute are represented as IDL strings. The kind attribute adds
+ * descriptive power to names in a syntax-independent way. Examples of the
+ * value of the kind attribute include c_source, object_code, executable,
+ * postscript, or " ".
+ */
+ struct NameComponent
+ {
+ Istring id;
+ Istring kind;
+ };
+
+ /**
+ * A name is a sequence of name components.
+ */
+ typedef sequence <NameComponent> Name;
+
+ /**
+ * Specifies whether the given binding is for a object (that is not a
+ * naming context) or for a naming context.
+ */
+ enum BindingType
+ {
+ nobject, // name is bound to an object
+ ncontext // name is bound to a naming context
+ };
+
+ /**
+ * A name-to-object association is called a Binding.
+ */
+ struct Binding
+ {
+ Name binding_name; // name
+ BindingType binding_type; // whether name is bound to an object
+ // or a naming context
+ };
+
+ /**
+ * List of Bindings.
+ */
+ typedef sequence <Binding> BindingList;
+
+ /**
+ * The BindingIterator interface allows a client to iterate through
+ * the bindings using the next_one or next_n operations.
+ *
+ * The bindings iterator is obtained by using the <code>list</code>
+ * method on the <code>NamingContext</code>.
+ * @see org.omg.CosNaming.NamingContext#list
+ */
+ interface BindingIterator
+ {
+ /**
+ * This operation returns the next binding. If there are no more
+ * bindings, false is returned.
+ *
+ * @param b the returned binding
+ */
+ boolean next_one(out Binding b);
+
+ /**
+ * This operation returns at most the requested number of bindings.
+ *
+ * @param how_many the maximum number of bindings to return
+ *
+ * @param bl the returned bindings
+ */
+ boolean next_n(in unsigned long how_many,
+ out BindingList bl);
+
+ // Destroy binding iterator
+ /**
+ * This operation destroys the iterator.
+ */
+ void destroy();
+ };
+
+/**
+ * A naming context is an object that contains a set of name bindings in
+ * which each name is unique. Different names can be bound to an object
+ * in the same or different contexts at the same time. <p>
+ *
+ * See <a href="http://www.omg.org/technology/documents/formal/naming_service.htm">
+ * CORBA COS
+ * Naming Specification.</a>
+ */
+ interface NamingContext
+ {
+ // Declare exceptions
+ /**
+ * Indicates the reason for not able to resolve.
+ */
+ enum NotFoundReason
+ {
+ missing_node,
+ not_context,
+ not_object
+ };
+
+/**
+ * Indicates the name does not identify a binding.
+ */
+ exception NotFound
+ {
+ NotFoundReason why;
+ Name rest_of_name;
+ };
+
+/**
+ * Indicates that the implementation has given up for some reason.
+ * The client, however, may be able to continue the operation at the
+ * returned naming context.
+ */
+ exception CannotProceed
+ {
+ NamingContext cxt;
+ Name rest_of_name;
+ };
+
+/**
+ * Indicates the name is invalid.
+ */
+ exception InvalidName
+ {};
+
+/**
+ * Indicates an object is already bound to the specified name. Only
+ * one object can be bound to a particular name in a context.
+ */
+ exception AlreadyBound
+ {};
+
+/**
+ * Indicates that the Naming Context contains bindings.
+ */
+ exception NotEmpty
+ {};
+
+/**
+ * Creates a binding of a name and an object in the naming context.
+ * Naming contexts that are bound using bind do not participate in name
+ * resolution when compound names are passed to be resolved.
+ *
+ * @param n Name of the object.
+ *
+ * @param obj The Object to bind with the given name.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates
+ * the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed
+ * Indicates that the implementation has given up for some reason.
+ * The client, however, may be able to continue the operation
+ * at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName
+ * Indicates that the name is invalid.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound
+ * Indicates an object is already bound to the specified name.
+ */
+ void bind(in Name n,
+ in Object obj)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName,
+ AlreadyBound);
+
+/**
+ * Names an object that is a naming context. Naming contexts that
+ * are bound using bind_context() participate in name resolution
+ * when compound names are passed to be resolved.
+ *
+ * @param n Name of the object.
+ *
+ * @param nc NamingContect object to bind with the given name.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already
+ * bound to the specified name.
+ */
+ void bind_context(in Name n,
+ in NamingContext nc)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName,
+ AlreadyBound);
+
+/**
+ * Creates a binding of a name and an object in the naming context
+ * even if the name is already bound in the context. Naming contexts
+ * that are bound using rebind do not participate in name resolution
+ * when compound names are passed to be resolved.
+ *
+ * @param n Name of the object.
+ *
+ * @param obj The Object to rebind with the given name.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ */
+ void rebind(in Name n,
+ in Object obj)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName);
+
+/**
+ * Creates a binding of a name and a naming context in the naming
+ * context even if the name is already bound in the context. Naming
+ * contexts that are bound using rebind_context() participate in name
+ * resolution when compound names are passed to be resolved.
+ *
+ * @param n Name of the object.
+ *
+ * @param nc NamingContect object to rebind with the given name.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ */
+ void rebind_context(in Name n,
+ in NamingContext nc)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName);
+
+/**
+ * The resolve operation is the process of retrieving an object
+ * bound to a name in a given context. The given name must exactly
+ * match the bound name. The naming service does not return the type
+ * of the object. Clients are responsible for "narrowing" the object
+ * to the appropriate type. That is, clients typically cast the returned
+ * object from Object to a more specialized interface.
+ *
+ * @param n Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ */
+ Object resolve(in Name n)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName);
+
+/**
+ * The unbind operation removes a name binding from a context.
+ *
+ * @param n Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ */
+ void unbind(in Name n)
+ raises(NotFound,
+ CannotProceed,
+ InvalidName);
+
+/**
+ * The list operation allows a client to iterate through a set of
+ * bindings in a naming context. <p>
+ *
+ * The list operation returns at most the requested number of
+ * bindings in BindingList bl.
+ * <ul>
+ * <li>If the naming context contains additional
+ * bindings, the list operation returns a BindingIterator with the
+ * additional bindings.
+ * <li>If the naming context does not contain additional
+ * bindings, the binding iterator is a nil object reference.
+ * </ul>
+ *
+ * @param how_many the maximum number of bindings to return.
+ *
+ * @param bl the returned list of bindings.
+ *
+ * @param bi the returned binding iterator.
+ */
+ void list(in unsigned long how_many,
+ out BindingList bl,
+ out BindingIterator bi);
+
+/**
+ * This operation returns a naming context implemented by the same
+ * naming server as the context on which the operation was invoked.
+ * The new context is not bound to any name.
+ */
+ NamingContext new_context();
+
+/**
+ * This operation creates a new context and binds it to the name
+ * supplied as an argument. The newly-created context is implemented
+ * by the same naming server as the context in which it was bound (that
+ * is, the naming server that implements the context denoted by the
+ * name argument excluding the last component).
+ *
+ * @param n Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already
+ * bound to the specified name.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has
+ * given up for some reason. The client, however, may be able to
+ * continue the operation at the returned naming context.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid.
+ */
+ NamingContext bind_new_context(in Name n)
+ raises(NotFound,
+ AlreadyBound,
+ CannotProceed,
+ InvalidName);
+
+/**
+ * The destroy operation deletes a naming context. If the naming
+ * context contains bindings, the NotEmpty exception is raised.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotEmpty Indicates that the Naming Context contains bindings.
+ */
+ void destroy()
+ raises(NotEmpty);
+
+ };
+
+
+/**
+ * <code>NamingContextExt</code> is the extension of <code>NamingContext</code>
+ * which
+ * contains a set of name bindings in which each name is unique and is
+ * part of Interoperable Naming Service.
+ * Different names can be bound to an object in the same or different
+ * contexts at the same time. Using <code>NamingContextExt</code>, you can use
+ * URL-based names to bind and resolve.
+ *
+ * See <a href="http://www.omg.org/technology/documents/formal/naming_service.htm">
+ * CORBA COS
+ * Naming Specification.</a>
+ */
+ interface NamingContextExt: NamingContext
+ {
+/**
+ * StringName is the Stringified Name, Array of Name Components
+ * represented as a String.
+ */
+ typedef string StringName;
+
+/**
+ * Address is the Host and Port information represented as a String.
+ */
+ typedef string Address;
+
+/**
+ * URLString is the URL address (corbaloc: or corbaname:) represented as
+ * a String.
+ */
+ typedef string URLString;
+
+/**
+ * This operation creates a stringified name from the array of Name
+ * components.
+ *
+ * @param n Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName
+ * Indicates the name does not identify a binding.
+ *
+ */
+ StringName to_string( in Name n ) raises (InvalidName);
+
+/**
+ * This operation converts a Stringified Name into an equivalent array
+ * of Name Components.
+ *
+ * @param sn Stringified Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName
+ * Indicates the name does not identify a binding.
+ *
+ */
+ Name to_name( in StringName sn ) raises (InvalidName);
+
+
+/**
+ * Indicates the invalid Stringified name for the object, The
+ * reason could be invalid syntax.
+ */
+ exception InvalidAddress
+ { };
+
+/**
+ * This operation creates a URL based "iiopname://" format name
+ * from the Stringified Name of the object.
+ *
+ * @param addr internet based address of the host machine where Name Service is running.
+ * @param sn Stringified Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName
+ * Indicates the name does not identify a binding.
+ * @exception org.omg.CosNaming.NamingContextPackage.InvalidAddress
+ * Indicates the internet based address of the host machine is incorrect
+ */
+ URLString to_url( in Address addr, in StringName sn )
+ raises( InvalidAddress, InvalidName );
+
+
+/**
+ * This operation resolves the Stringified name into the object
+ * reference.
+ *
+ * @param sn Stringified Name of the object.
+ *
+ * @exception org.omg.CosNaming.NamingContextPackage.NotFound
+ * Indicates there is no object reference for the given name.
+ * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed
+ * Indicates that the given compound name is incorrect.
+ * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName
+ * Indicates the name does not identify a binding.
+ *
+ */
+ Object resolve_str( in StringName sn)
+ raises( NotFound, CannotProceed,
+ InvalidName);
+
+ };
+
+};
diff --git a/src/java.corba/share/classes/org/omg/CosNaming/package.html b/src/java.corba/share/classes/org/omg/CosNaming/package.html
new file mode 100644
index 0000000..2654854
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/CosNaming/package.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+-->
+</head>
+<body bgcolor="white">
+
+ Provides a naming service for Java&nbsp;IDL. The Object Request Broker Daemon
+ (ORBD) also includes both a transient and persistent naming service.
+
+
+ <P>
+ The package and all its classes and interfaces
+ were generated by running the tool <code>idlj</code> on the file
+ <code>nameservice.idl</code>, which is a module written in OMG IDL.
+
+ <H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6, ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+ <H2>Interfaces</H2>
+ The package <code>org.omg.CosNaming</code> contains two public interfaces
+ and several auxiliary classes.
+ <P>
+ The interfaces are:
+ <UL>
+ <LI><code>NamingContext</code>
+ <LI><code>BindingIterator</code>
+ </UL>
+ <P>
+ These two interfaces provide the means to bind/unbind names and object
+ references, to retrieve bound object references, and
+ to iterate through a list of bindings. The <code>NamingContext</code>
+ interface supplies the main functionality for the naming service, and
+ <code>BindingIterator</code> provides a means of iterating through a list
+ of name/object reference bindings.
+
+ <H2>Auxiliary Classes</H2>
+ In order to map an OMG IDL interface to the Java programming language,
+ the idlj compiler creates Java classes that can be thought of
+ as auxiliary classes.
+ Comments for the generated auxiliary classes
+ used by the interfaces <code>NamingContext</code> and
+ <code>BindingIterator</code> are included here.
+
+ <H3>Classes Used by <code>NamingContext</code> and
+ <code>BindingIterator</code></H3>
+ The following are classes used by
+ the naming service. (Helper and holder classes, which are
+ generated for each of the classes listed here, are discussed below.)
+
+ <UL>
+ <LI><code>public final class <B>NameComponent</B></code> --
+ a building block for names. (Names are bound to object references
+ in a naming context.)
+ <P>A name is an array of one or more <code>NameComponent</code> objects.
+ A name with a single <code>NameComponent</code> is called
+ a <I>simple name</I>; a name with multiple <code>NameComponent</code>
+ objects is called a <I>compound name</I>.
+ <P>
+ A <code><B>NameComponent</B></code> object consists of two fields:
+ <OL>
+ <LI><code><B>id</B></code> -- a <code>String</code> used as an identifier
+ <LI><code><B>kind</B></code> -- a <code>String</code> that can be used for any
+ descriptive purpose. Its importance is that it
+ can be used to describe an object without affecting syntax.
+ The C programming language, for example, uses the the syntactic convention
+ of appending the extension ".c" to a file name to indicate that it is
+ a source code file. In a <code>NameComponent</code> object,
+ the <code>kind</code> field can be used to describe the type of object
+ rather than a file extension or some other syntactic convention.
+ Examples of the value of the <code>kind</code> field include the strings
+ <code>"c_source"</code>, <code>"object_code"</code>,
+ <code>"executable"</code>,
+ <code>"postscript"</code>, and <code>""</code>. It is not unusual
+ for the <code>kind</code> field to be the empty string.
+ </OL>
+ <P>
+ In a name, each <code>NameComponent</code> object except the last denotes
+ a <code>NamingContext</code> object; the last <code>NameComponent</code>
+ object denotes the bound object reference.
+ This is similar to a path name, in which the last name is the
+ file name, and all names before it are directory names.
+
+ <LI><code>public final class <B>Binding</B></code> --
+ an object that associates a name with an object reference or a
+ naming context.
+ A <code>Binding</code> object has two fields:
+ <OL>
+ <LI><code><B>binding_name</B></code> - an array of one or more
+ <code>NameComponent</code> objects that represents the bound name
+ <LI><code><B>binding_type</B></code> - a <code>BindingType</code> object
+ indicating whether the binding is between a name and an object
+ reference or between a name and a naming context
+ </OL>
+ <P>
+ The interface <code>NamingContext</code> has methods for
+ binding/unbinding names with object references or naming contexts,
+ for listing bindings,
+ and for resolving bindings (given a name, the method
+ <code>resolve</code> returns the object reference bound to it).
+
+ <LI><code>public final class <B>BindingType</B></code> --
+ an object that specifies whether the given <code>Binding</code>
+ object is a binding between a name and an object reference (that is,
+ not a naming context) or between a name and a naming context.
+ <P>
+ The class<code>BindingType</code> consists of two methods and
+ four constants. Two of these constants are
+ <code>BindingType</code> objects, and two are <code>int</code>s.
+ <P>
+ The <code>BindingType</code> objects
+ can be passed to the constructor for the class
+ <code>Binding</code> or used as parameters or return values. These
+ <code>BindingType</code> objects are:
+ <UL>
+ <LI><code>public static final BindingType <B>nobject</B></code> --
+ to indicate that the binding is with an object reference
+ <LI><code>public static final BindingType <B>ncontext</B></code> --
+ to indicate that the binding is with a naming context
+ </UL>
+ <P>
+ The <code>int</code> constants can be supplied to the method
+ <code>from_int</code> to create <code>BindingType</code> objects,
+ or they can be return values for the method <code>value</code>.
+ These constants are:
+ <UL>
+ <LI><code>public static final int <B>_nobject</B></code>
+ <LI><code>public static final int <B>_ncontext</B></code>
+ </UL>
+ If the method <code>from_int</code> is supplied with anything other
+ than <code>_nobject</code>
+ or <code>_ncontext</code>, it will throw
+ the exception <code>org.omg.CORBA.BAD_PARAM</code>.
+ <P>Usage is as follows:
+ <PRE>
+ BindingType btObject = from_int(_nobject);
+ BindingType btContext = from_int(_ncontext);
+ </PRE>
+ The variable <code>btObject</code> refers to a <code>BindingType</code>
+ object initialized to represent a binding with an object reference.
+ The variable <code>btContext</code> refers to a <code>BindingType</code>
+ object initialized to represent a binding with a
+ <code>NamingContex</code> object.
+ <P>
+ The method <code>value</code> returns either
+ <code>_nobject</code> or <code>_ncontext</code>, so
+ in the following line of code, the variable <code>bt</code>
+ will contain <code>_nobject</code> or <code>_ncontext</code>:
+ <PRE>
+ int bt = BindingType.value();
+ </PRE>
+ </UL>
+
+ <H3>Holder Classes</H3>
+
+ OMG IDL uses OUT and INOUT parameters for returning values from operations.
+ The mapping to the Java programming language, which does not have OUT
+ and INOUT parameters, creates a special class for each type, called
+ a holder class.
+ An instance of a holder class can be passed to a
+ Java method as a parameter, and
+ a value can be assigned to its <code>value</code> field. This allows
+ it to perform the function of an OUT or INOUT parameter.
+ <P>The following holder classes are generated for the package
+ <code>org.omg.CosNaming</code>:
+ <UL>
+ <LI><code>NamingContextHolder</code>
+ <LI><code>BindingIteratorHolder</code>
+ <LI><code>BindingHolder</code>
+ <LI><code>BindingListHolder</code>
+ <LI><code>BindingTypeHolder</code>
+ <LI><code>NameComponentHolder</code>
+ <LI><code>NameHolder</code>
+ </UL>
+ <P>
+ Note that in the <code>org.omg.CORBA</code> package,
+ there is a holder class for each of the basic Java types:
+ <code>IntHolder</code>, <code>ShortHolder</code>,
+ <code>StringHolder</code>, and so on.
+ <P>
+ Note also that there is a <code>NameHolder</code> class even though
+ there is no <code>Name</code> class; similarly, there is a
+ <code>BindingListHolder</code> class even though there is no
+ <code>BindingList</code> class. This is true because in the OMG IDL
+ interface, <code>Name</code> and <code>BindingList</code> are
+ <code>typedef</code>s. There is no mapping from an IDL
+ <code>typedef</code> to a Java construct, but holder classes
+ are generated if the <code>typedef</code> is for a sequence or
+ an array. As mapped to the
+ Java programming language, <code>Name</code> is an array of
+ <code>NameComponent</code> objects, and a <code>BindingList</code>
+ is an array of <code>Binding</code> objects.
+
+ All holder classes have at least two constructors and one field:
+ <UL>
+ <LI><code><B>value</B></code> field -- an instance of the type being used as
+ an OUT or INOUT parameter. For example, the <code>value</code> field of a
+ <code>NamingContextHolder</code> will be a <code>NamingContext</code>
+ object.
+ <LI>default constructor -- a constructor that creates a new holder object
+ initialized with the default value for the type. For example, a new
+ <code>BindingHolder</code> object created with the default constructor
+ will have its <code>value</code> field set to <code>null</code> because
+ that is the default value for an object. Other defaults are
+ <code>false</code> for <code>boolean</code>,
+ <code>0</code> for numeric and char types, and
+ <code>null</code> for object references.
+ <LI>constructor from an instance -- a constructor that creates a new
+ holder object whose <code>value</code> field is
+ initialized with the instance supplied
+ </UL>
+ <P>
+ A holder class for a user-defined type (a Java class) has three more
+ methods, but application developers do not use them directly.
+
+ <H3>Helper Classes</H3>
+ Helper classes, which are generated for all user-defined types
+ in an OMG IDL interface, supply static methods needed to manipulate
+ those types.
+ <P>
+ There is only one method in a helper class that an
+ application programmer uses: the
+ method <code>narrow</code>. Only Java interfaces mapped from IDL
+ interfaces will have a helper class that includes a <code>narrow</code>
+ method, so in the <code>CosNaming</code> package, only the classes
+ <code>NamingContextHelper</code> and <code>BindingIteratorHelper</code>
+ have a <code>narrow</code> method.
+ <UL>
+ <LI><code>public static NamingContext
+ <B>narrow</B>(org.omg.CORBA.Object obj)</code> -- converts the given
+ CORBA object to a <code>NamingContext</code> object
+ <LI><code>public static BindingIterator
+ <B>narrow</B>(org.omg.CORBA.Object obj)</code> -- converts the given
+ CORBA object to a <code>BindingIterator</code> object
+ </UL>
+<H2>Package <code>org.omg.CosNaming.NamingContextPackage</code></H2>
+This package supplies Helper and Holder classes for the exceptions used
+in the package <code>org.omg.CosNaming</code> and also for the class
+<code>NotFoundReason</code>, which supplies a reason for the exception
+<code>NotFound</code>.
+<P>
+There are Helper and Holder classes for the following exceptions:
+<UL>
+<LI><code>AlreadyBound</code>
+<LI><code>CannotProceed</code>
+<LI><code>InvalidName</code>
+<LI><code>NotEmpty</code>
+<LI><code>NotFound</code>
+</UL>
+
+<h2>Naming Service Compatibility</h2>
+
+Sun's implementation of the <code>CosNaming</code> package complies
+with the OMG <code>COSNaming</code> specification. In other words,
+the APIs in Sun's naming service are implemented according to the
+guidelines for a naming service provided by OMG. Therefore, if a
+third-party vendor has implemented a naming service that is OMG
+compliant, it is possible to switch between Sun's implementation of
+<code>CosNaming</code> and the third-party vendor's implementation.
+However, it is important to understand that there can be minor
+variations in the way different vendors implement the naming service,
+such as differences in the exception strings.
+
+<h3>Instructions for Using a Third Party's Naming Service</h3>
+Although we encourage using an ORB and ORB services that are both
+from one vendor, it is possible to plug in a third party's
+<code>COSNaming</code> implementation with Sun's RMI-IIOP ORB.
+Here are the steps to follow:
+<OL>
+ <LI>Create a properties file for the Bootstrap server and give it
+ two entries. For example, you could call this properties file
+ <code>/tmp/services</code> and put the following in it:
+ <code>NameService, &lt;Stringified IOR of the Root Naming Context&gt;</code>.
+ <P>
+ This associates <code>NameService</code> with the Root Naming
+ Context of the <code>CosNaming</code> implementation that you
+ want to use.
+ <LI>Start the standalone Bootstrap server using the following command:
+ <pre>
+ <code>
+ java -classpath $(CLASSPATH)
+ com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile
+ "/tmp/services" [-ORBInitialPort port]
+ </code>
+ </pre>
+ <P>
+ Note that the square brackets at the end of the command indicate that
+ specifying a port number is optional.
+</OL>
+<P>
+Now when an application calls the method
+<code>org.omg.CORBA.ORB.resolve_initial_references</code>, CORBA
+processes will contact the Bootstrap Server to get the Root Naming
+Context.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Interoperable Naming Service (<a
+href="http://www.omg.org/cgi-bin/doc?ptc/00-08-07">ptc/00-08-07</a>)
+</ul>
+
+<h2>Related Documentation</h2>
+
+For an overview and examples of how to use the
+<code>CosNaming</code> API, please see:
+<ul>
+ <li>{@extLink tnameserv NamingService}
+</ul>
+<p>
+For an overview of Java&nbsp;IDL, please see:
+<ul>
+ <li>{@extLink idl_guides Java&nbsp;IDL developer's home page}
+</ul>
+
+@since JDK1.3
+
+
+
+</body>
+</html>
+
diff --git a/src/java.corba/share/classes/org/omg/Dynamic/package.html b/src/java.corba/share/classes/org/omg/Dynamic/package.html
new file mode 100644
index 0000000..345b0a3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/Dynamic/package.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the <code>Dynamic</code> module specified in the OMG Portable
+Interceptor specification,
+<a href="http://www.omg.org/cgi-bin/doc?ptc/2000-08-06">
+ptc/2000-08-06</a>, section 21.9. Please
+refer to that OMG specification for further details.
+
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html
new file mode 100644
index 0000000..50669f1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+/*
+* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Oracle designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+* or visit www.oracle.com if you need additional information or have any
+* questions.
+*/
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>
+
+This package contains classes and exceptions from the <code>DynAnyFactory</code>
+interface of the
+<code>DynamicAny</code> module
+specified in the OMG <em>The Common Object Request Broker: Architecture and
+Specification</em>,
+<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">
+formal/99-10-07</a>, section 9.2.2. Please
+refer to that OMG specification for further details.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html
new file mode 100644
index 0000000..a00125d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains classes and exceptions from the <code>DynAny</code>
+ interface of the <code>DynamicAny</code> module
+specified in the OMG <em>The Common Object Request Broker: Architecture and
+Specification</em>,
+<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">
+formal/99-10-07</a>, section 9.2. Please
+refer to that OMG specification for further details.
+
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl b/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl
new file mode 100644
index 0000000..63e451d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl
@@ -0,0 +1,1280 @@
+/*
+ * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// IDL
+// File: DynamicAny.idl
+
+#ifndef _DYNAMIC_ANY_IDL_
+#define _DYNAMIC_ANY_IDL_
+
+#pragma prefix "omg.org"
+#include <orb.idl>
+
+/**
+* An any can be passed to a program that doesn't have any static information for the
+type of the any (code generated for the type by an IDL compiler has not been
+compiled with the object implementation). As a result, the object receiving the any
+does not have a portable method of using it.
+<P>DynAnys enable traversal of the data value associated with an any at
+runtime and extraction of the primitive constituents of the data value. This is especially
+helpful for writing powerful generic servers (bridges, event channels supporting
+filtering).
+<P>Similarly, this facility enables the construction of an any at runtime, without having
+static knowledge of its type. This is especially helpful for writing generic clients
+(bridges, browsers, debuggers, user interface tools).
+*/
+module DynamicAny {
+ /**
+ * Any values can be dynamically interpreted (traversed) and constructed through DynAny objects.
+ * A DynAny object is associated with a data value which corresponds to a copy of the value
+ * inserted into an any.
+ * <P>A DynAny object may be viewed as an ordered collection of component DynAnys.
+ * For DynAnys representing a basic type, such as long, or a type without components,
+ * such as an empty exception, the ordered collection of components is empty.
+ * Each DynAny object maintains the notion of a current position into its collection
+ * of component DynAnys. The current position is identified by an index value that runs
+ * from 0 to n-1, where n is the number of components.
+ * The special index value -1 indicates a current position that points nowhere.
+ * For values that cannot have a current position (such as an empty exception),
+ * the index value is fixed at -1.
+ * If a DynAny is initialized with a value that has components, the index is initialized to 0.
+ * After creation of an uninitialized DynAny (that is, a DynAny that has no value but a TypeCode
+ * that permits components), the current position depends on the type of value represented by
+ * the DynAny. (The current position is set to 0 or -1, depending on whether the new DynAny
+ * gets default values for its components.)
+ * <P>The iteration operations rewind, seek, and next can be used to change the current position
+ * and the current_component operation returns the component at the current position.
+ * The component_count operation returns the number of components of a DynAny.
+ * Collectively, these operations enable iteration over the components of a DynAny, for example,
+ * to (recursively) examine its contents.
+ * <P>A constructed DynAny object is a DynAny object associated with a constructed type.
+ * There is a different interface, inheriting from the DynAny interface, associated with
+ * each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array,
+ * exception, and value type).
+ * <P>A constructed DynAny object exports operations that enable the creation of new DynAny objects,
+ * each of them associated with a component of the constructed data value.
+ * As an example, a DynStruct is associated with a struct value. This means that the DynStruct
+ * may be seen as owning an ordered collection of components, one for each structure member.
+ * The DynStruct object exports operations that enable the creation of new DynAny objects,
+ * each of them associated with a member of the struct.
+ * <P>If a DynAny object has been obtained from another (constructed) DynAny object,
+ * such as a DynAny representing a structure member that was created from a DynStruct,
+ * the member DynAny is logically contained in the DynStruct.
+ * Calling an insert or get operation leaves the current position unchanged.
+ * Destroying a top-level DynAny object (one that was not obtained as a component of another DynAny)
+ * also destroys any component DynAny objects obtained from it.
+ * Destroying a non-top level DynAny object does nothing.
+ * Invoking operations on a destroyed top-level DynAny or any of its descendants raises OBJECT_NOT_EXIST.
+ * If the programmer wants to destroy a DynAny object but still wants to manipulate some component
+ * of the data value associated with it, then he or she should first create a DynAny for the component
+ * and, after that, make a copy of the created DynAny object.
+ * <P>The behavior of DynAny objects has been defined in order to enable efficient implementations
+ * in terms of allocated memory space and speed of access. DynAny objects are intended to be used
+ * for traversing values extracted from anys or constructing values of anys at runtime.
+ * Their use for other purposes is not recommended.
+ * <P>Insert and get operations are necessary to handle basic DynAny objects
+ * but are also helpful to handle constructed DynAny objects.
+ * Inserting a basic data type value into a constructed DynAny object
+ * implies initializing the current component of the constructed data value
+ * associated with the DynAny object. For example, invoking insert_boolean on a
+ * DynStruct implies inserting a boolean data value at the current position
+ * of the associated struct data value.
+ * A type is consistent for inserting or extracting a value if its TypeCode is equivalent to
+ * the TypeCode contained in the DynAny or, if the DynAny has components, is equivalent to the TypeCode
+ * of the DynAny at the current position.
+ * <P>DynAny and DynAnyFactory objects are intended to be local to the process in which they are
+ * created and used. This means that references to DynAny and DynAnyFactory objects cannot be exported
+ * to other processes, or externalized with ORB.object_to_string().
+ * If any attempt is made to do so, the offending operation will raise a MARSHAL system exception.
+ * Since their interfaces are specified in IDL, DynAny objects export operations defined in the standard
+ * org.omg.CORBA.Object interface. However, any attempt to invoke operations exported through the Object
+ * interface may raise the standard NO_IMPLEMENT exception.
+ * An attempt to use a DynAny object with the DII may raise the NO_IMPLEMENT exception.
+ */
+ interface DynAny {
+ #pragma sun_localservant DynAny ""
+ exception InvalidValue {};
+ exception TypeMismatch {};
+
+ /**
+ * Returns the TypeCode associated with this DynAny object.
+ * A DynAny object is created with a TypeCode value assigned to it.
+ * This TypeCode value determines the type of the value handled through the DynAny object.
+ * Note that the TypeCode associated with a DynAny object is initialized at the time the
+ * DynAny is created and cannot be changed during lifetime of the DynAny object.
+ *
+ * @return The TypeCode associated with this DynAny object
+ */
+ CORBA::TypeCode type();
+
+ /**
+ * Initializes the value associated with a DynAny object with the value
+ * associated with another DynAny object.
+ * The current position of the target DynAny is set to zero for values that have components
+ * and to -1 for values that do not have components.
+ *
+ * @param dyn_any
+ * @exception TypeMismatch if the type of the passed DynAny is not equivalent to the type of target DynAny
+ */
+ void assign(in DynAny dyn_any)
+ raises(TypeMismatch);
+
+ /**
+ * Initializes the value associated with a DynAny object with the value contained in an any.
+ * The current position of the target DynAny is set to zero for values that have components
+ * and to -1 for values that do not have components.
+ *
+ * @exception TypeMismatch if the type of the passed Any is not equivalent to the type of target DynAny
+ * @exception InvalidValue if the passed Any does not contain a legal value (such as a null string)
+ */
+ void from_any(in any value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Creates an any value from a DynAny object.
+ * A copy of the TypeCode associated with the DynAny object is assigned to the resulting any.
+ * The value associated with the DynAny object is copied into the any.
+ *
+ * @return a new Any object with the same value and TypeCode
+ */
+ any to_any();
+
+ /**
+ * Compares two DynAny values for equality.
+ * Two DynAny values are equal if their TypeCodes are equivalent and, recursively, all component DynAnys
+ * have equal values.
+ * The current position of the two DynAnys being compared has no effect on the result of equal.
+ *
+ * @return true of the DynAnys are equal, false otherwise
+ */
+ boolean equal(in DynAny dyn_any);
+
+ /**
+ * Destroys a DynAny object.
+ * This operation frees any resources used to represent the data value associated with a DynAny object.
+ * It must be invoked on references obtained from one of the creation operations on the ORB interface
+ * or on a reference returned by DynAny.copy() to avoid resource leaks.
+ * Invoking destroy on component DynAny objects (for example, on objects returned by the
+ * current_component operation) does nothing.
+ * Destruction of a DynAny object implies destruction of all DynAny objects obtained from it.
+ * That is, references to components of a destroyed DynAny become invalid.
+ * Invocations on such references raise OBJECT_NOT_EXIST.
+ * It is possible to manipulate a component of a DynAny beyond the life time of the DynAny
+ * from which the component was obtained by making a copy of the component with the copy operation
+ * before destroying the DynAny from which the component was obtained.
+ */
+ void destroy();
+
+ /**
+ * Creates a new DynAny object whose value is a deep copy of the DynAny on which it is invoked.
+ * The operation is polymorphic, that is, invoking it on one of the types derived from DynAny,
+ * such as DynStruct, creates the derived type but returns its reference as the DynAny base type.
+ *
+ * @return a deep copy of the DynAny object
+ */
+ DynAny copy();
+
+ /**
+ * Inserts a boolean value into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_boolean(in boolean value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a byte value into the DynAny. The IDL octet data type is mapped to the Java byte data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_octet(in octet value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a char value into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_char(in char value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a short value into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_short(in short value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a short value into the DynAny. The IDL ushort data type is mapped to the Java short data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_ushort(in unsigned short value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts an integer value into the DynAny. The IDL long data type is mapped to the Java int data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_long(in long value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts an integer value into the DynAny. The IDL ulong data type is mapped to the Java int data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_ulong(in unsigned long value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a float value into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_float(in float value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a double value into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_double(in double value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a string value into the DynAny.
+ * Both bounded and unbounded strings are inserted using this method.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception InvalidValue if the string inserted is longer than the bound of a bounded string
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_string(in string value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a reference to a CORBA object into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_reference(in Object value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a TypeCode object into the DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_typecode(in CORBA::TypeCode value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a long value into the DynAny. The IDL long long data type is mapped to the Java long data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_longlong(in long long value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a long value into the DynAny.
+ * The IDL unsigned long long data type is mapped to the Java long data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_ulonglong(in unsigned long long value)
+ raises(TypeMismatch, InvalidValue);
+
+// void insert_longdouble(in long double value)
+// raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a char value into the DynAny. The IDL wchar data type is mapped to the Java char data type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_wchar(in wchar value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a string value into the DynAny.
+ * Both bounded and unbounded strings are inserted using this method.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception InvalidValue if the string inserted is longer than the bound of a bounded string
+ */
+ void insert_wstring(in wstring value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts an Any value into the Any represented by this DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_any(in any value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts the Any value contained in the parameter DynAny into the Any represented by this DynAny.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_dyn_any(in DynAny value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Inserts a reference to a Serializable object into this DynAny.
+ * The IDL ValueBase type is mapped to the Java Serializable type.
+ *
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ void insert_val(in ValueBase value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the boolean value from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ boolean get_boolean()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the byte value from this DynAny. The IDL octet data type is mapped to the Java byte data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ octet get_octet()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the char value from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ char get_char()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the short value from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ short get_short()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the short value from this DynAny. The IDL ushort data type is mapped to the Java short data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ unsigned short get_ushort()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the integer value from this DynAny. The IDL long data type is mapped to the Java int data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ long get_long()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the integer value from this DynAny. The IDL ulong data type is mapped to the Java int data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ unsigned long get_ulong()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the float value from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ float get_float()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the double value from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ double get_double()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the string value from this DynAny.
+ * Both bounded and unbounded strings are extracted using this method.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ string get_string()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the reference to a CORBA Object from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ Object get_reference()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the TypeCode object from this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ CORBA::TypeCode get_typecode()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the long value from this DynAny. The IDL long long data type is mapped to the Java long data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ long long get_longlong()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the long value from this DynAny.
+ * The IDL unsigned long long data type is mapped to the Java long data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ unsigned long long get_ulonglong()
+ raises(TypeMismatch, InvalidValue);
+// long double get_longdouble()
+// raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the long value from this DynAny. The IDL wchar data type is mapped to the Java char data type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ wchar get_wchar()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the string value from this DynAny.
+ * Both bounded and unbounded strings are extracted using this method.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ */
+ wstring get_wstring()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts an Any value contained in the Any represented by this DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ any get_any()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts the Any value contained in the Any represented by this DynAny and returns it wrapped
+ * into a new DynAny.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ DynAny get_dyn_any()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Extracts a Serializable object from this DynAny.
+ * The IDL ValueBase type is mapped to the Java Serializable type.
+ *
+ * @exception TypeMismatch if the accessed component in the DynAny is of a type
+ * that is not equivalent to the requested type.
+ * @exception TypeMismatch if called on a DynAny whose current component itself has components
+ * @exception InvalidValue if this DynAny has components but has a current position of -1
+ */
+ ValueBase get_val()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Sets the current position to index. The current position is indexed 0 to n-1, that is,
+ * index zero corresponds to the first component. The operation returns true if the resulting
+ * current position indicates a component of the DynAny and false if index indicates
+ * a position that does not correspond to a component.
+ * Calling seek with a negative index is legal. It sets the current position to -1 to indicate
+ * no component and returns false. Passing a non-negative index value for a DynAny that does not
+ * have a component at the corresponding position sets the current position to -1 and returns false.
+ */
+ boolean seek(in long index);
+
+ /**
+ * Is equivalent to seek(0).
+ */
+ void rewind();
+
+ /**
+ * Advances the current position to the next component.
+ * The operation returns true while the resulting current position indicates a component, false otherwise.
+ * A false return value leaves the current position at -1.
+ * Invoking next on a DynAny without components leaves the current position at -1 and returns false.
+ */
+ boolean next();
+
+ /**
+ * Returns the number of components of a DynAny.
+ * For a DynAny without components, it returns zero.
+ * The operation only counts the components at the top level.
+ * For example, if component_count is invoked on a DynStruct with a single member,
+ * the return value is 1, irrespective of the type of the member.
+ * <UL>
+ * <LI>For sequences, the operation returns the current number of elements.
+ * <LI>For structures, exceptions, and value types, the operation returns the number of members.
+ * <LI>For arrays, the operation returns the number of elements.
+ * <LI>For unions, the operation returns 2 if the discriminator indicates that a named member is active,
+ * otherwise, it returns 1.
+ * <LI>For DynFixed and DynEnum, the operation returns zero.
+ * </UL>
+ */
+ unsigned long component_count();
+
+ /**
+ * Returns the DynAny for the component at the current position.
+ * It does not advance the current position, so repeated calls to current_component
+ * without an intervening call to rewind, next, or seek return the same component.
+ * The returned DynAny object reference can be used to get/set the value of the current component.
+ * If the current component represents a complex type, the returned reference can be narrowed
+ * based on the TypeCode to get the interface corresponding to the to the complex type.
+ * Calling current_component on a DynAny that cannot have components,
+ * such as a DynEnum or an empty exception, raises TypeMismatch.
+ * Calling current_component on a DynAny whose current position is -1 returns a nil reference.
+ * The iteration operations, together with current_component, can be used
+ * to dynamically compose an any value. After creating a dynamic any, such as a DynStruct,
+ * current_component and next can be used to initialize all the components of the value.
+ * Once the dynamic value is completely initialized, to_any creates the corresponding any value.
+ *
+ * @exception TypeMismatch If called on a DynAny that cannot have components,
+ * such as a DynEnum or an empty exception
+ */
+ DynAny current_component()
+ raises(TypeMismatch);
+ };
+
+ /**
+ * DynFixed objects support the manipulation of IDL fixed values.
+ * Because IDL does not have a generic type that can represent fixed types with arbitrary
+ * number of digits and arbitrary scale, the operations use the IDL string type.
+ */
+ interface DynFixed : DynAny {
+ #pragma sun_localservant DynFixed ""
+
+ /**
+ * Returns the value of a DynFixed.
+ */
+ string get_value();
+
+ /**
+ * Sets the value of the DynFixed.
+ * The val string must contain a fixed string constant in the same format as used for IDL fixed-point literals.
+ * However, the trailing d or D is optional. The return value is true if val can be represented as the DynFixed
+ * without loss of precision. If val has more fractional digits than can be represented in the DynFixed,
+ * fractional digits are truncated and the return value is false.
+ *
+ * @exception TypeMismatch If val does not contain a valid fixed-point literal or contains extraneous
+ * characters other than leading or trailing white space
+ * @exception InvalidValue If val contains a value whose scale exceeds that of the DynFixed
+ * or is not initialized
+ */
+ boolean set_value(in string val)
+ raises(TypeMismatch, InvalidValue);
+ };
+
+ /**
+ * DynEnum objects support the manipulation of IDL enumerated values.
+ * The current position of a DynEnum is always -1.
+ */
+ interface DynEnum : DynAny {
+ #pragma sun_localservant DynEnum ""
+
+ /**
+ * Returns the value of the DynEnum as an IDL identifier.
+ */
+ string get_as_string();
+
+ /**
+ * Sets the value of the DynEnum to the enumerated value whose IDL identifier is passed in the value parameter.
+ *
+ * @exception InvalidValue If value contains a string that is not a valid IDL identifier
+ * for the corresponding enumerated type
+ */
+ void set_as_string(in string value)
+ raises(InvalidValue);
+
+ /**
+ * Returns the value of the DynEnum as the enumerated value's ordinal value.
+ * Enumerators have ordinal values 0 to n-1, as they appear from left to right
+ * in the corresponding IDL definition.
+ */
+ unsigned long get_as_ulong();
+
+ /**
+ * Sets the value of the DynEnum as the enumerated value's ordinal value.
+ *
+ * @exception InvalidValue If value contains a value that is outside the range of ordinal values
+ * for the corresponding enumerated type
+ */
+ void set_as_ulong(in unsigned long value)
+ raises(InvalidValue);
+ };
+
+ typedef string FieldName;
+
+ /**
+ * NameValuePairs associate a name with an Any object.
+ */
+ struct NameValuePair {
+ /**
+ * The name associated with the Any.
+ */
+ FieldName id;
+ /**
+ * The Any value associated with the name.
+ */
+ any value;
+ };
+ typedef sequence<NameValuePair> NameValuePairSeq;
+
+ /**
+ * NameDynAnyPairs associate a name with an DynAny object.
+ */
+ struct NameDynAnyPair {
+ /**
+ * The name associated with the DynAny.
+ */
+ FieldName id;
+ /**
+ * The DynAny value associated with the name.
+ */
+ DynAny value;
+ };
+ typedef sequence<NameDynAnyPair> NameDynAnyPairSeq;
+
+ /**
+ * DynStruct objects support the manipulation of IDL struct and exception values.
+ * Members of the exceptions are handled in the same way as members of a struct.
+ */
+ interface DynStruct : DynAny {
+ #pragma sun_localservant DynStruct ""
+
+ /**
+ * Returns the name of the member at the current position.
+ * This operation may return an empty string since the TypeCode of the value being
+ * manipulated may not contain the names of members.
+ *
+ * @exception TypeMismatch if the DynStruct represents an empty exception.
+ * @exception InvalidValue if the current position does not indicate a member
+ */
+ FieldName current_member_name()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns the TCKind associated with the member at the current position.
+ *
+ * @exception TypeMismatch if the DynStruct represents an empty exception.
+ * @exception InvalidValue if the current position does not indicate a member
+ */
+ CORBA::TCKind current_member_kind()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns a sequence of NameValuePairs describing the name and the value of each member
+ * in the struct associated with a DynStruct object.
+ * The sequence contains members in the same order as the declaration order of members
+ * as indicated by the DynStruct's TypeCode. The current position is not affected.
+ * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode
+ * does not contain member names.
+ */
+ NameValuePairSeq get_members();
+
+ /**
+ * Initializes the struct data value associated with a DynStruct object from a sequence of NameValuePairs.
+ * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
+ * if an empty sequence is passed, the current position is set to -1.
+ * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification
+ * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings.
+ * The operation makes no attempt to assign member values based on member names.
+ *
+ * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
+ * corresponding member name in the DynStruct's TypeCode and they are not empty strings
+ * @exception InvalidValue if the passed sequence has a number of elements that disagrees
+ * with the number of members as indicated by the DynStruct's TypeCode
+ */
+ void set_members(in NameValuePairSeq value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns a sequence of NameDynAnyPairs describing the name and the value of each member
+ * in the struct associated with a DynStruct object.
+ * The sequence contains members in the same order as the declaration order of members
+ * as indicated by the DynStruct's TypeCode. The current position is not affected.
+ * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode
+ * does not contain member names.
+ */
+ NameDynAnyPairSeq get_members_as_dyn_any();
+
+ /**
+ * Initializes the struct data value associated with a DynStruct object from a sequence of NameDynAnyPairs.
+ * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
+ * if an empty sequence is passed, the current position is set to -1.
+ * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification
+ * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings.
+ * The operation makes no attempt to assign member values based on member names.
+ *
+ * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
+ * corresponding member name in the DynStruct's TypeCode and they are not empty strings
+ * @exception InvalidValue if the passed sequence has a number of elements that disagrees
+ * with the number of members as indicated by the DynStruct's TypeCode
+ */
+ void set_members_as_dyn_any(in NameDynAnyPairSeq value)
+ raises(TypeMismatch, InvalidValue);
+ };
+
+ /**
+ * DynUnion objects support the manipulation of IDL unions.
+ * A union can have only two valid current positions:
+ * <UL>
+ * <LI>zero, which denotes the discriminator
+ * <LI>one, which denotes the active member
+ * </UL>
+ * The component_count value for a union depends on the current discriminator:
+ * it is 2 for a union whose discriminator indicates a named member, and 1 otherwise.
+ */
+ interface DynUnion : DynAny {
+ #pragma sun_localservant DynUnion ""
+
+ /**
+ * Returns the current discriminator value.
+ */
+ DynAny get_discriminator();
+
+ /**
+ * Sets the discriminator of the DynUnion to the specified value.
+ * Setting the discriminator to a value that is consistent with the currently active union member
+ * does not affect the currently active member. Setting the discriminator to a value that is inconsistent
+ * with the currently active member deactivates the member and activates the member that is consistent
+ * with the new discriminator value (if there is a member for that value) by initializing the member
+ * to its default value.
+ * Setting the discriminator of a union sets the current position to 0 if the discriminator value
+ * indicates a non-existent union member (has_no_active_member returns true in this case).
+ * Otherwise, if the discriminator value indicates a named union member, the current position is set to 1
+ * (has_no_active_member returns false and component_count returns 2 in this case).
+ *
+ * @exception TypeMismatch if the TypeCode of the parameter is not equivalent to the TypeCode
+ * of the union's discriminator
+ */
+ void set_discriminator(in DynAny d)
+ raises(TypeMismatch);
+
+ /**
+ * Sets the discriminator to a value that is consistent with the value of the default case of a union.
+ * It sets the current position to zero and causes component_count to return 2.
+ *
+ * @exception TypeMismatch if the union does not have an explicit default case
+ */
+ void set_to_default_member()
+ raises(TypeMismatch);
+
+ /**
+ * Sets the discriminator to a value that does not correspond to any of the unions case labels.
+ * It sets the current position to zero and causes component_count to return 1.
+ *
+ * @exception TypeMismatch if the union has an explicit default case or if it uses the entire range
+ * of discriminator values for explicit case labels
+ */
+ void set_to_no_active_member()
+ raises(TypeMismatch);
+
+ /**
+ * Returns true if the union has no active member, that is, the unions value consists solely
+ * of its discriminator because the discriminator has a value that is not listed as an explicit case label.
+ * Calling this operation on a union that has a default case returns false.
+ * Calling this operation on a union that uses the entire range of discriminator values
+ * for explicit case labels returns false.
+ */
+ boolean has_no_active_member();
+
+ /**
+ * Returns the TCKind value of the discriminators TypeCode.
+ */
+ CORBA::TCKind discriminator_kind();
+
+ /**
+ * Returns the TCKind value of the currently active members TypeCode.
+ *
+ * @exception InvalidValue if the union does not have a currently active member
+ */
+ CORBA::TCKind member_kind()
+ raises(InvalidValue);
+
+ /**
+ * Returns the currently active member. Note that the returned reference remains valid only
+ * for as long as the currently active member does not change. Using the returned reference
+ * beyond the life time of the currently active member raises OBJECT_NOT_EXIST.
+ *
+ * @exception InvalidValue if the union has no active member
+ */
+ DynAny member()
+ raises(InvalidValue);
+
+ /**
+ * Returns the name of the currently active member. If the unions TypeCode does not contain
+ * a member name for the currently active member, the operation returns an empty string.
+ *
+ * @exception InvalidValue if the union has no active member
+ */
+ FieldName member_name()
+ raises(InvalidValue);
+ };
+
+ typedef sequence<any> AnySeq;
+ typedef sequence<DynAny> DynAnySeq;
+
+ /**
+ * DynSequence objects support the manipulation of IDL sequences.
+ */
+ interface DynSequence : DynAny {
+ #pragma sun_localservant DynSequence ""
+
+ /**
+ * Returns the current length of the sequence.
+ */
+ unsigned long get_length();
+
+ /**
+ * Sets the length of the sequence.
+ * Increasing the length of a sequence adds new elements at the tail without affecting the values
+ * of already existing elements. Newly added elements are default-initialized.
+ * Increasing the length of a sequence sets the current position to the first newly-added element
+ * if the previous current position was -1. Otherwise, if the previous current position was not -1,
+ * the current position is not affected.
+ * Decreasing the length of a sequence removes elements from the tail without affecting the value
+ * of those elements that remain. The new current position after decreasing the length of a sequence
+ * is determined as follows:
+ * <UL>
+ * <LI>If the length of the sequence is set to zero, the current position is set to -1.
+ * <LI>If the current position is -1 before decreasing the length, it remains at -1.
+ * <LI>If the current position indicates a valid element and that element is not removed when the length
+ * is decreased, the current position remains unaffected.
+ * <LI>If the current position indicates a valid element and that element is removed,
+ * the current position is set to -1.
+ * </UL>
+ *
+ * @exception InvalidValue if this is a bounded sequence and len is larger than the bound
+ */
+ void set_length(in unsigned long len)
+ raises(InvalidValue);
+
+ /**
+ * Returns the elements of the sequence.
+ */
+ AnySeq get_elements();
+
+ /**
+ * Sets the elements of a sequence.
+ * The length of the DynSequence is set to the length of value. The current position is set to zero
+ * if value has non-zero length and to -1 if value is a zero-length sequence.
+ *
+ * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent
+ * to the element TypeCode of the DynSequence
+ * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence
+ */
+ void set_elements(in AnySeq value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns the DynAnys representing the elements of the sequence.
+ */
+ DynAnySeq get_elements_as_dyn_any();
+
+ /**
+ * Sets the elements of a sequence using DynAnys.
+ * The length of the DynSequence is set to the length of value. The current position is set to zero
+ * if value has non-zero length and to -1 if value is a zero-length sequence.
+ *
+ * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent
+ * to the element TypeCode of the DynSequence
+ * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence
+ */
+ void set_elements_as_dyn_any(in DynAnySeq value)
+ raises(TypeMismatch, InvalidValue);
+ };
+
+ /**
+ * DynArray objects support the manipulation of IDL arrays.
+ * Note that the dimension of the array is contained in the TypeCode which is accessible
+ * through the type attribute. It can also be obtained by calling the component_count operation.
+ */
+ interface DynArray : DynAny {
+ #pragma sun_localservant DynArray ""
+
+ /**
+ * Returns the elements of the DynArray.
+ */
+ AnySeq get_elements();
+
+ /**
+ * Sets the DynArray to contain the passed elements.
+ *
+ * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode
+ * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension
+ */
+ void set_elements(in AnySeq value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns the elements of the DynArray as DynAnys.
+ */
+ DynAnySeq get_elements_as_dyn_any();
+
+ /**
+ * Sets the DynArray to contain the passed elements.
+ *
+ * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode
+ * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension
+ */
+ void set_elements_as_dyn_any(in DynAnySeq value)
+ raises(TypeMismatch, InvalidValue);
+ };
+
+ /**
+ * DynValueCommon provides operations supported by both the DynValue and DynValueBox interfaces.
+ */
+ interface DynValueCommon : DynAny {
+ /**
+ * Returns true if the DynValueCommon represents a null value type.
+ */
+ boolean is_null();
+
+ /**
+ * Changes the representation of a DynValueCommon to a null value type.
+ */
+ void set_to_null();
+
+ /**
+ * Replaces a null value type with a newly constructed value. Its components are initialized
+ * to default values as in DynAnyFactory.create_dyn_any_from_type_code.
+ * If the DynValueCommon represents a non-null value type, then this operation has no effect.
+ */
+ void set_to_value();
+ };
+
+ /**
+ * DynValue objects support the manipulation of IDL non-boxed value types.
+ * The DynValue interface can represent both null and non-null value types.
+ * For a DynValue representing a non-null value type, the DynValue's components comprise
+ * the public and private members of the value type, including those inherited from concrete base value types,
+ * in the order of definition. A DynValue representing a null value type has no components
+ * and a current position of -1.
+ * <P>Warning: Indiscriminantly changing the contents of private value type members can cause the value type
+ * implementation to break by violating internal constraints. Access to private members is provided to support
+ * such activities as ORB bridging and debugging and should not be used to arbitrarily violate
+ * the encapsulation of the value type.
+ */
+ interface DynValue : DynValueCommon {
+ #pragma sun_localservant DynValue ""
+
+ /**
+ * Returns the name of the member at the current position.
+ * This operation may return an empty string since the TypeCode of the value being
+ * manipulated may not contain the names of members.
+ *
+ * @exception TypeMismatch if the DynValue represents a null value type.
+ * @exception InvalidValue if the current position does not indicate a member
+ */
+ FieldName current_member_name()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns the TCKind associated with the member at the current position.
+ *
+ * @exception TypeMismatch if the DynValue represents a null value type.
+ * @exception InvalidValue if the current position does not indicate a member
+ */
+ CORBA::TCKind current_member_kind()
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns a sequence of NameValuePairs describing the name and the value of each member
+ * in the value type.
+ * The sequence contains members in the same order as the declaration order of members
+ * as indicated by the DynValue's TypeCode. The current position is not affected.
+ * The member names in the returned sequence will be empty strings if the DynValue's TypeCode
+ * does not contain member names.
+ *
+ * @exception InvalidValue if this object represents a null value type
+ */
+ NameValuePairSeq get_members()
+ raises(InvalidValue);
+
+ /**
+ * Initializes the value type's members from a sequence of NameValuePairs.
+ * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
+ * if an empty sequence is passed, the current position is set to -1.
+ * A null value type can be initialized to a non-null value type using this method.
+ * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification
+ * of the value type as indicated by the DynValue's TypeCode or they must be empty strings.
+ * The operation makes no attempt to assign member values based on member names.
+ *
+ * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
+ * corresponding member name in the DynValue's TypeCode and they are not empty strings
+ * @exception InvalidValue if the passed sequence has a number of elements that disagrees
+ * with the number of members as indicated by the DynValue's TypeCode
+ */
+ void set_members(in NameValuePairSeq value)
+ raises(TypeMismatch, InvalidValue);
+
+ /**
+ * Returns a sequence of NameDynAnyPairs describing the name and the value of each member
+ * in the value type.
+ * The sequence contains members in the same order as the declaration order of members
+ * as indicated by the DynValue's TypeCode. The current position is not affected.
+ * The member names in the returned sequence will be empty strings if the DynValue's TypeCode
+ * does not contain member names.
+ *
+ * @exception InvalidValue if this object represents a null value type
+ */
+ NameDynAnyPairSeq get_members_as_dyn_any()
+ raises(InvalidValue);
+
+ /**
+ * Initializes the value type's members from a sequence of NameDynAnyPairs.
+ * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise,
+ * if an empty sequence is passed, the current position is set to -1.
+ * A null value type can be initialized to a non-null value type using this method.
+ * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification
+ * of the value type as indicated by the DynValue's TypeCode or they must be empty strings.
+ * The operation makes no attempt to assign member values based on member names.
+ *
+ * @exception TypeMismatch if the member names supplied in the passed sequence do not match the
+ * corresponding member name in the DynValue's TypeCode and they are not empty strings
+ * @exception InvalidValue if the passed sequence has a number of elements that disagrees
+ * with the number of members as indicated by the DynValue's TypeCode
+ */
+ void set_members_as_dyn_any(in NameDynAnyPairSeq value)
+ raises(TypeMismatch, InvalidValue);
+ };
+
+ /**
+ * DynValueBox objects support the manipulation of IDL boxed value types.
+ * The DynValueBox interface can represent both null and non-null value types.
+ * For a DynValueBox representing a non-null value type, the DynValueBox has a single component
+ * of the boxed type. A DynValueBox representing a null value type has no components
+ * and a current position of -1.
+ */
+ interface DynValueBox : DynValueCommon {
+
+ /**
+ * Returns the boxed value as an Any.
+ *
+ * @exception InvalidValue if this object represents a null value box type
+ */
+ any get_boxed_value()
+ raises(InvalidValue);
+
+ /**
+ * Replaces the boxed value with the specified value.
+ * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value.
+ *
+ * @exception TypeMismatch if this object represents a non-null value box type and the type
+ * of the parameter is not matching the current boxed value type.
+ */
+ void set_boxed_value(in any boxed)
+ raises(TypeMismatch);
+
+ /**
+ * Returns the boxed value as a DynAny.
+ *
+ * @exception InvalidValue if this object represents a null value box type
+ */
+ DynAny get_boxed_value_as_dyn_any()
+ raises(InvalidValue);
+
+ /**
+ * Replaces the boxed value with the value contained in the parameter.
+ * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value.
+ *
+ * @exception TypeMismatch if this object represents a non-null value box type and the type
+ * of the parameter is not matching the current boxed value type.
+ */
+ void set_boxed_value_as_dyn_any(in DynAny boxed)
+ raises(TypeMismatch);
+ };
+
+ /**
+ * DynAny objects can be created by invoking operations on the DynAnyFactory object.
+ * Generally there are only two ways to create a DynAny object:
+ * <UL>
+ * <LI>invoking an operation on an existing DynAny object
+ * <LI>invoking an operation on a DynAnyFactory object
+ * </UL>
+ * A constructed DynAny object supports operations that enable the creation of new DynAny
+ * objects encapsulating access to the value of some constituent.
+ * DynAny objects also support the copy operation for creating new DynAny objects.
+ * A reference to the DynAnyFactory object is obtained by calling ORB.resolve_initial_references()
+ * with the identifier parameter set to the string constant "DynAnyFactory".
+ * <P>Dynamic interpretation of an any usually involves creating a DynAny object using create_dyn_any()
+ * as the first step. Depending on the type of the any, the resulting DynAny object reference can be narrowed
+ * to a DynFixed, DynStruct, DynSequence, DynArray, DynUnion, DynEnum, or DynValue object reference.
+ * <P>Dynamic creation of an any involves creating a DynAny object using create_dyn_any_from_type_code(),
+ * passing the TypeCode associated with the value to be created. The returned reference is narrowed to one of
+ * the complex types, such as DynStruct, if appropriate. Then, the value can be initialized by means of
+ * invoking operations on the resulting object. Finally, the to_any operation can be invoked
+ * to create an any value from the constructed DynAny.
+ */
+ interface DynAnyFactory {
+ #pragma sun_localservant DynAnyFactory ""
+ exception InconsistentTypeCode {};
+
+ /**
+ * Creates a new DynAny object from an any value.
+ * A copy of the TypeCode associated with the any value is assigned to the resulting DynAny object.
+ * The value associated with the DynAny object is a copy of the value in the original any.
+ * The current position of the created DynAny is set to zero if the passed value has components,
+ * to -1 otherwise
+ *
+ * @exception InconsistentTypeCode if value has a TypeCode with a TCKind of tk_Principal,
+ * tk_native, or tk_abstract_interface
+ */
+ DynAny create_dyn_any(in any value)
+ raises(InconsistentTypeCode);
+
+ /**
+ * Creates a DynAny from a TypeCode. Depending on the TypeCode, the created object may be of type DynAny,
+ * or one of its derived types, such as DynStruct. The returned reference can be narrowed to the derived type.
+ * In all cases, a DynAny constructed from a TypeCode has an initial default value.
+ * The default values of basic types are:
+ * <UL>
+ * <LI>false for boolean
+ * <LI>zero for numeric types
+ * <LI>zero for types octet, char, and wchar
+ * <LI>the empty string for string and wstring
+ * <LI>null for object references
+ * <LI>a type code with a TCKind value of tk_null for type codes
+ * <LI>for any values, an any containing a type code with a TCKind value of tk_null type and no value
+ * </UL>
+ * For complex types, creation of the corresponding DynAny assigns a default value as follows:
+ * <UL>
+ * <LI>For DynSequence it sets the current position to -1 and creates an empty sequence.
+ * <LI>For DynEnum it sets the current position to -1 and sets the value of the enumerator
+ * to the first enumerator value indicated by the TypeCode.
+ * <LI>For DynFixed it sets the current position to -1 and sets the value zero.
+ * <LI>For DynStruct it sets the current position to -1 for empty exceptions
+ * and to zero for all other TypeCodes. The members (if any) are (recursively) initialized
+ * to their default values.
+ * <LI>For DynArray sets the current position to zero and (recursively) initializes elements
+ * to their default value.
+ * <LI>For DynUnion sets the current position to zero. The discriminator value is set
+ * to a value consistent with the first named member of the union. That member is activated and (recursively)
+ * initialized to its default value.
+ * <LI>For DynValue and DynValueBox it initializes to a null value.
+ * </UL>
+ */
+ DynAny create_dyn_any_from_type_code(in CORBA::TypeCode type)
+ raises(InconsistentTypeCode);
+ };
+}; // module DynamicAny
+
+#endif // _DYNAMIC_ANY_IDL_
diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/package.html
new file mode 100644
index 0000000..81c39b3
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/DynamicAny/package.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>Provides classes and interfaces that enable traversal of the data value
+ associated with an <code>any</code> at
+runtime, and extraction of the primitive constituents of the data value.
+
+
+<P>An <code>any</code> can be passed to a program that doesn't have any static information
+for the type of the <code>any</code> (code generated for the type by an IDL compiler has not
+been compiled with the object implementation). As a result, the object receiving the
+<code>any</code> does not have a portable method of using it.
+
+<P><code>DynAny</code>s enable traversal of the data value associated with an
+<code>any</code> at runtime, and extraction of the primitive constituents of the data value.
+This is especially helpful for writing powerful generic servers (bridges, event channels
+supporting filtering). Similarly, this facility enables the construction of an
+<code>any</code> at runtime, without having static knowledge of its type. This is especially
+helpful for writing generic clients (bridges, browsers, debuggers, user interface tools).
+
+<P><code>Any</code> values can be dynamically interpreted (traversed) and constructed through
+<code>DynAny</code> objects. A <code>DynAny</code> object is associated with a data
+value which corresponds to a copy of the value inserted into an <code>Any</code>. A
+<code>DynAny</code> object may be viewed as an ordered collection of component
+<code>DynAny</code>s. For <code>DynAny</code>s representing a basic type, such as <code>long</code>,
+or a type without components, such as an empty exception, the ordered collection of
+components is empty.
+
+<P>Each <code>DynAny</code> object maintains the notion of a current position into its collection
+of component <code>DynAny</code>s. The current position is identified by an index value that runs
+from 0 to n-1, where <em>n</em> is the number of components. The special index value -1
+indicates a current position that points nowhere.
+ For values that cannot have a current position (such as an empty exception),
+ the index value is fixed at -1.
+ If a <code>DynAny</code> is initialized with a value that has components, the index is
+initialized to 0.
+ After creation of an uninitialized <code>DynAny</code> (that is, a <code>DynAny</code> that
+has no value but a <code>TypeCode</code>
+ that permits components), the current position depends on the type of value represented by
+ the <code>DynAny</code>. (The current position is set to 0 or -1, depending on whether the
+new <code>DynAny</code>
+ gets default values for its components.)
+
+
+<P>The iteration operations <code>rewind</code>, <code>seek</code>, and <code>next</code>
+can be used to change the current position
+ and the <code>current_component</code> operation returns the component at the current
+position.
+ The <code>component_count</code> operation returns the number of components of a
+<code>DynAny</code>.
+ Collectively, these operations enable iteration over the components of a
+<code>DynAny</code>, for example,
+ to (recursively) examine its contents.
+
+
+ <P>A constructed <code>DynAny</code> object is a <code>DynAny</code> object associated with
+a constructed type.
+ There is a different interface, inheriting from the <code>DynAny</code> interface,
+associated with
+ each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array,
+ exception, and value type). A constructed <code>DynAny</code> object exports operations
+that enable the creation of new <code>DynAny</code> objects,
+ each of them associated with a component of the constructed data value.
+ As an example, a <code>DynStruct</code> is associated with a <code>struct</code> value. This
+means that the <code>DynStruct</code>
+ may be seen as owning an ordered collection of components, one for each structure member.
+ The <code>DynStruct</code> object exports operations that enable the creation of new
+<code>DynAny</code> objects,
+ each of them associated with a member of the <code>struct</code>.
+
+
+<P>If a <code>DynAny</code> object has been obtained from another (constructed)
+<code>DynAny</code> object,
+ such as a <code>DynAny</code> representing a structure member that was created from a
+<code>DynStruct</code>,
+ the member <code>DynAny</code> is logically contained in the <code>DynStruct</code>.
+ Calling an <code>insert</code> or <code>get</code> operation leaves the current position
+unchanged.
+ Destroying a top-level <code>DynAny</code> object (one that was not obtained as a component
+of another <code>DynAny</code>)
+ also destroys any component <code>DynAny</code> objects obtained from it.
+ Destroying a non-top level <code>DynAny</code> object does nothing.
+ Invoking operations on a destroyed top-level <code>DynAny</code> or any of its descendants
+raises OBJECT_NOT_EXIST.
+ If the programmer wants to destroy a <code>DynAny</code> object but still wants to
+manipulate some component
+ of the data value associated with it, then he or she should first create a
+<code>DynAny</code> for the component
+ and, after that, make a copy of the created <code>DynAny</code> object.
+
+
+<P>The behavior of <code>DynAny</code> objects has been defined in order to enable efficient
+implementations
+in terms of allocated memory space and speed of access. <code>DynAny</code> objects are
+intended to be used
+for traversing values extracted from <code>any</code>s or constructing values of
+<code>any</code>s at runtime.
+Their use for other purposes is not recommended.
+
+
+
+ <H2>Handling DynAny objects</H2>
+
+<P><code>Insert</code> and <code>get</code> operations are necessary to handle basic
+<code>DynAny</code> objects
+ but are also helpful to handle constructed <code>DynAny</code> objects.
+ Inserting a basic data type value into a constructed <code>DynAny</code> object
+ implies initializing the current component of the constructed data value
+ associated with the <code>DynAny</code> object. For example, invoking
+<code>insert_boolean</code> on a
+ <code>DynStruct</code> implies inserting a <code>boolean</code> data value at the current
+position
+ of the associated <code>struct</code> data value.
+ A type is consistent for inserting or extracting a value if its <code>TypeCode</code> is
+equivalent to
+ the <code>TypeCode</code> contained in the <code>DynAny</code> or, if the
+<code>DynAny</code> has components, is equivalent to the <code>TypeCode</code>
+ of the <code>DynAny</code> at the current position.
+
+ <P>Basic operations include:
+ <UL>
+ <LI>insert_boolean, get_boolean
+ <LI>insert_char, get_char
+ <LI>insert_short, get_short
+ <LI>insert_ushort, get_ushort
+ <LI>insert_long, get_long
+ <LI>insert_ulong, get_ulong
+ <LI>insert_double, get_double
+ <LI>insert_string, get_string
+ <LI>insert_reference, get_reference
+ <LI>insert_typecode, get_typecode
+ <LI>insert_longlong, get_longlong
+ <LI>insert_ulonglong, get_ulonglong
+ <LI>insert_longdouble, get_longdouble
+ <LI>insert_wchar, get_wchar
+ <LI>insert_wstring, get_wstring
+ <LI>insert_any, get_any
+ <LI>insert_dyn_any, get_dyn_any
+ <LI>insert_val, get_val
+ <LI>insert_octet, get_octet
+ <LI>insert_float, get_float
+ <LI>get_value
+ <LI>get_as_string
+ <LI>get_as_ulong
+ <LI>get_members
+ <LI>get_members_as_dyn_any
+ <LI>get_discriminator
+ <LI>get_length
+ <LI>get_elements
+ <LI>get_elements_as_dyn_any
+ <LI>get_boxed_value
+ <LI>get_boxed_value_as_dyn_any
+ </UL>
+
+
+ <P><code>DynAny</code> and <code>DynAnyFactory</code> objects are intended to be local to
+the process in which they are
+ created and used. This means that references to <code>DynAny</code> and
+<code>DynAnyFactory</code> objects cannot be exported
+ to other processes, or externalized with <code>ORB.object_to_string()</code>.
+ If any attempt is made to do so, the offending operation will raise a MARSHAL system
+exception.
+ Since their interfaces are specified in IDL, <code>DynAny</code> objects export operations
+defined in the standard
+ <code>org.omg.CORBA.Object</code> interface. However, any attempt to invoke operations
+exported through the <code>Object</code>
+ interface may raise the standard NO_IMPLEMENT exception.
+ An attempt to use a <code>DynAny</code> object with the DII may raise the NO_IMPLEMENT
+exception.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html b/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html
new file mode 100644
index 0000000..6962336
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the exceptions
+specified in the IOP::CodeFactory interface (as part of the Portable
+ Interceptors spec).
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html b/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html
new file mode 100644
index 0000000..d86dfb1
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package is generated from the IOP::Codec IDL interface
+definition. It contains the Java representations of the IDL exceptions
+specified in IOP::Codec (as part of the Portable Interceptors
+specification).
+ Please
+refer to that OMG specification for further details.
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/IOP/package.html b/src/java.corba/share/classes/org/omg/IOP/package.html
new file mode 100644
index 0000000..dce0d26
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/IOP/package.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the <code>IOP</code> module specified in the OMG document
+<em>The Common
+Object Request Broker: Architecture and Specification</em>,
+<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">
+formal/99-10-07</a>, section 13.6. Please
+refer to that OMG specification for further details.
+
+<P>Please note that we do not provide all parts of the <code>IOP</code> module from
+the specification. We only provide those parts that are referenced as
+return values or parameter types in public APIs, most notably,
+Portable Interceptors.
+
+
+
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/Messaging/package.html b/src/java.corba/share/classes/org/omg/Messaging/package.html
new file mode 100644
index 0000000..05ead25
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/Messaging/package.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the <code>Messaging</code> module specified in the OMG CORBA
+Messaging specification,
+<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">
+formal/99-10-07</a>. Please refer to that OMG
+specification for further details.
+
+<P>Please note that we do not provide all parts of the <code>Messaging</code> module from
+the specification. We only provide those parts that are referenced as
+return values or parameter types in public APIs, most notably,
+Portable Interceptors.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl
new file mode 100644
index 0000000..dd12081
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef _CORBAX_IDL_
+#define _CORBAX_IDL_
+
+#pragma prefix "omg.org"
+
+module CORBA {
+ /**
+ * Enumeration of parameter modes for Parameter. Possible vaues:
+ * <ul>
+ * <li>PARAM_IN - Represents an "in" parameter.</li>
+ * <li>PARAM_OUT - Represents an "out" parameter.</li>
+ * <li>PARAM_INOUT - Represents an "inout" parameter.</li>
+ * </ul>
+ */
+ enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT};
+
+ /** An array of Strings */
+ typedef sequence <string> StringSeq;
+
+ /** An array of WStrings */
+ typedef sequence <wstring> WStringSeq;
+
+ /** A byte array */
+ typedef sequence <octet> OctetSeq;
+
+ /** Repository ID, represented as a String */
+ typedef string RepositoryId;
+
+ /**
+ * Encapsulates a reason a Policy may be invalid.
+ *
+ * @see PolicyError
+ */
+ typedef short PolicyErrorCode;
+
+ /**
+ * Thrown to indicate problems with parameter values passed to the
+ * <code>ORB.create_policy</code> operation.
+ */
+ exception PolicyError { PolicyErrorCode reason; };
+};
+
+
+#endif // _CORBAX_IDL_
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl
new file mode 100644
index 0000000..3dc071d
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl
@@ -0,0 +1,617 @@
+/*
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef _IOP_IDL_
+#define _IOP_IDL_
+
+#include "CORBAX.idl"
+
+#pragma prefix "omg.org"
+
+#ifndef CORBA3
+#define local
+#endif
+
+module IOP {
+ //
+ // Standard Protocol Profile tag values
+ //
+ /** Profile ID */
+ typedef unsigned long ProfileId;
+
+ /**
+ * Identifies profiles that
+ * support the Internet Inter-ORB Protocol. The <code>ProfileBody</code>
+ * of this profile contains a CDR encapsulation of a structure
+ * containing addressing and object identification information used by
+ * IIOP. Version 1.1 of the <code>TAG_INTERNET_IOP</code> profile
+ * also includes an array of TaggedComponent objects that can
+ * contain additional information supporting optional IIOP features,
+ * ORB services such as security, and future protocol extensions.
+ * <p>
+ * Protocols other than IIOP (such as ESIOPs and other GIOPs) can share
+ * profile information (such as object identity or security
+ * information) with IIOP by encoding their additional profile information
+ * as components in the <code>TAG_INTERNET_IOP</code> profile. All
+ * <code>TAG_INTERNET_IOP</code> profiles support IIOP, regardless of
+ * whether they also support additional protocols. Interoperable
+ * ORBs are not required to create or understand any other profile,
+ * nor are they required to create or understand any of the components
+ * defined for other protocols that might share the
+ * <code>TAG_INTERNET_IOP</code> profile with IIOP.
+ * <p>
+ * The <code>profile_data</code> for the <code>TAG_INTERNET_IOP</code>
+ * profile is a CDR encapsulation of the <code>IIOP.ProfileBody_1_1</code>
+ * type.
+ */
+ const ProfileId TAG_INTERNET_IOP = 0;
+
+ /**
+ * Indicates that the value encapsulated is of type
+ * <code>MultipleComponentProfile</code>. In this case, the profile
+ * consists of a list of protocol components, the use of which must
+ * be specified by the protocol using this profile. This profile may
+ * be used to carry IOR components.
+ * <p>
+ * The <code>profile_data</code> for the
+ * <code>TAG_MULTIPLE_COMPONENTS</code> profile is a CDR encapsulation
+ * of the <code>MultipleComponentProfile</code> type shown above.
+ */
+ const ProfileId TAG_MULTIPLE_COMPONENTS = 1;
+
+ /**
+ * Object references have at least one tagged profile. Each profile
+ * supports one or more protocols and encapsulates all the basic
+ * information the protocols it supports need to identify an object.
+ * Any single profile holds enough information to drive a complete
+ * invocation using any of the protocols it supports; the content
+ * and structure of those profile entries are wholly specified by
+ * these protocols.
+ */
+ struct TaggedProfile {
+ /** The tag, represented as a profile id. */
+ ProfileId tag;
+
+ /** The associated profile data. */
+ sequence <octet> profile_data;
+ };
+
+ /**
+ * Captures information about a object references, such as whether the
+ * object is null, what type it is, what protocols are supported, and what
+ * ORB services are available.
+ * <p>
+ * This data structure need not be used internally to any given ORB,
+ * and is not intended to be visible to application-level ORB programmers.
+ * It should be used only when crossing object reference domain
+ * boundaries, within bridges.
+ * <p>
+ * This data structure is designed to be efficient in typical
+ * single-protocol configurations, while not penalizing multiprotocol ones.
+ * <p>
+ * Object references have at least one tagged profile. Each profile
+ * supports one or more protocols and encapsulates all the basic
+ * information the protocols it supports need to identify an object.
+ * Any single profile holds enough information to drive a complete
+ * invocation using any of the protocols it supports; the content
+ * and structure of those profile entries are wholly specified by
+ * these protocols. A bridge between two domains may need to know the
+ * detailed content of the profile for those domains' profiles,
+ * depending on the technique it uses to bridge the domains.
+ * <p>
+ * Each profile has a unique numeric tag, assigned by the OMG.
+ * Profile tags in the range 0x80000000 through 0xffffffff are reserved
+ * for future use, and are not currently available for assignment.
+ * <p>
+ * Null object references are indicated by an empty set of profiles,
+ * and by a "Null" type ID (a string which contains only a single
+ * terminating character). A Null <code>TypeID</code> is the only
+ * mechanism that can be used to represent the type
+ * <code>CORBA.Object</code>. Type IDs may only be "Null" in any message,
+ * requiring the client to use existing knowledge or to consult the
+ * object, to determine interface types supported. The type ID
+ * is a Repository ID identifying the interface type, and is provided
+ * to allow ORBs to preserve strong typing. This identifier is agreed
+ * on within the bridge and, for reasons outside the scope of the
+ * interoperability specification, needs to have a much broader scope to
+ * address various problems in system evolution and maintenance.
+ * Type IDs support detection of type equivalence, and in conjunction
+ * with an Interface Repository, allow processes to reason about the
+ * relationship of the type of the object referred to and any other type.
+ * <p>
+ * The type ID, if provided by the server, indicates the most derived
+ * type that the server wishes to publish, at the time the reference
+ * is generated. The object's actual most derived type may later change
+ * to a more derived type. Therefore, the type ID in the IOR can only
+ * be interpreted by the client as a hint that the object supports at
+ * least the indicated interface. The client can succeed in narrowing
+ * the reference to the indicated interface, or to one of its base
+ * interfaces, based solely on the type ID in the IOR, but must not fail
+ * to narrow the reference without consulting the object via the
+ * "_is_a" or "_get_interface" pseudo-operations.
+ */
+ struct IOR {
+ /** The type id, represented as a String. */
+ string type_id;
+
+ /**
+ * An array of tagged profiles associated with this
+ * object reference.
+ */
+ sequence <TaggedProfile> profiles;
+ };
+
+ /**
+ * Standard way of representing multicomponent profiles.
+ * This would be encapsulated in a TaggedProfile.
+ */
+ typedef unsigned long ComponentId;
+
+ /**
+ * <code>TaggedComponents</code> contained in
+ * <code>TAG_INTERNET_IOP</code> and
+ * <code>TAG_MULTIPLE_COMPONENTS</code> profiles are identified by
+ * unique numeric tags using a namespace distinct form that is used for
+ * profile tags. Component tags are assigned by the OMG.
+ * <p>
+ * Specifications of components must include the following information:
+ * <ul>
+ * <li><i>Component ID</i>: The compound tag that is obtained
+ * from OMG.</li>
+ * <li><i>Structure and encoding</i>: The syntax of the component
+ * data and the encoding rules. If the component value is
+ * encoded as a CDR encapsulation, the IDL type that is
+ * encapsulated and the GIOP version which is used for encoding
+ * the value, if different than GIOP 1.0, must be specified as
+ * part of the component definition.</li>
+ * <li><i>Semantics</i>: How the component data is intended to be
+ * used.</li>
+ * <li><i>Protocols</i>: The protocol for which the component is
+ * defined, and whether it is intended that the component be
+ * usable by other protocols.</li>
+ * <li><i>At most once</i>: whether more than one instance of this
+ * component can be included in a profile.</li>
+ * </ul>
+ * Specification of protocols must describe how the components affect
+ * the protocol. The following should be specified in any protocol
+ * definition for each <code>TaggedComponent</code> that the protocol uses:
+ * <ul>
+ * <li><i>Mandatory presence</i>: Whether inclusion of the component
+ * in profiles supporting the protocol is required (MANDATORY
+ * PRESENCE) or not required (OPTIONAL PRESENCE).</li>
+ * <li><i>Droppable</i>: For optional presence component, whether
+ * component, if present, must be retained or may be dropped.</li>
+ * </ul>
+ */
+ struct TaggedComponent {
+ /** The tag, represented as a component id. */
+ ComponentId tag;
+
+ /** The component data associated with the component id. */
+ sequence <octet> component_data;
+ };
+
+ /**
+ * It is often useful in the real world to be able to identify the
+ * particular kind of ORB an object reference is coming from, to work
+ * around problems with that particular ORB, or exploit shared
+ * efficiencies.
+ * <p>
+ * The <code>TAG_ORB_TYPE</code> component has an associated value of
+ * type unsigned long (Java long), encoded as a CDR encapsulation,
+ * designating an ORB type ID allocated by the OMG for the ORB type of the
+ * originating ORB. Anyone may register any ORB types by submitting
+ * a short (one-paragraph) description of the ORB type to the OMG,
+ * and will receive a new ORB type ID in return. A list of ORB type
+ * descriptions and values will be made available on the OMG web server.
+ * <p>
+ * The <code>TAG_ORB_TYPE</code> component can appear at most once in
+ * any IOR profile. For profiles supporting IIOP 1.1 or greater, it
+ * is optionally present.
+ */
+ const ComponentId TAG_ORB_TYPE = 0 ;
+
+ /**
+ * The code set component of the IOR multi-component profile structure
+ * contains:
+ * <ul>
+ * <li>server's native char code set and conversion code sets, and</li>
+ * <li>server's native wchar code set and conversion code sets.</li>
+ * </ul>
+ * Both char and wchar conversion code sets are listed in order of
+ * preference.
+ */
+ const ComponentId TAG_CODE_SETS = 1 ;
+
+ /**
+ * A profile component containing the sequence of QoS policies exported
+ * with the object reference by an object adapter.
+ */
+ const ComponentId TAG_POLICIES = 2 ;
+
+ /**
+ * In cases where the same object key is used for more than one
+ * internet location, the following standard IOR Component is defined
+ * for support in IIOP version 1.2.
+ * <p>
+ * The <code>TAG_ALTERNATE_IIOP_ADDRESS</code> component has an
+ * associated value of type:
+ * <pre>
+ * <code>
+ * struct {
+ * string HostID,
+ * short Port
+ * };
+ * </code>
+ * </pre>
+ * encoded as a CDR encapsulation.
+ * <p>
+ * Zero or more instances of the <code>TAG_ALTERNATE_IIOP_ADDRESS</code>
+ * component type may be included in a version 1.2
+ * <code>TAG_INTERNET_IOP</code> Profile. Each of these alternative
+ * addresses may be used by the client orb, in addition to the host
+ * and port address expressed in the body of the Profile. In cases
+ * where one or more <code>TAG_ALTERNATE_IIOP_ADDRESS</code> components
+ * are present in a <code>TAG_INTERNET_IOP</code> Profile, no order of
+ * use is prescribed by Version 1.2 of IIOP.
+ */
+ const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3 ;
+
+ /**
+ * Class downloading is supported for stubs, ties, values, and
+ * value helpers. The specification allows transmission of codebase
+ * information on the wire for stubs and ties, and enables usage of
+ * pre-existing ClassLoaders when relevant.
+ * <p>
+ * For values and value helpers, the codebase is transmitted after the
+ * value tag. For stubs and ties, the codebase is transmitted as
+ * the TaggedComponent <code>TAG_JAVA_CODEBASE</code> in the IOR
+ * profile, where the <code>component_data</code> is a CDR encapsulation
+ * of the codebase written as an IDL string. The codebase is a
+ * space-separated list of one or more URLs.
+ */
+ const ComponentId TAG_JAVA_CODEBASE = 25 ;
+
+ /**
+ * RMI-IIOP has multiple stream format versions. A server
+ * can specify its maximum version by including the
+ * TAG_RMI_CUSTOM_MAX_STREAM_FORMAT tagged component or
+ * rely on the default of version 1 for GIOP 1.2 and less
+ * and version 2 for GIOP 1.3 and higher.
+ *
+ * See Java to IDL ptc/02-01-12 1.4.11.
+ */
+ const ComponentId TAG_RMI_CUSTOM_MAX_STREAM_FORMAT = 38 ;
+
+ /** An array of tagged components, forming a multiple component profile. */
+ typedef sequence <TaggedComponent> MultipleComponentProfile;
+
+ /** A service id, represented as an int */
+ typedef unsigned long ServiceId;
+
+ /**
+ * Service-specific information to be passed implicitly with requests
+ * and replies. Service contexts are composed of service ids and
+ * associated data.
+ */
+ struct ServiceContext {
+ /** The service context id */
+ ServiceId context_id;
+
+ /** The data associated with this service context */
+ sequence <octet> context_data;
+ };
+
+ /** An array of service contexts, forming a service context list. */
+ typedef sequence <ServiceContext>ServiceContextList;
+
+ /**
+ * Identifies a CDR encapsulation of the
+ * <code>CosTSInteroperation.PropogationContext</code> defined in
+ * <i>CORBAservices: Common Object Services Specifications.</i>
+ */
+ const ServiceId TransactionService = 0;
+
+ /**
+ * Identifies a CDR encapsulation of the
+ * <code>CONV_FRAME.CodeSetContext</code> defined in
+ * Section 13.10.2.5, "GIOP Code Set Service Context," on page 13-43.
+ */
+ const ServiceId CodeSets = 1;
+
+ /**
+ * Identifies a CDR encapsulation of the RMICustomMaxStreamFormat
+ * service context which contains a single byte specifying
+ * the client's maximum RMI-IIOP stream format version.
+ *
+ * See Java to IDL ptc/02-01-12 1.4.12.
+ */
+ const ServiceId RMICustomMaxStreamFormat = 17 ;
+
+ /**
+ * DCOM-CORBA Interworking uses three service contexts as defined in
+ * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
+ * Systems" chapter.
+ * <p>
+ * <code>ChainBypassCheck</code> carries a CDR encapsulation of the
+ * <code>struct CosBridging.ChainBypassCheck</code>. This is carried
+ * only in a Request message as described in Section 20.9.1, "CORBA
+ * Chain Bypass," on page 20-19.
+ */
+ const ServiceId ChainBypassCheck = 2;
+
+ /**
+ * DCOM-CORBA Interworking uses three service contexts as defined in
+ * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
+ * Systems" chapter.
+ * <p>
+ * <code>ChainBypassInfo</code> carries a CDR encapsulation of the
+ * <code>struct CosBridging.ChainBypassInfo</code>. This is carried
+ * only in a Reply message as described in Section 20.9.1, "CORBA Chain
+ * Bypass," on page 20-19.
+ */
+ const ServiceId ChainBypassInfo = 3;
+
+ /**
+ * DCOM-CORBA Interworking uses three service contexts as defined in
+ * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
+ * Systems" chapter.
+ * <p>
+ * <code>LogicalThreadId</code>, carries a CDR encapsulation of
+ * the <code>struct CosBridging.LogicalThreadId</code> as described
+ * in Section 20.10, "Thread Identification," on page 20-21.
+ */
+ const ServiceId LogicalThreadId = 4;
+
+ /**
+ * Identifies a CDR encapsulation of the
+ * <code>IIOP.BiDirIIOPServiceContext</code> defined in Section 15.8,
+ * "Bi-Directional GIOP," on page 15-55.
+ */
+ const ServiceId BI_DIR_IIOP = 5;
+
+ /**
+ * Identifies a CDR encapsulation of the IOR of the
+ * <code>SendingContext.RunTime</code> object (see Section 5.6, "Access
+ * to the Sending Context Run Time," on page 5-15).
+ */
+ const ServiceId SendingContextRunTime = 6;
+
+ /**
+ * For information on <code>INVOCATION_POLICIES</code> refer to the
+ * Asynchronous Messaging specification - orbos/98-05-05.
+ */
+ const ServiceId INVOCATION_POLICIES = 7;
+
+ /**
+ * For information on <code>FORWARDED_IDENTITY</code> refer to the
+ * Firewall specification - orbos/98-05-04.
+ */
+ const ServiceId FORWARDED_IDENTITY = 8;
+
+ /**
+ * Identifies a CDR encapsulation of a marshaled instance of a
+ * java.lang.Throwable or one of its subclasses as described in Java
+ * to IDL Language Mapping, Section 1.4.8.1, "Mapping of
+ * UnknownExceptionInfo Service Context," on page 1-32.
+ */
+ const ServiceId UnknownExceptionInfo = 9;
+
+ /**
+ * CORBA formal/02-06-01: 13.7.1:
+ * ExceptionDetailMessage identifies a CDR encapsulation of a wstring,
+ * encoded using GIOP 1.2 with a TCS-W of UTF-16. This service context
+ * may be sent on Reply messages with a reply_status of SYSTEM_EXCEPTION
+ * or USER_EXCEPTION. The usage of this service context is defined
+ * by language mappings. <br> <br>
+ *
+ * IDL/Java: ptc/02-01-22: 1.15.2:
+ * When a System Exception is marshaled, its GIOP Reply message shall
+ * include an associated ExceptionDetailMessage service context. The
+ * callee's stack trace is often very valuable debugging information but
+ * may contain sensitive or unwanted information. The wstring within the
+ * service context will therefore contain additional information relating
+ * to the exception, for example the result of calling either
+ * printStackTrace(PrintWriter) or getMessage() on the exception. When
+ * unmarshaling a System Exception on the client side, the wstring from
+ * any ExceptionDetailMessage service context shall become the Java error
+ * message in the unmarshaled exception object.
+ */
+ const ServiceId ExceptionDetailMessage = 14;
+
+
+ // BEGIN part which lived in Interceptors.idl.
+
+ /**
+ * An array of <code>TaggedComponent</code> objects.
+ */
+ typedef sequence<IOP::TaggedComponent> TaggedComponentSeq;
+
+ /**
+ * The formats of IOR components and service context data used by ORB
+ * services are often defined as CDR encapsulations encoding instances
+ * of IDL defined data types. The <code>Codec</code> provides a mechanism
+ * to transfer these components between their IDL data types and their CDR
+ * encapsulation representations.
+ * <p>
+ * A <code>Codec</code> is obtained from the <code>CodecFactory</code>.
+ * The <code>CodecFactory</code> is obtained through a call to
+ * <code>ORB.resolve_initial_references( "CodecFactory" )</code>.
+ */
+ local interface Codec {
+
+ /**
+ * This exception is thrown by <code>Codec.encode</code> or
+ * <code>Codec.encode_value</code> when the type is invalid for the
+ * encoding. For example, this exception is thrown if the encoding is
+ * <code>ENCODING_CDR_ENCAPS</code> version 1.0 and a type
+ * that does not exist in that version, such as <code>wstring</code>,
+ * is passed to the operation.
+ */
+ exception InvalidTypeForEncoding {};
+
+ /**
+ * This exception is thrown by <code>Codec.decode</code> or
+ * <code>Codec.decode_value</code> when the data in the byte array
+ * cannot be decoded into an Any.
+ */
+ exception FormatMismatch {};
+
+ /**
+ * This exception is thrown by <code>decode_value</code> when the given
+ * <code>TypeCode</code> does not match the given byte array.
+ */
+ exception TypeMismatch {};
+
+ /**
+ * Converts the given any into a byte array based on the encoding
+ * format effective for this <code>Codec</code>.
+ *
+ * @param data The data, in the form of an any, to be encoded into
+ * a byte array.
+ * @return A byte array containing the encoded Any. This byte array
+ * contains both the <code>TypeCode</code> and the data of the type.
+ * @exception InvalidTypeForEncoding thrown if the type is not valid for
+ * the encoding format effective for this <code>Codec</code>.
+ */
+ CORBA::OctetSeq encode (in any data)
+ raises (InvalidTypeForEncoding);
+
+ /**
+ * Decodes the given byte array into an Any based on the encoding
+ * format effective for this <code>Codec</code>.
+ *
+ * @param data The data, in the form of a byte array, to be decoded into
+ * an Any.
+ * @return An Any containing the data from the decoded byte array.
+ * @exception FormatMismatch is thrown if the byte array cannot be
+ * decoded into an Any.
+ */
+ any decode (in CORBA::OctetSeq data) raises (FormatMismatch);
+
+ /**
+ * Converts the given any into a byte array based on the encoding
+ * format effective for this Codec. Only the data from the Any is
+ * encoded, not the <code>TypeCode</code>.
+ *
+ * @param data The data, in the form of an Any, to be encoded into
+ * a byte array.
+ * @return A byte array containing the data from the encoded any.
+ * @exception InvalidTypeForEncoding thrown if the type is not valid for
+ * the encoding format effective for this <code>Codec</code>.
+ */
+ CORBA::OctetSeq encode_value (in any data)
+ raises (InvalidTypeForEncoding);
+
+ /**
+ * Decodes the given byte array into an Any based on the given
+ * <code>TypeCode</code> and the encoding format effective for
+ * this <code>Codec</code>.
+ *
+ * @param data The data, in the form of a byte array, to be decoded
+ * into an Any.
+ * @param tc The TypeCode to be used to decode the data.
+ * @return An Any containing the data from the decoded byte array.
+ * @exception FormatMismatch thrown if the byte array cannot be
+ * decoded into an Any.
+ */
+ any decode_value (in CORBA::OctetSeq data, in CORBA::TypeCode tc)
+ raises (FormatMismatch, TypeMismatch);
+ };
+
+ /**
+ * Defines an encoding format of a <code>Codec</code>, such as
+ * CDR Encapsulation (<code>ENCODING_CDR_ENCAPS</code>).
+ */
+ typedef short EncodingFormat;
+
+ /**
+ * The CDR Encapsulation encoding.
+ * @see CodecFactory
+ */
+ const EncodingFormat ENCODING_CDR_ENCAPS = 0;
+
+ /**
+ * Defines the encoding format of a <code>Codec</code>. This class
+ * details the encoding format, such as CDR Encapsulation encoding, and
+ * the major and minor versions of that format.
+ * <p>
+ * The encodings currently supported are:
+ * <ul>
+ * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.0;</li>
+ * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.1;</li>
+ * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.2;</li>
+ * <li><code>ENCODING_CDR_ENCAPS</code> for all future versions of GIOP as
+ * they arise.</li>
+ * </ul>
+ * Vendors are free to support additional encodings.
+ *
+ * @see ENCODING_CDR_ENCAPS
+ */
+ struct Encoding {
+ /**
+ * The encoding format.
+ */
+ EncodingFormat format;
+
+ /**
+ * The major version of this Encoding format.
+ */
+ octet major_version;
+
+ /**
+ * The minor version of this Encoding format.
+ */
+ octet minor_version;
+ };
+
+ /**
+ * <code>Codecs</code> are obtained from the <code>CodecFactory</code>.
+ * The <code>CodecFactory</code> is obtained through a call to
+ * <code>ORB.resolve_initial_references( "CodecFactory" )</code>.
+ */
+ local interface CodecFactory {
+ /**
+ * This exception is thrown by <code>CodecFactory.create_codec</code> when
+ * the factory cannot create a <code>Codec</code> for a given encoding.
+ */
+ exception UnknownEncoding {};
+
+ /**
+ * Create a <code>Codec</code> of the given encoding.
+ *
+ * @param enc The encoding for which to create a <code>Codec</code>.
+ * @return A <code>Codec</code> obtained with the given encoding.
+ * @exception UnknownEncoding thrown if this factory cannot create a
+ * <code>Codec</code> of the given encoding.
+ */
+ Codec create_codec (in Encoding enc) raises (UnknownEncoding);
+ };
+
+ // END part which lived in Interceptors.idl.
+
+};
+
+#endif // _IOP_IDL_
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl
new file mode 100644
index 0000000..ca2612e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl
@@ -0,0 +1,2214 @@
+/*
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * Differences from original:
+ *
+ * - do not include orb.idl
+ * - include IOP.idl, Messaging.idl and CORBAX.idl
+ * - renamed component parameter names to tagged_component (so that they
+ * do not conflict with the CORBA 3.0 "component" keyword).
+ * - javadocs added (synchronized with orbos/00-08-06)
+ *
+ * NOTE: After compilation of this IDL file, all Helper and Holder classes
+ * that are not needed are removed.
+ */
+#include "IOP.idl"
+#include "Messaging.idl"
+#include "CORBAX.idl"
+#include "corba.idl"
+
+#pragma prefix "omg.org"
+
+#ifndef CORBA3
+#define local
+#endif
+
+module Dynamic {
+
+ /**
+ * <code>NVList</code> PIDL represented by <code>ParameterList</code> IDL.
+ * This exists in order to keep the Portable Interceptor IDL from becoming
+ * PIDL.
+ */
+ struct Parameter {
+ any argument;
+ CORBA::ParameterMode mode;
+ };
+
+ /**
+ * <code>NVList</code> PIDL represented by <code>ParameterList</code> IDL.
+ * This exists in order to keep the Portable Interceptor IDL from becoming
+ * PIDL.
+ */
+ typedef sequence<Parameter> ParameterList;
+
+ /**
+ * <code>ContextList</code> PIDL represented by <code>ContextList</code>
+ * IDL. This exists in order to keep the Portable Interceptor IDL from
+ * becoming PIDL.
+ */
+ typedef CORBA::StringSeq ContextList;
+
+ /**
+ * <code>ExceptionList</code> PIDL represented by <code>ExceptionList</code>
+ * IDL. This exists in order to keep the Portable Interceptor IDL from
+ * becoming PIDL.
+ */
+ typedef sequence<CORBA::TypeCode> ExceptionList;
+
+ /**
+ * <code>Context</code> PIDL represented by <code>RequestContext</code>
+ * IDL. This exists in order to keep the Portable Interceptor IDL from o
+ * becoming PIDL.
+ * <p>
+ * <code>Context</code> objects are encoded as <code>String[]</code>. The
+ * <code>Strings</code> occur in pairs. The first <code>String</code> in
+ * each pair is the context property name and the second <code>String</code>
+ * in each pair is the associated value.
+ */
+ typedef CORBA::StringSeq RequestContext;
+};
+
+module PortableInterceptor {
+ /**
+ * All Portable Interceptors implement Interceptor.
+ */
+ local interface Interceptor {
+ /**
+ * Returns the name of the interceptor.
+ * <p>
+ * Each Interceptor may have a name that may be used administratively
+ * to order the lists of Interceptors. Only one Interceptor of a given
+ * name can be registered with the ORB for each Interceptor type. An
+ * Interceptor may be anonymous, i.e., have an empty string as the name
+ * attribute. Any number of anonymous Interceptors may be registered with
+ * the ORB.
+ *
+ * @return the name of the interceptor.
+ */
+ readonly attribute string name;
+
+ // Added in ptc/00-08-06
+ /**
+ * Provides an opportunity to destroy this interceptor.
+ * The destroy method is called during <code>ORB.destroy</code>. When an
+ * application calls <code>ORB.destroy</code>, the ORB:
+ * <ol>
+ * <li>waits for all requests in progress to complete</li>
+ * <li>calls the <code>Interceptor.destroy</code> operation for each
+ * interceptor</li>
+ * <li>completes destruction of the ORB</li>
+ * </ol>
+ * Method invocations from within <code>Interceptor.destroy</code> on
+ * object references for objects implemented on the ORB being destroyed
+ * result in undefined behavior. However, method invocations on objects
+ * implemented on an ORB other than the one being destroyed are
+ * permitted. (This means that the ORB being destroyed is still capable
+ * of acting as a client, but not as a server.)
+ */
+ void destroy();
+ };
+
+
+ /**
+ * The <code>ForwardRequest</code> exception is the means by which an
+ * Interceptor can indicate to the ORB that a retry of the request should
+ * occur with the new object given in the exception. This behavior of
+ * causing a retry only occurs if the ORB receives a ForwardRequest from
+ * an interceptor. If <code>ForwardRequest</code> is thrown anywhere else
+ * it is passed through the ORB as is normal for a user exception.
+ * <p>
+ * If an Interceptor throws a <code>ForwardRequest</code> exception in
+ * response to a call of an interceptor, no other Interceptors are called
+ * for that interception point. The remaining Interceptors in the Flow Stack
+ * shall have their appropriate ending interception point called:
+ * <code>receive_other</code> on the client, or <code>send_other</code> on
+ * the server. The <code>reply_status</code> in the
+ * <code>receive_other</code> or <code>send_other</code> would be
+ * <code>LOCATION_FORWARD</code>.
+ */
+ exception ForwardRequest {
+ /**
+ * The new object to forward the request to.
+ */
+ Object forward;
+// Change in ptc/00-08-06
+// boolean permanent;
+ };
+
+ /** Reply status, represented as an int */
+ typedef short ReplyStatus;
+
+ // Valid reply_status values:
+
+ /**
+ * Indicates a successful Reply Status. One possible value for
+ * <code>RequestInfo.reply_status</code>.
+ * @see RequestInfo#reply_status
+ * @see SYSTEM_EXCEPTION
+ * @see USER_EXCEPTION
+ * @see LOCATION_FORWARD
+ * @see TRANSPORT_RETRY
+ */
+ const ReplyStatus SUCCESSFUL = 0;
+
+ /**
+ * Indicates a SystemException reply status. One possible value for
+ * <code>RequestInfo.reply_status</code>.
+ * @see RequestInfo#reply_status
+ * @see SUCCESSFUL
+ * @see USER_EXCEPTION
+ * @see LOCATION_FORWARD
+ * @see TRANSPORT_RETRY
+ */
+ const ReplyStatus SYSTEM_EXCEPTION = 1;
+
+ /**
+ * Indicates a UserException reply status. One possible value for
+ * <code>RequestInfo.reply_status</code>.
+ * @see RequestInfo#reply_status
+ * @see SUCCESSFUL
+ * @see SYSTEM_EXCEPTION
+ * @see LOCATION_FORWARD
+ * @see TRANSPORT_RETRY
+ */
+ const ReplyStatus USER_EXCEPTION = 2;
+
+ /**
+ * Indicates a LocationForward reply status. One possible value for
+ * <code>RequestInfo.reply_status</code>.
+ * @see RequestInfo#reply_status
+ * @see SUCCESSFUL
+ * @see SYSTEM_EXCEPTION
+ * @see USER_EXCEPTION
+ * @see TRANSPORT_RETRY
+ */
+ const ReplyStatus LOCATION_FORWARD = 3;
+
+// Changes in ptc/00-08-06
+// const ReplyStatus LOCATION_FORWARD_PERMANENT = 4;
+
+ /**
+ * Indicates a Transport Retry reply status. One possible value for
+ * <code>RequestInfo.reply_status</code>.
+ * @see RequestInfo#reply_status
+ * @see SUCCESSFUL
+ * @see SYSTEM_EXCEPTION
+ * @see USER_EXCEPTION
+ * @see LOCATION_FORWARD
+ */
+ const ReplyStatus TRANSPORT_RETRY = 4;
+
+ /**
+ * XXX
+ */
+ const ReplyStatus UNKNOWN = 5;
+
+ /** Slot id, represented as an int */
+ typedef unsigned long SlotId;
+
+ /**
+ * This exception is thrown when <code>get_slot</code> or
+ * <code>set_slot</code> is called on a slot that has not been allocated.
+ */
+ exception InvalidSlot {};
+
+ /**
+ * Portable Interceptors Current (also known as <code>PICurrent</code>)
+ * is merely a slot table, the slots of which are used by each service to
+ * transfer their context data between their context and the request's or
+ * reply's service context. Each service which wishes to use PICurrent
+ * reserves a slot or slots at initialization time and uses those slots
+ * during the processing of requests and replies.
+ * <p>
+ * Before an invocation is made, PICurrent is obtained via a call to
+ * <code>ORB.resolve_initial_references( "PICurrent" )</code>. From within
+ * the interception points, the data on PICurrent that has moved from the
+ * thread scope to the request scope is available via the
+ * <code>get_slot</code> operation on the <code>RequestInfo</code> object.
+ * A PICurrent can still be obtained via
+ * <code>resolve_initial_references</code>, but that is the Interceptor's
+ * thread scope PICurrent.
+ */
+ local interface Current : CORBA::Current {
+
+ /**
+ * Retrieves the slot data the application set in PICurrent via
+ * <code>get_slot</code>. The data is in the form of an Any.
+ * <p>
+ * If the given slot has not been set, an Any containing a type code
+ * with a <code>TCKind</code> value of <code>tk_null</code> and no value
+ * is returned.
+ *
+ * @param id The <code>SlotId</code> of the slot from which the data will
+ * be returned.
+ * @return The data, in the form of an Any, of the given slot identifier.
+ * @exception InvalidSlot thrown if get_slot is called on a slot that
+ * has not been allocated.
+ * @exception BAD_INV_ORDER thrown if <code>get_slot</code> is called
+ * from within an ORB initializer
+ */
+ any get_slot (in SlotId id) raises (InvalidSlot);
+
+ /**
+ * Sets data in a slot. The data is in the form of an Any. If data
+ * already exists in that slot, it is overridden.
+ *
+ * @param id The <code>SlotId</code> of the slot to which the data will
+ * be set.
+ * @param data The data, in the form of an Any, which will be set
+ * to the identified slot.
+ * @exception InvalidSlot thrown if <code>set_slot</code> is called on
+ * a slot that has not been allocated.
+ * @exception BAD_INV_ORDER thrown if <code>set_slot</code> is called
+ * from within an ORB initializer.
+ */
+ void set_slot (in SlotId id, in any data) raises (InvalidSlot);
+ };
+
+ /**
+ * Request Information, accessible to Interceptors.
+ * <p>
+ * Each interception point is given an object through which the
+ * Interceptor can access request information. Client-side and server-side
+ * interception points are concerned with different information, so there
+ * are two information objects: <code>ClientRequestInfo</code> is passed
+ * to the client-side interception points and <code>ServerRequestInfo</code>
+ * is passed to the server-side interception points. But there is
+ * information that is common to both, so they both inherit from a common
+ * interface: <code>RequestInfo</code>.
+ *
+ * @see ClientRequestInfo
+ * @see ServerRequestInfo
+ */
+ local interface RequestInfo {
+ /**
+ * Returns an id that uniquely identifies an active request/reply
+ * sequence. Once a request/reply sequence is concluded this ID may be
+ * reused. Note that this id is not the same as the GIOP
+ * <code>request_id</code>. If GIOP is the transport mechanism used,
+ * then these IDs may very well be the same, but this is not guaranteed
+ * nor required.
+ */
+ readonly attribute unsigned long request_id;
+
+ /**
+ * Returns the name of the operation being invoked.
+ */
+ readonly attribute string operation;
+
+ /**
+ * Returns an array of <code>Parameter</code> objects, containing the
+ * arguments on the operation being invoked. If there are no arguments,
+ * this attribute will be a zero length array.
+ * <p>
+ * Not all environments provide access to the arguments. With the Java
+ * portable bindings, for example, the arguments are not available.
+ * In these environments, when this attribute is accessed,
+ * <code>NO_RESOURCES</code> will be thrown with a standard minor code
+ * of 1.
+ * <p>
+ * <i>Note: Arguments are available for DSI/DII calls.</i>
+ *
+ * @exception NO_RESOURCES thrown if arguments are not available.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute Dynamic::ParameterList arguments;
+
+ /**
+ * Returns an array of <code>TypeCode</code> objects describing the
+ * <code>TypeCode</code>s of the user exceptions that this operation
+ * invocation may throw. If there are no user exceptions, this
+ * will return a zero length array.
+ * <p>
+ * Not all environments provide access to the exception list. With
+ * the Java portable bindings, for example, the exception list is
+ * not available. In these environments, when this attribute is
+ * accessed, <code>NO_RESOURCES</code> will be thrown with a
+ * standard minor code of 1.
+ * <p>
+ * <i>Note: Exceptions are available for DSI/DII calls.</i>
+ *
+ * @exception NO_RESOURCES thrown if exceptions are not available.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute Dynamic::ExceptionList exceptions;
+
+ /**
+ * Returns an array of <code>String</code> objects describing the
+ * contexts that may be passed on this operation invocation. If there
+ * are no contexts, this will return a zero length array.
+ * <p>
+ * Not all environments provide access to the context list. With the
+ * Java portable bindings, for example, the context list is not
+ * available. In these environments, when this attribute is accessed,
+ * <code>NO_RESOURCES</code> will be thrown with a standard minor code
+ * of 1.
+ * <p>
+ * <i>Note: Contexts are available for DSI/DII calls.</i>
+ *
+ * @exception NO_RESOURCES thrown if contexts are not available.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute Dynamic::ContextList contexts;
+
+ /**
+ * Returns an array of <code>String</code> objects containing the
+ * contexts being sent on the request.
+ * <p>
+ * Not all environments provide access to the context. With the Java
+ * portable bindings, for example, the context is not available. In
+ * these environments, when this attribute is accessed, NO_RESOURCES will
+ * be thrown with standard minor code of 1.
+ * <p>
+ * <i>Note: <code>operation_context</code> is available for
+ * DSI/DII calls.</i>
+ *
+ * @exception NO_RESOURCES thrown if operation context is not available.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute Dynamic::RequestContext operation_context;
+
+ /**
+ * Returns an any containing the result of the operation invocation.
+ * If the operation return type is void, this attribute will be an any
+ * containing a type code with a <code>TCKind</code> value of
+ * <code>tk_void</code> and no value.
+ * <p>
+ * Not all environments provide access to the result. With the Java
+ * portable bindings, for example, the result is not available. In
+ * these environments, when this attribute is accessed,
+ * <code>NO_RESOURCES</code> will be thrown with a standard minor code of
+ * 1.
+ * <p>
+ * <i>Note: Result is available for DSI/DII calls.</i>
+ *
+ * @exception NO_RESOURCES thrown if result is not available.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute any result;
+
+ /**
+ * Indicates whether a response is expected.
+ * <p>
+ * On the client, a reply is not returned when
+ * <code>response_expected</code> is false, so <code>receive_reply</code>
+ * cannot be called. <code>receive_other</code> is called unless an
+ * exception occurs, in which case <code>receive_exception</code> is
+ * called.
+ * <p>
+ * On the client, within <code>send_poll</code>, this attribute is true.
+ */
+ readonly attribute boolean response_expected;
+
+ /**
+ * Defines how far the request shall progress before control is returned
+ * to the client. This is defined in the Messaging specification, and
+ * is pertinent only when <code>response_expected</code> is false. If
+ * <code>response_expected</code> is true, the value of
+ * <code>sync_scope</code> is undefined. This attribute may have one of
+ * the following values:
+ * <ul>
+ * <li><code>Messaging.SYNC_NONE</code></li>
+ * <li><code>Messaging.SYNC_WITH_TRANSPORT</code></li>
+ * <li><code>Messaging.SYNC_WITH_SERVER</code></li>
+ * <li><code>Messaging.SYNC_WITH_TARGET</code></li>
+ * </ul>
+ * On the server, for all scopes, a reply will be created from the
+ * return of the target operation call, but the reply will not return
+ * to the client. Although it does not return to the client, it does
+ * occur, so the normal server-side interception points are
+ * followed (i.e., <code>receive_request_service_contexts</code>,
+ * <code>receive_request</code>, <code>send_reply</code> or
+ * <code>send_exception</code>).
+ * <p>
+ * For <code>SYNC_WITH_SERVER</code> and <code>SYNC_WITH_TARGET</code>,
+ * the server does send an empty reply back to the client before the
+ * target is invoked. This reply is not intercepted by server-side
+ * Interceptors.
+ *
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute Messaging::SyncScope sync_scope;
+
+ /**
+ * Describes the state of the result of the operation invocation. The
+ * return value can be one of the following:
+ * <ul>
+ * <li><code>PortableInterceptor.SUCCESSFUL</code></li>
+ * <li><code>PortableInterceptor.SYSTEM_EXCEPTION</code></li>
+ * <li><code>PortableInterceptor.USER_EXCEPTION</code></li>
+ * <li><code>PortableInterceptor.LOCATION_FORWARD</code></li>
+ * <li><code>PortableInterceptor.TRANSPORT_RETRY</code></li>
+ * </ul>
+ * On the client:
+ * <ul>
+ * <li>Within the <code>receive_reply</code> interception point, this
+ * will only return <code>SUCCESSFUL</code>.</li>
+ * <li>Within the <code>receive_exception</code> interception point,
+ * this will be either <code>SYSTEM_EXCEPTION</code> or
+ * <code>USER_EXCEPTION</code>.</li>
+ * <li>Within the <code>receive_other</code> interception point, this
+ * will be any of: <code>SUCCESSFUL</code>,
+ * <code>LOCATION_FORWARD</code>, or <code>TRANSPORT_RETRY</code>.
+ * <code>SUCCESSFUL</code> means an asynchronous request returned
+ * successfully. <code>LOCATION_FORWARD</code> means that a reply
+ * came back with <code>LOCATION_FORWARD</code> as its status.
+ * <code>TRANSPORT_RETRY</code> means that the transport
+ * mechanism indicated a retry - a GIOP reply with a status of
+ * <code>NEEDS_ADDRESSING_MODE</code>, for instance. </li>
+ * </ul>
+ * On the server:
+ * <ul>
+ * <li>Within the <code>send_reply</code> interception point, this
+ * will only be <code>SUCCESSFUL</code>.</li>
+ * <li>Within the <code>send_exception</code> interception point,
+ * this will be either <code>SYSTEM_EXCEPTION</code> or
+ * <code>USER_EXCEPTION</code>.</li>
+ * <li>Within the <code>send_other</code> interception point, this
+ * attribute will be any of: <code>SUCCESSFUL</code>, or
+ * <code>LOCATION_FORWARD</code>. <code>SUCCESSFUL</code> means
+ * an asynchronous request returned successfully.
+ * <code>LOCATION_FORWARD</code> means that a reply came back
+ * with <code>LOCATION_FORWARD</code> as its status.</li>
+ * </ul>
+ *
+ * @see SUCCESSFUL
+ * @see SYSTEM_EXCEPTION
+ * @see USER_EXCEPTION
+ * @see LOCATION_FORWARD
+ * @see TRANSPORT_RETRY
+ */
+ readonly attribute ReplyStatus reply_status;
+
+ /**
+ * Contains the object to which the request will be forwarded, if the
+ * <code>reply_status</code> attribute is <code>LOCATION_FORWARD</code>.
+ * It is indeterminate whether a forwarded request will actually occur.
+ */
+ readonly attribute Object forward_reference;
+
+ /**
+ * Returns the data from the given slot of the
+ * <code>PortableInterceptor.Current</code> that is in the scope of
+ * the request.
+ * <p>
+ * If the given slot has not been set, then an any containing a
+ * type code with a <code>TCKind</code> value of <code>tk_null</code> is
+ * returned.
+ *
+ * @param id The <code>SlotId</code> of the slot which is to be
+ * returned.
+ * @return The slot data, in the form of an any, obtained with the
+ * given identifier.
+ * @exception InvalidSlot thrown if the ID does not define an
+ * allocated slot.
+ * @see Current
+ */
+ any get_slot (in SlotId id) raises (InvalidSlot);
+
+ /**
+ * Returns a copy of the service context with the given ID that
+ * is associated with the request.
+ *
+ * @param id The <code>IOP.ServiceId</code> of the service context
+ * which is to be returned.
+ * @return The <code>IOP.ServiceContext</code> obtained with the
+ * given identifier.
+ * @exception BAD_PARAM thrown with a standard minor code of 26, if the
+ * request's service context does not contain an entry for that ID.
+ */
+ IOP::ServiceContext get_request_service_context
+ (in IOP::ServiceId id);
+
+ /**
+ * Returns a copy of the service context with the given ID that
+ * is associated with the reply.
+ *
+ * @param id The <code>IOP.ServiceId</code> of the service context
+ * which is to be returned.
+ * @return The <code>IOP.ServiceContext</code> obtained with the given
+ * identifier.
+ * @exception BAD_PARAM thrown with a standard minor code of 26 if the
+ * request's service context does not contain an entry for that ID.
+ */
+ IOP::ServiceContext get_reply_service_context
+ (in IOP::ServiceId id);
+ };
+
+ /**
+ * Request Information, accessible to client-side request interceptors.
+ * <p>
+ * Some attributes and operations on <code>ClientRequestInfo</code> are
+ * not valid at all interception points. The following table shows the
+ * validity of each attribute or operation. If it is not valid, attempting
+ * to access it will result in a <code>BAD_INV_ORDER</code> being thrown
+ * with a standard minor code of 14.
+ *
+ * <table class="plain">
+ * <caption style="display:none">Shows the validity of each attribute or operation</caption>
+ * <thead>
+ * <tr>
+ * <th>&nbsp;</th>
+ * <th id="send_req">send_request</th>
+ * <th id="send_poll">send_poll</th>
+ * <th id="rec_reply">receive_reply</th>
+ * <th id="rec_ex">receive_exception</th>
+ * <th id="rec_oth">receive_other</th>
+ * </tr>
+ * </thead>
+ * <tbody>
+ *
+ * <tr>
+ * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td>
+ * </tr>
+ *
+ * <tr><th id="req_id"><p style="text-align:left">request_id</p></th>
+ * <td headers="ri req_id send_req">yes</td>
+ * <td headers="ri req_id send_poll">yes</td>
+ * <td headers="ri req_id rec_reply">yes</td>
+ * <td headers="ri req_id rec_ex">yes</td>
+ * <td headers="ri req_id rec_oth">yes</td></tr>
+ *
+ * <tr><th id="op"><p style="text-align:left">operation</p></th>
+ * <td headers="ri op send_req">yes</td>
+ * <td headers="ri op send_poll">yes</td>
+ * <td headers="ri op rec_reply">yes</td>
+ * <td headers="ri op rec_ex">yes</td>
+ * <td headers="ri op rec_oth">yes</td></tr>
+ *
+ * <tr><th id="arg"><p style="text-align:left">arguments</p></th>
+ * <td headers="ri arg send_req">yes<sub>1</sub></td>
+ * <td headers="ri arg send_poll">no </td>
+ * <td headers="ri arg rec_reply">yes</td>
+ * <td headers="ri arg rec_ex">no </td>
+ * <td headers="ri arg rec_oth">no </td></tr>
+ *
+ * <tr><th id="exc"><p style="text-align:left">exceptions</p></th>
+ * <td headers="ri exc send_req">yes</td>
+ * <td headers="ri exc send_poll">no </td>
+ * <td headers="ri exc rec_reply">yes</td>
+ * <td headers="ri exc rec_ex">yes</td>
+ * <td headers="ri exc rec_oth">yes</td></tr>
+ *
+ * <tr><th id="con"><p style="text-align:left">contexts</p></th>
+ * <td headers="ri con send_req">yes</td>
+ * <td headers="ri con send_poll">no </td>
+ * <td headers="ri con rec_reply">yes</td>
+ * <td headers="ri con rec_ex">yes</td>
+ * <td headers="ri con rec_oth">yes</td></tr>
+ *
+ * <tr><th id="op_con"><p style="text-align:left">operation_context</p></th>
+ * <td headers="ri op_con send_req">yes</td>
+ * <td headers="ri op_con send_poll">no </td>
+ * <td headers="ri op_con rec_reply">yes</td>
+ * <td headers="ri op_con rec_ex">yes</td>
+ * <td headers="ri op_con rec_oth">yes</td>
+ * </tr>
+ *
+ * <tr><th id="result"><p style="text-align:left">result</p></th>
+ * <td headers="ri result send_req">no </td>
+ * <td headers="ri result send_poll">no </td>
+ * <td headers="ri result rec_reply">yes</td>
+ * <td headers="ri result rec_ex">no </td>
+ * <td headers="ri result rec_oth">no </td>
+ * </tr>
+ *
+ * <tr><th id="res_exp"><p style="text-align:left">response_expected</p></th>
+ * <td headers="ri res_exp send_req">yes</td>
+ * <td headers="ri res_exp send_poll">yes</td>
+ * <td headers="ri res_exp rec_reply">yes</td>
+ * <td headers="ri res_exp rec_ex">yes</td>
+ * <td headers="ri res_exp rec_oth">yes</td></tr>
+ *
+ * <tr><th id="sync_sco"><p style="text-align:left">sync_scope</p></th>
+ * <td headers="ri sync_sco send_req">yes</td>
+ * <td headers="ri sync_sco send_poll">no </td>
+ * <td headers="ri sync_sco rec_reply">yes</td>
+ * <td headers="ri sync_sco rec_ex">yes</td>
+ * <td headers="ri sync_sco rec_oth">yes</td>
+ * </tr>
+ *
+ * <tr><th id="rep_stat"><p style="text-align:left">reply_status</p></th>
+ * <td headers="ri rep_stat send_req">no </td>
+ * <td headers="ri rep_stat send_poll">no </td>
+ * <td headers="ri rep_stat rec_reply">yes</td>
+ * <td headers="ri rep_stat rec_ex">yes</td>
+ * <td headers="ri rep_stat rec_oth">yes</td></tr>
+ *
+ * <tr><th id="for_ref"><p style="text-align:left">forward_reference</p></th>
+ * <td headers="ri for_ref send_req">no </td>
+ * <td headers="ri for_ref send_poll">no </td>
+ * <td headers="ri for_ref rec_reply">no </td>
+ * <td headers="ri for_ref rec_ex">no </td>
+ * <td headers="ri for_ref rec_oth">yes<sub>2</sub>
+ * </td></tr>
+ *
+ * <tr><th id="get_slot"><p style="text-align:left">get_slot</p></th>
+ * <td headers="ri get_slot send_req">yes</td>
+ * <td headers="ri get_slot send_poll">yes</td>
+ * <td headers="ri get_slot rec_reply">yes</td>
+ * <td headers="ri get_slot rec_ex">yes</td>
+ * <td headers="ri get_slot rec_oth">yes</td></tr>
+ *
+ * <tr><th id="grsc"><p style="text-align:left">get_request_service_context</p></th>
+ * <td headers="ri grsc send_req">yes</td>
+ * <td headers="ri grsc send_poll">no </td>
+ * <td headers="ri grsc rec_reply">yes</td>
+ * <td headers="ri grsc rec_ex">yes</td>
+ * <td headers="ri grsc rec_oth">yes</td></tr>
+ *
+ * <tr><th id="gpsc"><p style="text-align:left">get_reply_service_context</p></th>
+ * <td headers="ri gpsc send_req">no </td>
+ * <td headers="ri gpsc send_poll">no </td>
+ * <td headers="ri gpsc rec_reply">yes</td>
+ * <td headers="ri gpsc rec_ex">yes</td>
+ * <td headers="ri gpsc rec_oth">yes</td>
+ * </tr>
+ *
+ * <tr>
+ * <td id="cri" colspan=6><i>ClientRequestInfo-specific:</i></td>
+ * </tr>
+ *
+ * <tr><th id="target"><p style="text-align:left">target</p></th>
+ * <td headers="cri target send_req">yes</td>
+ * <td headers="cri target send_poll">yes</td>
+ * <td headers="cri target rec_reply">yes</td>
+ * <td headers="cri target rec_ex">yes</td>
+ * <td headers="cri target rec_oth">yes</td></tr>
+ *
+ * <tr><th id="eftarget"><p style="text-align:left">effective_target</p></th>
+ * <td headers="cri eftarget send_req">yes</td>
+ * <td headers="cri eftarget send_poll">yes</td>
+ * <td headers="cri eftarget rec_reply">yes</td>
+ * <td headers="cri eftarget rec_ex">yes</td>
+ * <td headers="cri eftarget rec_oth">yes</td>
+ * </tr>
+ *
+ * <tr><th id="efprof"><p style="text-align:left">effective_profile</p></th>
+ * <td headers="cri efprof send_req">yes</td>
+ * <td headers="cri efprof send_poll">yes</td>
+ * <td headers="cri efprof rec_reply">yes</td>
+ * <td headers="cri efprof rec_ex">yes</td>
+ * <td headers="cri efprof rec_oth">yes</td></tr>
+ *
+ * <tr><th id="rxp"><p style="text-align:left">received_exception</p></th>
+ * <td headers="cri rxp send_req">no </td>
+ * <td headers="cri rxp send_poll">no </td>
+ * <td headers="cri rxp rec_reply">no </td>
+ * <td headers="cri rxp rec_ex">yes</td>
+ * <td headers="cri rxp rec_oth">no </td></tr>
+ *
+ * <tr><th id="rei"><p style="text-align:left">received_exception_id</p></th>
+ * <td headers="cri rei send_req">no </td>
+ * <td headers="cri rei send_poll">no </td>
+ * <td headers="cri rei rec_reply">no </td>
+ * <td headers="cri rei rec_ex">yes</td>
+ * <td headers="cri rei rec_oth">no </td></tr>
+ *
+ * <tr><th id="gec"><p style="text-align:left">get_effective_component</p></th>
+ * <td headers="cri gec send_req">yes</td>
+ * <td headers="cri gec send_poll">no </td>
+ * <td headers="cri gec rec_reply">yes</td>
+ * <td headers="cri gec rec_ex">yes</td>
+ * <td headers="cri gec rec_oth">yes</td></tr>
+ *
+ * <tr><th id="gecs"><p style="text-align:left">get_effective_components</p></th>
+ * <td headers="cri gecs send_req">yes</td>
+ * <td headers="cri gecs send_poll">no </td>
+ * <td headers="cri gecs rec_reply">yes</td>
+ * <td headers="cri gecs rec_ex">yes</td>
+ * <td headers="cri gecs rec_oth">yes</td></tr>
+ *
+ * <tr><th id="grpcy"><p style="text-align:left">get_request_policy</p></th>
+ * <td headers="cri grpcy send_req">yes</td>
+ * <td headers="cri grpcy send_poll">no </td>
+ * <td headers="cri grpcy rec_reply">yes</td>
+ * <td headers="cri grpcy rec_ex">yes</td>
+ * <td headers="cri grpcy rec_oth">yes</td></tr>
+ *
+ * <tr><th id="arsc"><p style="text-align:left">add_request_service_context</p></th>
+ * <td headers="cri arsc send_req">yes</td>
+ * <td headers="cri arsc send_poll">no </td>
+ * <td headers="cri arsc rec_reply">no </td>
+ * <td headers="cri arsc rec_ex">no </td>
+ * <td headers="cri arsc rec_oth">no </td></tr>
+ *
+ * </tbody>
+ * </table>
+ *
+ * <ol>
+ * <li>When <code>ClientRequestInfo</code> is passed to
+ * <code>send_request</code>, there is an entry in the list for every
+ * argument, whether in, inout, or out. But only the in and inout
+ * arguments will be available.</li>
+ * <li>If the <code>reply_status</code> atribute is not
+ * <code>LOCATION_FORWARD</code>, accessing this attribute will
+ * throw <code>BAD_INV_ORDER</code> with a standard minor code of
+ * 14.</li>
+ * </ol>
+ *
+ * @see ClientRequestInterceptor
+ */
+ local interface ClientRequestInfo : RequestInfo {
+
+ /**
+ * Returns the object which the client called to perform the
+ * operation.
+ *
+ * @see #effective_target
+ */
+ readonly attribute Object target;
+
+ /**
+ * Returns the actual object on which the operation will be invoked.
+ * If the <code>reply_status</code> is <code>LOCATION_FORWARD</code>,
+ * then on subsequent requests, <code>effective_target</code> will
+ * contain the forwarded IOR while target will remain unchanged.
+ *
+ * @see #target
+ */
+ readonly attribute Object effective_target;
+
+ /**
+ * Returns the profile that will be used to send the request. If a
+ * location forward has occurred for this operation's object and
+ * that object's profile changed accordingly, then this profile will
+ * be that located profile.
+ */
+ readonly attribute IOP::TaggedProfile effective_profile;
+
+ /**
+ * Returns an any which contains the exception to be returned to
+ * the client.
+ * <p>
+ * If the exception is a user exception which cannot be inserted
+ * into an any (e.g., it is unknown or the bindings don t provide
+ * the <code>TypeCode</code>), then this attribute will be an any
+ * containing the system exception <code>UNKNOWN</code> with a
+ * standard minor code of 1. However, the repository id of
+ * the exception is available in the <code>received_exception_id</code>
+ * attribute.
+ *
+ * @see #received_exception_id
+ */
+ readonly attribute any received_exception;
+
+ /**
+ * Returns the repository id of the exception to be returned to
+ * the client.
+ *
+ * @see #received_exception
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute CORBA::RepositoryId received_exception_id;
+
+ /**
+ * Returns the <code>IOP.TaggedComponent</code> with the given ID from
+ * the profile selected for this request.
+ * <p>
+ * If there is more than one component for a given component ID, it
+ * is undefined which component this operation returns. If there is
+ * more than one component for a given component ID,
+ * <code>get_effective_components</code> should be called instead.
+ *
+ * @param id The component id of the component which
+ * is to be returned.
+ * @return The <code>IOP.TaggedComponent</code> obtained with the
+ * given identifier.
+ * @exception BAD_PARAM thrown, with a standard minor code of 28, if
+ * no component exists for the given component ID.
+ * @see #get_effective_components
+ */
+ IOP::TaggedComponent get_effective_component
+ (in IOP::ComponentId id);
+
+ /**
+ * Returns an array of all tagged components with the given ID from the
+ * profile selected for this request.
+ *
+ * @param id The component id of the components which are to be returned.
+ * @return An array of <code>TaggedComponent</code> objects, each of
+ * which contains the given identifier.
+ * @exception BAD_PARAM thrown, with a standard minor code of 28, if
+ * no component exists for the given component ID.
+ * @see #get_effective_component
+ */
+ IOP::TaggedComponentSeq get_effective_components
+ (in IOP::ComponentId id);
+
+ /**
+ * Returns the given policy in effect for this operation.
+ *
+ * @exception INV_POLICY thrown, with a standard minor code of 1, if the
+ * policy type is not valid either because the specified type is
+ * not supported by this ORB or because a policy object of that type
+ * is not associated with this Object
+ * @param type The policy type which specifies the policy to be
+ * returned.
+ * @return The <code>CORBA.Policy</code> obtained with the given type.
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ CORBA::Policy get_request_policy
+ (in CORBA::PolicyType type);
+
+ /**
+ * Allows Interceptors to add service contexts to the request.
+ * <p>
+ * There is no declaration of the order of the service contexts.
+ * They may or may not appear in the order that they are added.
+ *
+ * @param service_context The <code>IOP.ServiceContext</code> to be
+ * added to the request.
+ * @param replace Indicates the behavior of this operation when a
+ * service context already exists with the given ID. If false,
+ * then <code>BAD_INV_ORDER</code> with a standard minor code of 15
+ * is thrown. If true, then the existing service context is
+ * replaced by the new one.
+ */
+ void add_request_service_context (
+ in IOP::ServiceContext service_context,
+ in boolean replace);
+ };
+
+ // Should be type string
+ typedef string ServerId ;
+
+ // This should actually be the CORBA::ORBid type once that is available
+ typedef string ORBId ;
+
+ /** The name of an object adapter. This is unique only within
+ * the scope of the ORB that created the object adapter.
+ */
+ typedef org::omg::CORBA::StringSeq AdapterName ;
+
+ /** Type of an object id. This provides the identity of a particular
+ * object that was created by an object adapter.
+ */
+ typedef org::omg::CORBA::OctetSeq ObjectId ;
+
+ /**
+ * Request Information, accessible to server-side request interceptors.
+ * <p>
+ * Some attributes and operations on <code>ServerRequestInfo</code> are not
+ * valid at all interception points. The following table shows the validity
+ * of each attribute or operation. If it is not valid, attempting to access
+ * it will result in a <code>BAD_INV_ORDER</code> being thrown with a
+ * standard minor code of 14.
+ *
+ *
+ * <table class="plain">
+ * <caption style="display:none">Shows the validity of each attribute or operation</caption>
+ * <thead>
+ * <tr>
+ * <th>&nbsp;</th>
+ * <th id="rec_req_ser_con" valign="bottom">receive_request_<br>service_contexts</th>
+ * <th id="rec_req" valign="bottom">receive_request</th>
+ * <th id="send_rep" valign="bottom">send_reply</th>
+ * <th id="send_exc" valign="bottom">send_exception</th>
+ * <th id="send_oth" valign="bottom">send_other</th>
+ * </tr>
+ * </thead>
+ * <tbody>
+ *
+ *
+ * <tr>
+ * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td>
+ * </tr>
+ *
+ * <tr><th id="req_id"><p style="text-align:left">request_id</p></th>
+ * <td headers="ri req_id rec_req_ser_con">yes</td>
+ * <td headers="ri req_id rec_req">yes</td>
+ * <td headers="ri req_id send_rep">yes</td>
+ * <td headers="ri req_id send_exc">yes</td>
+ * <td headers="ri req_id send_oth">yes</td></tr>
+ *
+ * <tr><th id="op"><p style="text-align:left">operation</p></th>
+ * <td headers="ri op rec_req_ser_con">yes</td>
+ * <td headers="ri op rec_req">yes</td>
+ * <td headers="ri op send_rep">yes</td>
+ * <td headers="ri op send_exc">yes</td>
+ * <td headers="ri op send_oth">yes</td></tr>
+ *
+ * <tr><th id="args"><p style="text-align:left">arguments</p></th>
+ * <td headers="ri args rec_req_ser_con">no </td>
+ * <td headers="ri args rec_req">yes<sub>1</sub></td>
+ * <td headers="ri args send_rep">yes</td>
+ * <td headers="ri args send_exc">no<sub>2</sub></td>
+ * <td headers="ri args send_oth">no<sub>2</sub>
+ * </td></tr>
+ *
+ * <tr><th id="exps"><p style="text-align:left">exceptions</p></th>
+ * <td headers="ri exps rec_req_ser_con">no </td>
+ * <td headers="ri exps rec_req">yes</td>
+ * <td headers="ri exps send_rep">yes</td>
+ * <td headers="ri exps send_exc">yes</td>
+ * <td headers="ri exps send_oth">yes</td></tr>
+ *
+ * <tr><th id="contexts"><p style="text-align:left">contexts</p></th>
+ * <td headers="ri contexts rec_req_ser_con">no </td>
+ * <td headers="ri contexts rec_req">yes</td>
+ * <td headers="ri contexts send_rep">yes</td>
+ * <td headers="ri contexts send_exc">yes</td>
+ * <td headers="ri contexts send_oth">yes</td></tr>
+ *
+ * <tr><th id="op_con"><p style="text-align:left">operation_context</p></th>
+ * <td headers="ri op_con rec_req_ser_con">no </td>
+ * <td headers="ri op_con rec_req">yes</td>
+ * <td headers="ri op_con send_rep">yes</td>
+ * <td headers="ri op_con send_exc">no </td>
+ * <td headers="ri op_con send_oth">no </td>
+ * </tr>
+ *
+ * <tr><th id="result"><p style="text-align:left">result</p></th>
+ * <td headers="ri result rec_req_ser_con">no </td>
+ * <td headers="ri result rec_req">no </td>
+ * <td headers="ri result send_rep">yes</td>
+ * <td headers="ri result send_exc">no </td>
+ * <td headers="ri result send_oth">no </td>
+ * </tr>
+ *
+ * <tr><th id="res_ex"><p style="text-align:left">response_expected</p></th>
+ * <td headers="ri res_ex rec_req_ser_con">yes</td>
+ * <td headers="ri res_ex rec_req">yes</td>
+ * <td headers="ri res_ex send_rep">yes</td>
+ * <td headers="ri res_ex send_exc">yes</td>
+ * <td headers="ri res_ex send_oth">yes</td></tr>
+ *
+ * <tr><th id="syn_scp"><p style="text-align:left">sync_scope</p></th>
+ * <td headers="ri syn_scp rec_req_ser_con">yes</td>
+ * <td headers="ri syn_scp rec_req">yes</td>
+ * <td headers="ri syn_scp send_rep">yes</td>
+ * <td headers="ri syn_scp send_exc">yes</td>
+ * <td headers="ri syn_scp send_oth">yes</td></tr>
+ *
+ * <tr><td><b>request_id</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>operation</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>arguments</b></td>
+ * <td>no </td> <td>yes<sub>1</sub></td>
+ * <td>yes</td> <td>no<sub>2</sub></td>
+ * <td>no<sub>2</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>exceptions</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>contexts</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>operation_context</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>no </td> <td>no </td></tr>
+ *
+ * <tr><td><b>result</b></td>
+ * <td>no </td> <td>no </td> <td>yes</td> <td>no </td> <td>no </td></tr>
+ *
+ * <tr><td><b>response_expected</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>sync_scope</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>reply_status</b></td>
+ * <td>no </td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>forward_reference</b></td>
+ * <td>no </td> <td>no </td> <td>no </td> <td>no </td> <td>yes<sub>2</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>get_slot</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>get_request_service_context</b></td>
+ * <td>yes</td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>get_reply_service_context</b></td>
+ * <td>no </td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr>
+ * <td colspan=6><i>ServerRequestInfo-specific:</i></td>
+ * </tr>
+ *
+ * <tr><td><b>sending_exception</b></td>
+ * <td>no </td> <td>no </td> <td>no </td> <td>yes</td> <td>no </td></tr>
+ *
+ * <tr><td><b>object_id</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes<sub>3</sub></td>
+ * <td>yes<sub>3</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>adapter_id</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes<sub>3</sub></td>
+ * <td>yes<sub>3</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>server_id</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>orb_id</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>adapter_name</b></td>
+ * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>target_most_derived_interface</b></td>
+ * <td>no </td> <td>yes</td> <td>no<sub>4</sub></td>
+ * <td>no<sub>4</sub></td>
+ * <td>no<sub>4</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>get_server_policy</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>set_slot</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ *
+ * <tr><td><b>target_is_a</b></td>
+ * <td>no </td> <td>yes</td> <td>no<sub>4</sub></td>
+ * <td>no<sub>4</sub></td>
+ * <td>no<sub>4</sub>
+ * </td></tr>
+ *
+ * <tr><td><b>add_reply_service_context</b></td>
+ * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr>
+ * </tbody>
+ * </table>
+ *
+ * <ol>
+ * <li>When <code>ServerRequestInfo</code> is passed to
+ * <code>receive_request</code>, there is an entry in the list for
+ * every argument, whether in, inout, or out. But only the in and
+ * inout arguments will be available.</li>
+ * <li>If the <code>reply_status</code> attribute is not
+ * <code>LOCATION_FORWARD</code>, accessing this attribute will throw
+ * <code>BAD_INV_ORDER</code> with a standard minor code of 14.</li>
+ * <li>If the servant locator caused a location forward, or thrown an
+ * exception, this attribute/operation may not be available in this
+ * interception point. <code>NO_RESOURCES</code> with a standard minor
+ * code of 1 will be thrown if it is not available.</li>
+ * <li>The operation is not available in this interception point because
+ * the necessary information requires access to the target object's
+ * servant, which may no longer be available to the ORB. For example,
+ * if the object's adapter is a POA that uses a
+ * <code>ServantLocator</code>, then the ORB invokes the interception
+ * point after it calls <code>ServantLocator.postinvoke()</code>.</li>
+ * </ol>
+ *
+ * @see ServerRequestInterceptor
+ */
+ local interface ServerRequestInfo : RequestInfo {
+
+ /**
+ * Returns an any which contains the exception to be returned to
+ * the client.
+ * <p>
+ * If the exception is a user exception which cannot be inserted into
+ * an any (e.g., it is unknown or the bindings don't provide the
+ * <code>TypeCode</code>), then this attribute will be an any
+ * containing the system exception <code>UNKNOWN</code> with a
+ * standard minor code of 1.
+ *
+ * @see <a href="package-summary.html#unimpl">
+ * <code>PortableInterceptor</code> package comments for
+ * limitations / unimplemented features</a>
+ */
+ readonly attribute any sending_exception;
+
+ /**
+ * Returns the opaque <code>object_id</code> describing the target of
+ * the operation invocation.
+ */
+ readonly attribute ObjectId object_id;
+
+ /**
+ * Returns the opaque identifier for the object adapter.
+ */
+ readonly attribute CORBA::OctetSeq adapter_id;
+
+ /**
+ * Returns the server ID that was specified on ORB::init using the -ORBServerId
+ * argument.
+ */
+ readonly attribute ServerId server_id ;
+
+ /**
+ * Returns the ID that was used to create the ORB.
+ */
+ readonly attribute ORBId orb_id ;
+
+ /**
+ * Returns the sequence of strings that identifies the object
+ * adapter instance that is handling this request.
+ */
+ readonly attribute AdapterName adapter_name ;
+
+ /**
+ * Returns the repository id for the most derived interface of the
+ * servant.
+ */
+ readonly attribute CORBA::RepositoryId
+ target_most_derived_interface;
+
+ /**
+ * Returns the policy in effect for this operation for the given
+ * policy type. The returned <code>CORBA.Policy</code> object shall
+ * only be a policy whose type was registered via
+ * <code>register_policy_factory</code>.
+ *
+ * @param type The <code>CORBA.PolicyType</code> which specifies the
+ * policy to be returned.
+ * @return The <code>CORBA.Policy</code> obtained with the given
+ * policy type.
+ * @exception INV_POLICY thrown, with a standard minor code of 2, if
+ * a policy for the given type was not registered via
+ * <code>register_policy_factory</code>.
+ * @see ORBInitInfo#register_policy_factory
+ */
+ CORBA::Policy get_server_policy
+ (in CORBA::PolicyType type);
+
+ /**
+ * Allows an Interceptor to set a slot in the
+ * <code>PortableInterceptor.Current</code> that is in the scope of
+ * the request. If data already exists in that slot, it will be
+ * overwritten.
+ *
+ * @param id The id of the slot.
+ * @param data The data, in the form of an any, to store in that slot.
+ * @exception InvalidSlot thrown if the ID does not define an allocated
+ * slot.
+ * @see Current
+ */
+ void set_slot (in SlotId id, in any data) raises (InvalidSlot);
+
+ /**
+ * Returns true if the servant is the given repository id,
+ * false if it is not.
+ *
+ * @param id The caller wants to know if the servant is this
+ * repository id.
+ * @return Is the servant the given RepositoryId?
+ */
+ boolean target_is_a (in CORBA::RepositoryId id);
+
+ /**
+ * Allows Interceptors to add service contexts to the request.
+ * <p>
+ * There is no declaration of the order of the service contexts.
+ * They may or may not appear in the order that they are added.
+ *
+ * @param service_context The <code>IOP.ServiceContext</code> to add to
+ * the reply.
+ * @param replace Indicates the behavior of this operation when a
+ * service context already exists with the given ID. If false,
+ * then <code>BAD_INV_ORDER</code> with a standard minor code of 15
+ * is thrown. If true, then the existing service context is
+ * replaced by the new one.
+ * @exception BAD_INV_ORDER thrown, with a standard minor code of 15, if
+ * replace is false and a service context already exists with the
+ * given ID.
+ */
+ void add_reply_service_context (
+ in IOP::ServiceContext service_context,
+ in boolean replace);
+ };
+
+ /**
+ * Client-side request interceptor.
+ * <p>
+ * A request Interceptor is designed to intercept the flow of a
+ * request/reply sequence through the ORB at specific points so that
+ * services can query the request information and manipulate the service
+ * contexts which are propagated between clients and servers. The primary
+ * use of request Interceptors is to enable ORB services to transfer
+ * context information between clients and servers. There are two types
+ * of request Interceptors: client-side and server-side.
+ * <p>
+ * To write a client-side Interceptor, implement the
+ * <code>ClientRequestInterceptor</code> interface.
+ *
+ * @see ClientRequestInfo
+ */
+ local interface ClientRequestInterceptor : Interceptor {
+ /**
+ * Allows an Interceptor to query request information and modify the
+ * service context before the request is sent to the server.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>send_request</code> operations are called.
+ * Those Interceptors on the Flow Stack are popped and their
+ * <code>receive_exception</code> interception points are called. This
+ * interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, no other
+ * Interceptors' <code>send_request</code> operations are
+ * called. Those Interceptors on the Flow Stack are popped and their
+ * <code>receive_other</code> interception points are called.
+ * <p>
+ * Compliant Interceptors shall properly follow completion_status
+ * semantics if they throw a system exception from this interception
+ * point. The <code>completion_status</code> shall be
+ * <code>COMPLETED_NO</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void send_request (in ClientRequestInfo ri) raises (ForwardRequest);
+
+ /**
+ * Allows an Interceptor to query information during a Time-Independent
+ * Invocation (TII) polling get reply sequence.
+ * <p>
+ * With TII, an application may poll for a response to a request sent
+ * previously by the polling client or some other client. This poll is
+ * reported to Interceptors through the <code>send_poll</code>
+ * interception point and the response is returned through the
+ * <code>receive_reply</code> or <code>receive_exception</code>
+ * interception points. If the response is not available before the
+ * poll time-out expires, the system exception <code>TIMEOUT</code> is
+ * thrown and <code>receive_exception</code> is called with this
+ * exception.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>send_poll</code> operations are
+ * called. Those Interceptors on the Flow Stack are popped and their
+ * <code>receive_exception</code> interception points are called.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The completion_status shall be
+ * <code>COMPLETED_NO</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception TIMEOUT thrown if the response is not available before
+ * the poll time-out expires
+ */
+ void send_poll (in ClientRequestInfo ri);
+
+ /**
+ * Allows an Interceptor to query the information on a reply after it
+ * is returned from the server and before control is returned to the
+ * client.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>receive_reply</code> operations are
+ * called. The remaining Interceptors in the Flow Stack shall have
+ * their <code>receive_exception</code> interception point called.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The
+ * <code>completion_status</code> shall be <code>COMPLETED_YES</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ */
+ void receive_reply (in ClientRequestInfo ri);
+
+ /**
+ * Indicates to the interceptor that an exception occurred. Allows
+ * an Interceptor to query the exception's information before it is
+ * thrown to the client.
+ * <p>
+ * This interception point may throw a system exception. This has the
+ * effect of changing the exception which successive Interceptors
+ * popped from the Flow Stack receive on their calls to
+ * <code>receive_exception</code>. The exception thrown to the client
+ * will be the last exception thrown by an Interceptor, or the original
+ * exception if no Interceptor changes the exception.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, no other
+ * Interceptors' <code>receive_exception</code> operations are called.
+ * The remaining Interceptors in the Flow Stack are popped and have their
+ * <code>receive_other</code> interception point called.
+ * <p>
+ * If the <code>completion_status</code> of the exception is not
+ * <code>COMPLETED_NO</code>, then it is inappropriate for this
+ * interception point to throw a <code>ForwardRequest</code> exception.
+ * The request s at-most-once semantics would be lost.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. If the original exception is
+ * a system exception, the <code>completion_status</code> of the new
+ * exception shall be the same as on the original. If the original
+ * exception is a user exception, then the <code>completion_status</code>
+ * of the new exception shall be <code>COMPLETED_YES</code>.
+ * <p>
+ * Under some conditions, depending on what policies are in effect, an
+ * exception (such as <code>COMM_FAILURE</code>) may result in a retry
+ * of the request. While this retry is a new request with respect to
+ * Interceptors, there is one point of correlation between the original
+ * request and the retry: because control has not returned to the
+ * client, the <code>PortableInterceptor.Current</code> for both the
+ * original request and the retrying request is the same.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void receive_exception (in ClientRequestInfo ri) raises (ForwardRequest);
+
+ /**
+ * Allows an Interceptor to query the information available when a
+ * request results in something other than a normal reply or an
+ * exception. For example, a request could result in a retry
+ * (e.g., a GIOP Reply with a <code>LOCATION_FORWARD</code> status was
+ * received); or on asynchronous calls, the reply does not immediately
+ * follow the request, but control shall return to the client and an
+ * ending interception point shall be called.
+ * <p>
+ * For retries, depending on the policies in effect, a new request may or
+ * may not follow when a retry has been indicated. If a new request does
+ * follow, while this request is a new request, with respect to
+ * Interceptors, there is one point of correlation between the original
+ * request and the retry: because control has not returned to the client,
+ * the request scoped <code>PortableInterceptor.Current</code> for both
+ * the original request and the retrying request is the same.
+ * <p>
+ * This interception point may throw a system exception. If it does, no
+ * other Interceptors' <code>receive_other</code> operations are called.
+ * The remaining Interceptors in the Flow Stack are popped and have
+ * their <code>receive_exception</code> interception point called.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, successive
+ * Interceptors' <code>receive_other</code> operations are called with
+ * the new information provided by the <code>ForwardRequest</code>
+ * exception.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The
+ * <code>completion_status</code> shall be <code>COMPLETED_NO</code>.
+ * If the target invocation had completed, this interception point
+ * would not be called.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void receive_other (in ClientRequestInfo ri) raises (ForwardRequest);
+ };
+
+ /**
+ * Server-side request interceptor.
+ * <p>
+ * A request Interceptor is designed to intercept the flow of a
+ * request/reply sequence through the ORB at specific points so that
+ * services can query the request information and manipulate the service
+ * contexts which are propagated between clients and servers. The primary
+ * use of request Interceptors is to enable ORB services to transfer
+ * context information between clients and servers. There are two types
+ * of request Interceptors: client-side and server-side.
+ * <p>
+ * To write a server-side Interceptor, implement the
+ * ServerRequestInterceptor interface.
+ *
+ * @see ServerRequestInfo
+ */
+ local interface ServerRequestInterceptor : Interceptor {
+ /**
+ * Allows the interceptor to process service context information.
+ * <p>
+ * At this interception point, Interceptors must get their service
+ * context information from the incoming request transfer it to
+ * <code>PortableInterceptor.Current</code>'s slots.
+ * <p>
+ * This interception point is called before the servant manager is called.
+ * Operation parameters are not yet available at this point. This
+ * interception point may or may not execute in the same thread as
+ * the target invocation.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>receive_request_service_contexts</code>
+ * operations are called. Those Interceptors on the Flow Stack are
+ * popped and their <code>send_exception</code> interception points are
+ * called.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, no other
+ * Interceptors' <code>receive_request_service_contexts</code> operations
+ * are called. Those Interceptors on the Flow Stack are popped and
+ * their <code>send_other</code> interception points are called.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The
+ * <code>completion_status</code> shall be COMPLETED_NO.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void receive_request_service_contexts (in ServerRequestInfo ri)
+ raises (ForwardRequest);
+
+ /**
+ * Allows an Interceptor to query request information after all the
+ * information, including operation parameters, are available. This
+ * interception point shall execute in the same thread as the target
+ * invocation.
+ * <p>
+ * In the DSI model, since the parameters are first available when
+ * the user code calls <code>arguments</code>, <code>receive_request</code>
+ * is called from within <code>arguments</code>. It is possible that
+ * <code>arguments</code> is not called in the DSI model. The target
+ * may call <code>set_exception</code> before calling
+ * <code>arguments</code>. The ORB shall guarantee that
+ * <code>receive_request</code> is called once, either through
+ * <code>arguments</code> or through <code>set_exception</code>. If it
+ * is called through <code>set_exception</code>, requesting the
+ * arguments will result in <code>NO_RESOURCES</code> being thrown with
+ * a standard minor code of 1.
+ * <p>
+ * This interception point may throw a system exception. If it does, no
+ * other Interceptors' <code>receive_request</code> operations are
+ * called. Those Interceptors on the Flow Stack are popped and their
+ * <code>send_exception</code> interception points are called.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, no other
+ * Interceptors' <code>receive_request</code> operations are called.
+ * Those Interceptors on the Flow Stack are popped and their
+ * <code>send_other</code> interception points are called.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The
+ * <code>completion_status</code> shall be <code>COMPLETED_NO</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void receive_request (in ServerRequestInfo ri) raises (ForwardRequest);
+
+ /**
+ * Allows an Interceptor to query reply information and modify the
+ * reply service context after the target operation has been invoked
+ * and before the reply is returned to the client. This interception
+ * point shall execute in the same thread as the target invocation.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>send_reply</code> operations are called.
+ * The remaining Interceptors in the Flow Stack shall have their
+ * <code>send_exception</code> interception point called.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a
+ * system exception from this interception point. The
+ * <code>completion_status</code> shall be <code>COMPLETED_YES</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ */
+ void send_reply (in ServerRequestInfo ri);
+
+ /**
+ * Allows an Interceptor to query the exception information and modify
+ * the reply service context before the exception is thrown to the client.
+ * When an exception occurs, this interception point is called. This
+ * interception point shall execute in the same thread as the target
+ * invocation.
+ * <p>
+ * This interception point may throw a system exception. This has the
+ * effect of changing the exception which successive Interceptors
+ * popped from the Flow Stack receive on their calls to
+ * <code>send_exception</code>. The exception thrown to the client will
+ * be the last exception thrown by an Interceptor, or the original
+ * exception if no Interceptor changes the exception.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, no other
+ * Interceptors' <code>send_exception</code> operations are called. The
+ * remaining Interceptors in the Flow Stack shall have their
+ * <code>send_other</code> interception points called.
+ * <p>
+ * If the <code>completion_status</code> of the exception is not
+ * <code>COMPLETED_NO</code>, then it is inappropriate for this
+ * interception point to throw a <code>ForwardRequest</code> exception.
+ * The request's at-most-once semantics would be lost.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. If the original exception
+ * is a system exception, the <code>completion_status</code> of the new
+ * exception shall be the same as on the original. If the original
+ * exception is a user exception, then the <code>completion_status</code>
+ * of the new exception shall be <code>COMPLETED_YES</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void send_exception (in ServerRequestInfo ri) raises (ForwardRequest);
+
+ /**
+ * Allows an Interceptor to query the information available when a
+ * request results in something other than a normal reply or an
+ * exception. For example, a request could result in a retry
+ * (e.g., a GIOP Reply with a <code>LOCATION_FORWARD</code> status was
+ * received). This interception point shall execute in the same thread
+ * as the target invocation.
+ * <p>
+ * This interception point may throw a system exception. If it does,
+ * no other Interceptors' <code>send_other</code> operations are called.
+ * The remaining Interceptors in the Flow Stack shall have their
+ * <code>send_exception</code> interception points called.
+ * <p>
+ * This interception point may also throw a <code>ForwardRequest</code>
+ * exception. If an Interceptor throws this exception, successive
+ * Interceptors' <code>send_other</code> operations are called with
+ * the new information provided by the <code>ForwardRequest</code>
+ * exception.
+ * <p>
+ * Compliant Interceptors shall properly follow
+ * <code>completion_status</code> semantics if they throw a system
+ * exception from this interception point. The
+ * <code>completion_status</code> shall be <code>COMPLETED_NO</code>.
+ *
+ * @param ri Information about the current request being intercepted.
+ * @exception ForwardRequest If thrown, indicates to the ORB that a
+ * retry of the request should occur with the new object given in
+ * the exception.
+ */
+ void send_other (in ServerRequestInfo ri) raises (ForwardRequest);
+ };
+
+ /** The object reference factory. This provides the capability of
+ * creating an object reference.
+ */
+ abstract valuetype ObjectReferenceFactory {
+ /** make_object creates a CORBA object reference according
+ * to the data in this template, with the given repository ID and
+ * object ID.
+ */
+ Object make_object( in string repositoryId, in ObjectId object_id ) ;
+ } ;
+
+ /** The object reference template. An instance of this must
+ * exist for each object adapter created in an ORB. The server_id,
+ * orb_id, and adapter_name attributes uniquely identify this template
+ * within the scope of an IMR. Note that adapter_id is similarly unique
+ * within the same scope, but it is opaque, and less useful in many
+ * cases.
+ */
+ abstract valuetype ObjectReferenceTemplate : ObjectReferenceFactory {
+
+ readonly attribute ServerId server_id ;
+
+ readonly attribute ORBId orb_id ;
+
+ readonly attribute AdapterName adapter_name ;
+ } ;
+
+ /** Sequence of object reference templates is used for reporting state
+ * changes that do not occur on the adapter manager.
+ */
+ typedef sequence<ObjectReferenceTemplate> ObjectReferenceTemplateSeq ;
+
+ /** Adapter manager identifier. Every object adapter has an adapter manager,
+ * indicated in this API only through the ID. A group of object adapter
+ * instances may share the same adapter manager, in which case state transitions
+ * reported for the adapter manager are observed by all object adapters with the
+ * same adapter manager ID.
+ */
+ typedef long AdapterManagerId ;
+
+ /** Type of object adapter state. State changes are reported either to
+ * the object adapter or to the adapter manager.
+ */
+ typedef short AdapterState ;
+
+ /** Object adapter state that holds requests temporarily until the
+ * state is changed.
+ */
+ const AdapterState HOLDING = 0 ;
+
+ /** Object adapter state that indicates normal request processing.
+ */
+ const AdapterState ACTIVE = 1 ;
+
+ /** Object adapter state that causes all requests to be discarded.
+ */
+ const AdapterState DISCARDING = 2 ;
+
+ /** Object adapter state that causes all requests to be discarded.
+ * This state indicates that the adapter is shutting down.
+ */
+ const AdapterState INACTIVE = 3 ;
+
+ /** Object adapter state indicating that the adapter has been destroyed.
+ */
+ const AdapterState NON_EXISTENT = 4 ;
+
+ /**
+ * Provides the server-side ORB service with access to the applicable
+ * policies during IOR construction and the ability to add components.
+ * The ORB passes an instance of its implementation of this interface as
+ * a parameter to <code>IORInterceptor.establish_components</code>.
+ *
+ * @see IORInterceptor
+ */
+ local interface IORInfo {
+
+ /**
+ * Allows an ORB service implementation to determine what server side
+ * policy of a particular type is in effect for an IOR being
+ * constructed. When the IOR being constructed is for an object
+ * implemented using a POA, all Policy objects passed to the
+ * <code>PortableServer.POA.create_POA</code> call that created that
+ * POA are accessable via <code>get_effective_policy</code>.
+ * <p>
+ * If a policy for the given type is not known to the ORB, then this
+ * operation will throw <code>INV_POLICY</code> with a standard minor
+ * code of 2.
+ *
+ * @param type an int specifying the type of policy to return.
+ * @return The effective <code>CORBA.Policy</code> object of the
+ * requested type. If the given policy type is known, but no policy
+ * of that type is in effect, then this operation will return a
+ * nil object reference.
+ */
+ CORBA::Policy get_effective_policy
+ (in CORBA::PolicyType type);
+
+ /**
+ * A portable ORB service implementation calls
+ * <code>add_ior_component</code> from its implementation of
+ * <code>establish_components</code> to add a tagged component to the
+ * set which will be included when constructing IORs. The components in
+ * this set will be included in all profiles.
+ * <p>
+ * Any number of components may exist with the same component ID.
+ *
+ * @param tagged_component The IOP.TaggedComponent to add.
+ */
+ void add_ior_component
+ (in IOP::TaggedComponent tagged_component);
+
+ /**
+ * A portable ORB service implementation calls
+ * <code>add_ior_component_to_profile</code> from its implementation of
+ * <code>establish_components</code> to add a tagged component to the
+ * set which will be included when constructing IORs. The components in
+ * this set will be included in the specified profile.
+ * <p>
+ * Any number of components may exist with the same component ID.
+ *
+ * @param tagged_component The <code>IOP.TaggedComponent</code> to add.
+ * @param profile_id The profile id of the profile to
+ * which this component will be added.
+ * @exception BAD_PARAM thrown, with a standard minor code of 29, if the
+ * given profile ID does not define a known profile or it is
+ * impossible to add components to that profile.
+ */
+ void add_ior_component_to_profile (
+ in IOP::TaggedComponent tagged_component,
+ in IOP::ProfileId profile_id);
+
+ /** Return the adapter manager id of the object adapter
+ * that was just created and is running IOR interceptors.
+ */
+ readonly attribute AdapterManagerId manager_id ;
+
+ /** Return the adapter state of the object adapter
+ * that was just created and is running IOR interceptors.
+ */
+ readonly attribute AdapterState state ;
+
+ /** Return the object reference template of the object adapter
+ * that was just created and is running IOR interceptors.
+ */
+ readonly attribute ObjectReferenceTemplate adapter_template ;
+
+ /** On read, returns the current factory that will be used to create
+ * object references for the object adapter that was just created
+ * and is running IOR interceptors. By default, this factory is the same
+ * as the value of the adapter_template attribute. The current_factory
+ * may also be set to another object reference template inside an
+ * IORInterceptor_3_0.
+ */
+ attribute ObjectReferenceFactory current_factory ;
+ };
+
+ /**
+ * Interceptor used to establish tagged components in the profiles within
+ * an IOR.
+ * <p>
+ * In some cases, a portable ORB service implementation may need to add
+ * information describing the server's or object's ORB service related
+ * capabilities to object references in order to enable the ORB service
+ * implementation in the client to function properly.
+ * <p>
+ * This is supported through the <code>IORInterceptor</code> and
+ * <code>IORInfo</code> interfaces.
+ *
+ * @see IORInfo
+ */
+ local interface IORInterceptor : Interceptor {
+ /**
+ * A server side ORB calls the <code>establish_components</code>
+ * operation on all registered <code>IORInterceptor</code> instances
+ * when it is assembling the list of components that will be included
+ * in the profile or profiles of an object reference. This operation
+ * is not necessarily called for each individual object reference.
+ * In the case of the POA, this operation is called each time POA::create_POA
+ * is called. In any case, <code>establish_components</code> is
+ * guaranteed to be called at least once for each distinct set of
+ * server policies.
+ * <p>
+ * An implementation of <code>establish_components</code> must not
+ * throw exceptions. If it does, the ORB shall ignore the exception
+ * and proceed to call the next IOR Interceptor's
+ * <code>establish_components</code> operation.
+ *
+ * @param info The <code>IORInfo</code> instance used by the ORB
+ * service to query applicable policies and add components to be
+ * included in the generated IORs.
+ */
+ void establish_components (in IORInfo info);
+ };
+
+ local interface IORInterceptor_3_0 : IORInterceptor {
+ /** The components_established method is invoked on all registered
+ * IORInterceptor_3_0 instances after establish_components
+ * has been invoked on all registered IORInterceptor instances.
+ * The adapter_template is available in info during this call.
+ * The current_factory may be get or set in info during this call.
+ * <p>
+ * Any exception thrown from this method is handled by the Object
+ * Adapter that called this interceptor. In the case of the POA,
+ * an exception results in a OBJ_ADAPTER exception with an OMG
+ * standard minor code of 6.
+ * @param info The IORInfo for the object adapter being created.
+ */
+ void components_established( in IORInfo info ) ;
+
+ /** Called whenever the state of an adapter manager changes.
+ * For the POA, that is the POAManager. If the state change
+ * is reported through <code>adapter_manager_state_changed</code>,
+ * it is not reported through <code>adapter_state_changed</code>.
+ * @param id the adapter manager id of the adapter manager that
+ * changed state
+ * @param state the new state of the adapter manager
+ */
+ void adapter_manager_state_changed( in AdapterManagerId id,
+ in AdapterState state ) ;
+
+ /** Called whenever the state of an object adapter changes, and
+ * the state change is not caused by an adapter manager. Such
+ * changes are reported to all registered <code>IORInterceptor_3_0</code>
+ * instances.
+ * @param templates the sequence of <code>ObjectReferenceTemplate</code> instances
+ * on which this state change occurred.
+ * @param state the new <code>AdapterState</code> shared by all of the templates.
+ */
+ void adapter_state_changed( in ObjectReferenceTemplateSeq templates,
+ in AdapterState state ) ;
+ };
+
+ /**
+ * Enables policy types to be constructed using
+ * <code>CORBA.ORB.create_policy</code>.
+ * <p>
+ * A portable ORB service implementation registers an instance of the
+ * <code>PolicyFactory</code> interface during ORB initialization in order
+ * to enable its policy types to be constructed using
+ * <code>CORBA.ORB.create_policy</code>. The POA is required to preserve
+ * any policy which is registered with <code>ORBInitInfo</code> in this
+ * manner.
+ *
+ * @see ORBInitInfo#register_policy_factory
+ */
+ local interface PolicyFactory
+ {
+ /**
+ * Returns an instance of the appropriate interface derived from
+ * <code>CORBA.Policy</code> whose value corresponds to the
+ * specified any.
+ * <p>
+ * The ORB calls <code>create_policy</code> on a registered
+ * <code>PolicyFactory</code> instance when
+ * <code>CORBA.ORB.create_policy</code> is called for the
+ * <code>PolicyType</code> under which the <code>PolicyFactory</code> has
+ * been registered. The <code>create_policy</code> operation then
+ * returns an instance of the appropriate interface derived from
+ * <code>CORBA.Policy</code> whose value corresponds to the specified
+ * any. If it cannot, it shall throw an exception as described for
+ * <code>CORBA.ORB.create_policy</code>.
+ *
+ * @param type An int specifying the type of policy being created.
+ * @param value An any containing data with which to construct the
+ * <code>CORBA.Policy</code>.
+ * @return A <code>CORBA.Policy</code> object of the specified type and
+ * value.
+ */
+ CORBA::Policy create_policy
+ (in CORBA::PolicyType type, in any value)
+ raises (CORBA::PolicyError);
+ };
+
+ /**
+ * Passed to each <code>ORBInitializer</code>, allowing it to
+ * to register interceptors and perform other duties while the ORB is
+ * initializing.
+ * <p>
+ * The <code>ORBInitInfo</code> object is only valid during
+ * <code>ORB.init</code>. If a service keeps a reference to its
+ * <code>ORBInitInfo</code> object and tries to use it after
+ * <code>ORB.init</code> returns, the object no longer exists and an
+ * <code>OBJECT_NOT_EXIST</code> exception shall be thrown.
+ *
+ * @see ORBInitializer
+ */
+ local interface ORBInitInfo {
+
+ /** Object id, represented as a String */
+ typedef string ObjectId;
+
+ /**
+ * Only one Interceptor of a given name can be registered with the
+ * ORB for each Interceptor type. If an attempt is made to register a
+ * second Interceptor with the same name, DuplicateName is thrown.
+ * <p>
+ * An Interceptor may be anonymous, i.e., have an empty string as the
+ * name attribute. Any number of anonymous Interceptors may be
+ * registered with the ORB so, if the Interceptor being registered
+ * is anonymous, the registration operation will not throw
+ * <code>DuplicateName</code>.
+ */
+ exception DuplicateName {
+ /**
+ * The name for which there was already an interceptor registered.
+ */
+ string name;
+ };
+
+ /**
+ * This exception is thrown by
+ * <code>register_initial_reference</code> and
+ * <code>resolve_initial_references</code>.
+ * <code>register_initial_reference</code> throws <code>InvalidName</code>
+ * if:
+ * <ul>
+ * <li>this operation is called with an empty string id; or</li>
+ * <li>this operation is called with an id that is already registered,
+ * including the default names defined by OMG.</li>
+ * </ul>
+ * <code>resolve_initial_references</code> throws
+ * <code>InvalidName</code> if the name to be resolved is invalid.
+ */
+ exception InvalidName {};
+
+ /**
+ * Returns the arguments passed to <code>ORB.init</code>. They may or
+ * may not contain the ORB's arguments.
+ */
+ readonly attribute CORBA::StringSeq arguments;
+
+ /**
+ * Returns the ID of the ORB being initialized.
+ */
+ readonly attribute string orb_id;
+
+ /**
+ * Returns the <code>IOP.CodecFactory</code>. The
+ * <code>CodecFactory</code> is normally obtained via a call to
+ * <code>ORB.resolve_initial_references( "CodecFactory" )</code>, but
+ * since the ORB is not yet available and Interceptors, particularly when
+ * processing service contexts, will require a <code>Codec</code>, a
+ * means of obtaining a <code>Codec</code> is necessary during ORB
+ * initialization.
+ */
+ readonly attribute IOP::CodecFactory codec_factory;
+
+ /**
+ * Identical to <code>ORB.register_initial_reference</code>. This same
+ * functionality exists here because the ORB, not yet fully initialized,
+ * is not yet available but initial references may need to be
+ * registered as part of Interceptor registration. The only difference
+ * is that the version of this operation on the ORB uses PIDL
+ * (<code>CORBA.ORB.ObjectId</code>) and
+ * (<code>CORBA.ORB.InvalidName</code>) whereas the version in this
+ * interface uses IDL defined in this interface; the semantics are
+ * identical.
+ */
+ void register_initial_reference (in ObjectId id, in Object obj)
+ raises (InvalidName);
+
+ // This was incorrectly returning void in orbos/99-12-02, correction
+ // from errata in orbos/00-01-01
+ /**
+ * Identical to <code>ORB.resolve_initial_references</code>. This same
+ * functionality exists here because the ORB, not yet fully initialized,
+ * is not yet available but initial references may be required from the
+ * ORB as part of Interceptor registration. The only difference is that
+ * the version of this operation on the ORB uses PIDL
+ * (<code>CORBA::ORB::ObjectId</code> and
+ * <code>CORBA::ORB::InvalidName</code>) whereas the version in this
+ * interface uses IDL defined in this interface; the semantics
+ * are identical.
+ * <p>
+ * This operation is only valid during post_init.
+ */
+ Object resolve_initial_references (in ObjectId id) raises (InvalidName);
+
+ /**
+ * Used to add a client-side request Interceptor to the list of
+ * client-side request Interceptors.
+ *
+ * @param interceptor The <code>ClientRequestInterceptor</code> to be
+ * added.
+ * @exception DuplicateName thrown if a client-side request Interceptor
+ * has already been registered with this Interceptor's name.
+ */
+ void add_client_request_interceptor
+ (in ClientRequestInterceptor interceptor)
+ raises (DuplicateName);
+
+ /**
+ * Used to add a server-side request Interceptor to the list of
+ * server-side request Interceptors.
+ *
+ * @param interceptor The ServerRequestInterceptor to be added.
+ * @exception DuplicateName thrown if a server-side request Interceptor
+ * has already been registered with this Interceptor's name
+ */
+ void add_server_request_interceptor (
+ in ServerRequestInterceptor interceptor)
+ raises (DuplicateName);
+
+ /**
+ * Used to add an IOR Interceptor to the list of IOR Interceptors.
+ *
+ * @param interceptor The IORInterceptor to be added.
+ * @exception DuplicateName thrown if an IOR Interceptor has already
+ * been registered with this Interceptor's name.
+ */
+ void add_ior_interceptor (in IORInterceptor interceptor)
+ raises (DuplicateName);
+
+ /**
+ * Called to allocate a slot on <code>PortableInterceptor.Current</code>.
+ * <p>
+ * Note that while slot id's can be allocated within an ORB initializer,
+ * the slots themselves cannot be initialized.
+ *
+ * @return The index to the slot which has been allocated.
+ * @exception BAD_INV_ORDER thrown, with a standard minor code of 14, if
+ * <code>set_slot</code> or <code>get_slot</code> is called on the
+ * <code>PICurrent</code> within an ORB initializer.
+ * @see Current
+ */
+ SlotId allocate_slot_id ();
+
+ /**
+ * Registers a <code>PolicyFactory</code> for the given
+ * <code>PolicyType</code>.
+ *
+ * @param type The policy type that the given <code>PolicyFactory</code>
+ * serves.
+ * @param policy_factory The factory for the given policy type.
+ * @exception BAD_INV_ORDER thrown, with a standard minor code of 16, if
+ * a <code>PolicyFactory</code> already exists for the given
+ * <code>PolicyType</code>.
+ */
+ void register_policy_factory (
+ in CORBA::PolicyType type,
+ in PolicyFactory policy_factory);
+ };
+
+ /**
+ * Facilitates interceptor registration and ORB initialization.
+ * <p>
+ * Interceptors are intended to be a means by which ORB services gain
+ * access to ORB processing, effectively becoming part of the ORB.
+ * Since Interceptors are part of the ORB, when <code>ORB.init</code>
+ * returns an ORB, the Interceptors shall have been registered.
+ * Interceptors cannot be registered on an ORB after it has been
+ * returned by a call to <code>ORB.init</code>.
+ * <p>
+ * An Interceptor is registered by registering an associated
+ * <code>ORBInitializer</code> object which implements the
+ * <code>ORBInitializer</code> interface. When an ORB is initializing,
+ * it shall call each registered <code>ORBInitializer</code>, passing it
+ * an <code>ORBInitInfo</code> object which is used to register its
+ * Interceptor.
+ * <p>
+ * <b>Registering ORB Initializers in Java</b>
+ * <p>
+ * ORBInitializers are registered via Java ORB properties.
+ * <p>
+ * The property names are of the form:
+ * <blockquote><code>
+ * org.omg.PortableInterceptor.ORBInitializerClass.&lt;Service&gt;
+ * </code></blockquote>
+ * where <code>&lt;Service&gt;</code> is the string name of a class
+ * which implements
+ * <blockquote><code>
+ * org.omg.PortableInterceptor.ORBInitializer
+ * </code></blockquote>
+ * To avoid name collisions, the reverse DNS name convention should be
+ * used. For example, if company X has three initializers, it could define
+ * the following properties:
+ * <ul>
+ * <li><code>
+ * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init1
+ * </code></li>
+ * <li><code>
+ * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init2
+ * </code></li>
+ * <li><code>
+ * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init3
+ * </code></li>
+ * </ul>
+ * During ORB.init, these ORB properties which begin with
+ * <code>org.omg.PortableInterceptor.ORBInitializerClass</code> shall be
+ * collected, the <code>&lt;Service&gt;</code> portion of each property
+ * shall be extracted, an object shall be instantiated with the
+ * <code>&lt;Service&gt;</code> string as its class name, and the
+ * <code>pre_init</code> and <code>post_init</code> methods shall be
+ * called on that object. If there are any exceptions, the ORB shall
+ * ignore them and proceed.
+ * <p>
+ * <b><i>Example</i></b>
+ * <p>
+ * A client-side logging service written by company X, for example, may
+ * have the following ORBInitializer implementation:
+ * <pre><code>
+ * package com.x.logging;
+ *
+ * import org.omg.PortableInterceptor.Interceptor;
+ * import org.omg.PortableInterceptor.ORBInitializer;
+ * import org.omg.PortableInterceptor.ORBInitInfo;
+ *
+ * public class LoggingService implements ORBInitializer {
+ * void pre_init( ORBInitInfo info ) {
+ * // Instantiate the Logging Service s Interceptor.
+ * Interceptor interceptor = new LoggingInterceptor();
+ *
+ * // Register the Logging Service s Interceptor.
+ * info.add_client_request_interceptor( interceptor );
+ * }
+ *
+ * void post_init( ORBInitInfo info ) {
+ * // This service does not need two init points.
+ * }
+ * }
+ * </code></pre>
+ * To run a program called <code>MyApp</code> using this logging
+ * service, the user could type:
+ * <blockquote><code>
+ * java
+ *-Dorg.omg.PortableInterceptor.ORBInitializerClass.com.x.Logging.LoggingService
+ * MyApp
+ * </code></blockquote>
+ * <p>
+ * <b>Notes about Registering Interceptors</b>
+ * <p>
+ * Request Interceptors are registered on a per-ORB basis.
+ * <p>
+ * To achieve virtual per-object Interceptors, query the policies on the
+ * target from within the interception points to determine whether they
+ * should do any work.
+ * <p>
+ * To achieve virtual per-POA Interceptors, instantiate each POA with a
+ * different ORB. While Interceptors may be ordered administratively,
+ * there is no concept of order with respect to the registration of
+ * Interceptors. Request Interceptors are concerned with service contexts.
+ * Service contexts have no order, so there is no purpose for request
+ * Interceptors to have an order. IOR Interceptors are concerned with
+ * tagged components. Tagged components also have no order, so there
+ * is no purpose for IOR Interceptors to have an order.
+ * <p>
+ * Registration code should avoid using the ORB (i.e., calling
+ * <code>ORB.init</code> with the provided <code>orb_id</code>). Since
+ * registration occurs during ORB initialization, results of invocations
+ * on this ORB while it is in this state are undefined.
+ *
+ * @see ORBInitInfo
+ */
+ local interface ORBInitializer {
+
+ /**
+ * Called during ORB initialization. If it is expected that initial
+ * services registered by an interceptor will be used by other
+ * interceptors, then those initial services shall be registered at
+ * this point via calls to
+ * <code>ORBInitInfo.register_initial_reference</code>.
+ *
+ * @param info provides initialization attributes and operations by
+ * which Interceptors can be registered.
+ */
+ void pre_init (in ORBInitInfo info);
+
+ /**
+ * Called during ORB initialization. If a service must resolve initial
+ * references as part of its initialization, it can assume that all
+ * initial references will be available at this point.
+ * <p>
+ * Calling the <code>post_init</code> operations is not the final
+ * task of ORB initialization. The final task, following the
+ * <code>post_init</code> calls, is attaching the lists of registered
+ * interceptors to the ORB. Therefore, the ORB does not contain the
+ * interceptors during calls to <code>post_init</code>. If an
+ * ORB-mediated call is made from within <code>post_init</code>, no
+ * request interceptors will be invoked on that call.
+ * Likewise, if an operation is performed which causes an IOR to be
+ * created, no IOR interceptors will be invoked.
+ *
+ * @param info provides initialization attributes and
+ * operations by which Interceptors can be registered.
+ */
+ void post_init (in ORBInitInfo info);
+ };
+};
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl
new file mode 100644
index 0000000..32690f5
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef _MESSAGING_IDL_
+#define _MESSAGING_IDL_
+
+#pragma prefix "omg.org"
+
+module Messaging {
+
+ /** Synchronization scope */
+ typedef short SyncScope;
+
+ /**
+ * Constant, defined in the Messaging spec, to define how far the
+ * request shall progress before control is returned to the client.
+ */
+ const SyncScope SYNC_WITH_TRANSPORT = 1;
+};
+
+#endif // _MESSAGING_IDL_
+
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html b/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html
new file mode 100644
index 0000000..9c4034e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>This package contains the exceptions and typedefs from the <code>ORBInitInfo</code>
+local interface of the <code>PortableInterceptor</code> module specified in the OMG
+Portable Interceptor specification,
+<a href="http://www.omg.org/cgi-bin/doc?ptc/2000-08-06">
+ptc/2000-08-06</a>, section 21.7.2. Please
+refer to that OMG specification for further details.
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html b/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html
new file mode 100644
index 0000000..f35c534
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html
@@ -0,0 +1,103 @@
+<!doctype html>
+<html>
+<head>
+<!--
+
+Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+-->
+
+</head>
+<body>
+
+Provides a mechanism to register ORB hooks through which ORB services
+can intercept the normal flow of execution of the ORB.
+
+<h2>Interceptor Types</h2>
+There are currently three types of interceptors that can be registered:
+<ul>
+ <li>{@link org.omg.PortableInterceptor.IORInterceptor IORInterceptor} -
+ Used to establish tagged components in the profiles within an IOR.</li>
+ <li>{@link org.omg.PortableInterceptor.ClientRequestInterceptor
+ClientRequestInterceptor} -
+ Intercepts the flow of a request/reply sequence through the ORB on
+ the <i>client</i> side.</li>
+ <li>{@link org.omg.PortableInterceptor.ServerRequestInterceptor
+ServerRequestInterceptor} -
+ Intercepts the flow of a request/reply sequence through the ORB on
+ the <i>server</i> side.</li>
+</ul>
+See the javadocs for class <code>
+{@link org.omg.PortableInterceptor.ORBInitializer ORBInitializer}</code>
+for how to go about registering interceptors.
+
+<a id="unimpl"></a>
+<h2>Known limitations / unimplemented methods in package
+<code>org.omg.PortableInterceptor</code></h2>
+
+<ul>
+ <li>
+ <code><b>RequestInfo</b></code>
+ <ul>
+ <li><code><b>sync_scope()</b></code>: Always returns SYNC_WITH_TRANSPORT</li>
+ <li><code><b>arguments()</b></code>: Only supported for DII/DSI calls</li>
+ <li><code><b>exceptions()</b></code>: Only supported for DII calls on client side.
+ Not supported on server-side.</li>
+ <li><code><b>contexts()</b></code>: Only supported for DII calls on client side.
+ Not supported on server-side since our ORB does not send contexts.
+ </li>
+ <li><code><b>operation_context()</b></code>: Only supported for DII calls
+ on client side. Not supported on server-side since ORB
+ does not send contexts.</li>
+ <li><code><b>result()</b></code>: Only supported for DII/DSI calls</li>
+ </ul>
+ </li>
+ <li>
+ <code><b>ClientRequestInfo</b></code>
+ <ul>
+ <li><code><b>received_exception_id()</b></code>: Always returns null in the
+ DII case</li>
+ <li><code><b>get_request_policy(int type)</b></code>: Not implemented.</li>
+ </ul>
+ </li>
+ <li>
+ <code><b>ServerRequestInfo</b></code>
+ <ul>
+ <li><code><b>sending_exception()</b></code>: Does not support user exceptions on
+ the server side in non-DSI case.</li>
+ </ul>
+ </li>
+</ul>
+
+<h2>Package Specification</h2>
+<P>For a precise list of supported sections of official OMG specifications with which
+the Java[tm] Platform, Standard Edition 6 complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java b/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java
new file mode 100644
index 0000000..82ec778
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.PortableServer;
+
+
+/**
+* org/omg/PortableServer/CurrentHelper.java .
+* Generated by the IDL-to-Java compiler (portable), version "3.1"
+* from ../../../../src/share/classes/org/omg/PortableServer/poa.idl
+* Tuesday, October 23, 2001 1:17:01 PM PDT
+*/
+
+
+/**
+ * The PortableServer::Current interface, derived from
+ * CORBA::Current, provides method implementations with
+ * access to the identity of the object on which the
+ * method was invoked. The Current interface is provided
+ * to support servants that implement multiple objects,
+ * but can be used within the context of POA-dispatched
+ * method invocations on any servant. To provide location
+ * transparency, ORBs are required to support use of
+ * Current in the context of both locally and remotely
+ * invoked operations. An instance of Current can be
+ * obtained by the application by issuing the
+ * CORBA::ORB::resolve_initial_references("POACurrent")
+ * operation. Thereafter, it can be used within the
+ * context of a method dispatched by the POA to obtain
+ * the POA and ObjectId that identify the object on
+ * which that operation was invoked.
+ */
+abstract public class CurrentHelper
+{
+ private static String _id = "IDL:omg.org/PortableServer/Current:2.3";
+
+ public static void insert (org.omg.CORBA.Any a,
+ org.omg.PortableServer.Current 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 ());
+ }
+
+ public static org.omg.PortableServer.Current extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (
+ org.omg.PortableServer.CurrentHelper.id (), "Current");
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.PortableServer.Current read (
+ org.omg.CORBA.portable.InputStream istream)
+ {
+ throw new org.omg.CORBA.MARSHAL ();
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream,
+ org.omg.PortableServer.Current value)
+ {
+ throw new org.omg.CORBA.MARSHAL ();
+ }
+
+ public static org.omg.PortableServer.Current narrow (
+ org.omg.CORBA.Object obj)
+ {
+ if (obj == null)
+ return null;
+ else if (obj instanceof org.omg.PortableServer.Current)
+ return (org.omg.PortableServer.Current)obj;
+ else if (!obj._is_a (id ()))
+ throw new org.omg.CORBA.BAD_PARAM ();
+ return null;
+ }
+
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html
new file mode 100644
index 0000000..cb33802
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+<P> Provides method implementations with
+ access to the identity of the object on which the
+ method was invoked. The <code>Current</code> package
+ supports servants that implement multiple objects,
+ but can be used within the context of POA-dispatched
+ method invocations on any servant. To provide location
+ transparency, ORBs are required to support use of
+ <code>Current</code> in the context of both locally and remotely
+ invoked operations. An instance of <code>Current</code> can be
+ obtained by the application by issuing the
+ <code>CORBA::ORB::resolve_initial_references("POACurrent")</code>
+ operation. Thereafter, it can be used within the
+ context of a method dispatched by the POA to obtain
+ the <code>POA</code> and <code>ObjectId</code> that identify the object on
+ which that operation was invoked.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java b/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java
new file mode 100644
index 0000000..aaac51e
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.PortableServer;
+
+/**
+ * Allows dynamic handling of object invocations. POA-based DSI
+ * servants inherit from the
+ * standard <code>DynamicImplementation</code> class, this class inherits
+ * from the <code>Servant</code> class. Based on IDL to Java spec.
+ * CORBA V 2.3.1 ptc/00-01-08.pdf.
+ */
+abstract public class DynamicImplementation extends Servant {
+
+/**
+ * Receives requests issued to any CORBA object
+ * incarnated by the DSI servant and performs the processing
+ * necessary to execute the request.
+ * @param request the request issued to the CORBA object.
+ */
+ abstract public void invoke(org.omg.CORBA.ServerRequest request);
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java b/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java
new file mode 100644
index 0000000..7a37689
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.PortableServer;
+
+/**
+* org/omg/PortableServer/POAHelper.java .
+* Generated by the IDL-to-Java compiler (portable), version "3.1"
+* from ../../../../src/share/classes/org/omg/PortableServer/poa.idl
+* Tuesday, October 23, 2001 1:16:58 PM PDT
+*/
+
+
+/**
+ * A POA object manages the implementation of a
+ * collection of objects. The POA supports a name space
+ * for the objects, which are identified by Object Ids.
+ * A POA also provides a name space for POAs. A POA is
+ * created as a child of an existing POA, which forms a
+ * hierarchy starting with the root POA. A POA object
+ * must not be exported to other processes, or
+ * externalized with ORB::object_to_string.
+ */
+abstract public class POAHelper
+{
+ private static String _id = "IDL:omg.org/PortableServer/POA:2.3";
+
+ public static void insert (org.omg.CORBA.Any a,
+ org.omg.PortableServer.POA 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 ());
+ }
+
+ public static org.omg.PortableServer.POA extract (org.omg.CORBA.Any a)
+ {
+ return read (a.create_input_stream ());
+ }
+
+ private static org.omg.CORBA.TypeCode __typeCode = null;
+ synchronized public static org.omg.CORBA.TypeCode type ()
+ {
+ if (__typeCode == null)
+ {
+ __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.PortableServer.POAHelper.id (), "POA");
+ }
+ return __typeCode;
+ }
+
+ public static String id ()
+ {
+ return _id;
+ }
+
+ public static org.omg.PortableServer.POA read (
+ org.omg.CORBA.portable.InputStream istream)
+ {
+ throw new org.omg.CORBA.MARSHAL ();
+ }
+
+ public static void write (org.omg.CORBA.portable.OutputStream ostream,
+ org.omg.PortableServer.POA value)
+ {
+ throw new org.omg.CORBA.MARSHAL ();
+ }
+
+ public static org.omg.PortableServer.POA narrow (org.omg.CORBA.Object obj)
+ {
+ if (obj == null)
+ return null;
+ else if (obj instanceof org.omg.PortableServer.POA)
+ return (org.omg.PortableServer.POA)obj;
+ else if (!obj._is_a (id ()))
+ throw new org.omg.CORBA.BAD_PARAM ();
+ return null;
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html
new file mode 100644
index 0000000..7bdbaec
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+<P>
+Encapsulates the processing
+ state of the POAs it is associated with. Each <code>POA</code> object has an associated <code>POAManager</code> object. A POA manager may be associated with one or more
+ POA objects.
+
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html
new file mode 100644
index 0000000..3cda2fb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+
+<P>Allows programmers to construct object implementations that are portable
+between different ORB products.
+
+<P>The Portable Object Adaptor (POA) is designed to meet the following goals:
+<UL>
+<LI>Allow programmers to construct object implementations that are portable between different ORB products.
+<LI>Provide support for objects with persistent identities.
+<LI>Provide support for transparent activation of objects.
+<LI>Allow a single servant to support multiple object identities simultaneously.
+</UL>
+
+
+
+<P>Given an interface <code>My</code> defined in <code>My.idl</code>, the file <code>MyPOA.java</code>
+is generated by the <code>idlj</code> compiler. You must provide
+the implementation for <code>My</code> and it must inherit from <code>MyPOA</code>.
+
+<P><code>MyPOA.java</code> is a stream-based skeleton that extends
+<code>org.omg.PortableServer.Servant</code> and implements the <code>InvokeHandler</code>
+interface and the operations interface associated with the IDL interface the skeleton implements.
+
+<P>The <code>PortableServer</code> module for the Portable Object Adapter (POA)
+defines the native <code>Servant</code> type. In the Java programming language,
+the <code>Servant</code> type is mapped to the Java <code>org.omg.PortableServer.Servant</code> class.
+It serves as the base class for all POA servant implementations
+and provides a number of methods that may be invoked by the application programmer,
+as well as methods which are invoked by the POA itself
+and may be overridden by the user to control aspects of servant behavior.
+
+
+
+<P>All Mapping corresponds to the Chapter 11 of
+ CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf.
+ The exception to this is the <code>id</code> attribute, which is added in ptc/00-08-06,
+ section 11.3.8.26.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6, ORB complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/Servant.java b/src/java.corba/share/classes/org/omg/PortableServer/Servant.java
new file mode 100644
index 0000000..de960bb
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/Servant.java
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.PortableServer;
+
+import org.omg.CORBA.ORB;
+import org.omg.PortableServer.portable.Delegate;
+
+/**
+ * Defines the native <code>Servant</code> type. In Java, the
+ * <code>Servant</code> type is mapped to the Java
+ * <code>org.omg.PortableServer.Servant</code> class.
+ * It serves as the base class for all POA servant
+ * implementations and provides a number of methods that may
+ * be invoked by the application programmer, as well as methods
+ * which are invoked by the POA itself and may be overridden by
+ * the user to control aspects of servant behavior.
+ * Based on IDL to Java spec. (CORBA V2.3.1) ptc/00-01-08.pdf.
+ */
+
+abstract public class Servant {
+
+ private transient Delegate _delegate = null;
+ /**
+ * Gets the ORB vendor-specific implementation of
+ * <code>PortableServer::Servant</code>.
+ * @return <code>_delegate</code> the ORB vendor-specific
+ * implementation of <code>PortableServer::Servant</code>.
+ */
+ final public Delegate _get_delegate() {
+ if (_delegate == null) {
+ throw
+ new
+ org.omg.CORBA.BAD_INV_ORDER
+ ("The Servant has not been associated with an ORB instance");
+ }
+ return _delegate;
+ }
+
+ /**
+ * Supports the Java ORB portability
+ * interfaces by providing a method for classes that support
+ * ORB portability through delegation to set their delegate.
+ * @param delegate ORB vendor-specific implementation of
+ * the <code>PortableServer::Servant</code>.
+ */
+ final public void _set_delegate(Delegate delegate) {
+ _delegate = delegate;
+ }
+
+ /**
+ * Allows the servant to obtain the object reference for
+ * the target CORBA object it is incarnating for that request.
+ * @return <code>this_object</code> <code>Object</code> reference
+ * associated with the request.
+ */
+ final public org.omg.CORBA.Object _this_object() {
+ return _get_delegate().this_object(this);
+ }
+
+ /**
+ * Allows the servant to obtain the object reference for
+ * the target CORBA Object it is incarnating for that request.
+ * @param orb ORB with which the servant is associated.
+ * @return <code>_this_object</code> reference associated with the request.
+ */
+ final public org.omg.CORBA.Object _this_object(ORB orb) {
+ try {
+ ((org.omg.CORBA_2_3.ORB)orb).set_delegate(this);
+ }
+ catch(ClassCastException e) {
+ throw
+ new
+ org.omg.CORBA.BAD_PARAM
+ ("POA Servant requires an instance of org.omg.CORBA_2_3.ORB");
+ }
+ return _this_object();
+ }
+
+ /**
+ * Returns the instance of the ORB
+ * currently associated with the <code>Servant</code> (convenience method).
+ * @return <code>orb</code> the instance of the ORB currently
+ * associated with the <code>Servant</code>.
+ */
+ final public ORB _orb() {
+ return _get_delegate().orb(this);
+ }
+
+ /**
+ * Allows easy execution of common methods, equivalent to
+ * <code>PortableServer::Current:get_POA</code>.
+ * @return <code>poa</code> POA associated with the servant.
+ */
+ final public POA _poa() {
+ return _get_delegate().poa(this);
+ }
+
+ /**
+ * Allows easy execution of
+ * common methods, equivalent
+ * to calling <code>PortableServer::Current::get_object_id</code>.
+ * @return <code>object_id</code> the <code>Object</code> ID associated
+ * with this servant.
+ */
+ final public byte[] _object_id() {
+ return _get_delegate().object_id(this);
+ }
+
+ /**
+ * Returns the
+ * root POA from the ORB instance associated with the servant.
+ * Subclasses may override this method to return a different POA.
+ * @return <code>default_POA</code> the POA associated with the
+ * <code>Servant</code>.
+ */
+ public POA _default_POA() {
+ return _get_delegate().default_POA(this);
+ }
+
+ /**
+ * Checks to see if the specified <code>repository_id</code> is present
+ * on the list returned by <code>_all_interfaces()</code> or is the
+ * <code>repository_id</code> for the generic CORBA Object.
+ * @param repository_id the <code>repository_id</code>
+ * to be checked in the repository list or against the id
+ * of generic CORBA objects.
+ * @return <code>is_a</code> boolean indicating whether the specified
+ * <code>repository_id</code> is
+ * in the repository list or is same as a generic CORBA
+ * object.
+ */
+ public boolean _is_a(String repository_id) {
+ return _get_delegate().is_a(this, repository_id);
+ }
+
+ /**
+ * Checks for the existence of an
+ * <code>Object</code>.
+ * The <code>Servant</code> provides a default implementation of
+ * <code>_non_existent()</code> that can be overridden by derived servants.
+ * @return <code>non_existent</code> <code>true</code> if that object does
+ * not exist, <code>false</code> otherwise.
+ */
+ public boolean _non_existent() {
+ return _get_delegate().non_existent(this);
+ }
+
+ // Ken and Simon will ask about editorial changes
+ // needed in IDL to Java mapping to the following
+ // signature.
+ /**
+ * Returns an object in the Interface Repository
+ * which provides type information that may be useful to a program.
+ * <code>Servant</code> provides a default implementation of
+ * <code>_get_interface()</code>
+ * that can be overridden by derived servants if the default
+ * behavior is not adequate.
+ * @return <code>get_interface</code> type information that corresponds to this servant.
+ */
+ /*
+ public org.omg.CORBA.Object _get_interface() {
+ return _get_delegate().get_interface(this);
+ }
+ */
+
+ // _get_interface_def() replaces the _get_interface() method
+
+ /**
+ * Returns an <code>InterfaceDef</code> object as a
+ * <code>CORBA::Object</code> that defines the runtime type of the
+ * <code>CORBA::Object</code> implemented by the <code>Servant</code>.
+ * The invoker of <code>_get_interface_def</code>
+ * must narrow the result to an <code>InterfaceDef</code> in order
+ * to use it.
+ * <P>This default implementation of <code>_get_interface_def()</code>
+ * can be overridden
+ * by derived servants if the default behavior is not adequate.
+ * As defined in the CORBA 2.3.1 specification, section 11.3.1, the
+ * default behavior of <code>_get_interface_def()</code> is to use
+ * the most derived
+ * interface of a static servant or the most derived interface retrieved
+ * from a dynamic servant to obtain the <code>InterfaceDef</code>.
+ * This behavior must
+ * be supported by the <code>Delegate</code> that implements the
+ * <code>Servant</code>.
+ * @return <code>get_interface_def</code> an <code>InterfaceDef</code>
+ * object as a
+ * <code>CORBA::Object</code> that defines the runtime type of the
+ * <code>CORBA::Object</code> implemented by the <code>Servant</code>.
+ */
+ public org.omg.CORBA.Object _get_interface_def()
+ {
+ // First try to call the delegate implementation class's
+ // "Object get_interface_def(..)" method (will work for ORBs
+ // whose delegates implement this method).
+ // Else call the delegate implementation class's
+ // "InterfaceDef get_interface(..)" method using reflection
+ // (will work for ORBs that were built using an older version
+ // of the Delegate interface with a get_interface method
+ // but not a get_interface_def method).
+
+ org.omg.PortableServer.portable.Delegate delegate = _get_delegate();
+ try {
+ // If the ORB's delegate class does not implement
+ // "Object get_interface_def(..)", this will throw
+ // an AbstractMethodError.
+ return delegate.get_interface_def(this);
+ } catch( AbstractMethodError aex ) {
+ // Call "InterfaceDef get_interface(..)" method using reflection.
+ try {
+ Class[] argc = { org.omg.PortableServer.Servant.class };
+ java.lang.reflect.Method meth =
+ delegate.getClass().getMethod("get_interface", argc);
+ Object[] argx = { this };
+ return (org.omg.CORBA.Object)meth.invoke(delegate, argx);
+ } catch( java.lang.reflect.InvocationTargetException exs ) {
+ Throwable t = exs.getTargetException();
+ if (t instanceof Error) {
+ throw (Error) t;
+ } else if (t instanceof RuntimeException) {
+ throw (RuntimeException) t;
+ } else {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ } catch( RuntimeException rex ) {
+ throw rex;
+ } catch( Exception exr ) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+ }
+ }
+
+ // methods for which the user must provide an
+ // implementation
+ /**
+ * Used by the ORB to obtain complete type
+ * information from the servant.
+ * @param poa POA with which the servant is associated.
+ * @param objectId is the id corresponding to the object
+ * associated with this servant.
+ * @return list of type information for the object.
+ */
+ abstract public String[] _all_interfaces( POA poa, byte[] objectId);
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java
new file mode 100644
index 0000000..76c8030
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package org.omg.PortableServer.ServantLocatorPackage;
+
+/**
+ * The native type PortableServer::ServantLocator::Cookie is mapped
+ * to java.lang.Object. A CookieHolder class is provided for passing
+ * the Cookie type as an out parameter. The CookieHolder class
+ * follows exactly the same pattern as the other holder classes
+ * for basic types.
+ */
+
+final public class CookieHolder implements org.omg.CORBA.portable.Streamable
+{
+ public java.lang.Object value;
+
+ public CookieHolder() { }
+
+ public CookieHolder(java.lang.Object initial) {
+ value = initial;
+ }
+
+ public void _read( org.omg.CORBA.portable.InputStream is) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ public void _write( org.omg.CORBA.portable.OutputStream os) {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+
+ public org.omg.CORBA.TypeCode _type() {
+ throw new org.omg.CORBA.NO_IMPLEMENT();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html
new file mode 100644
index 0000000..a409400
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+Provides classes and interfaces for locating the servant.
+
+<P>This package supplies a <code>CookieHolder</code> class for passing
+the <code>Cookie</code> type as an <code>out</code> parameter. The <code>CookieHolder</code> class
+follows exactly the same pattern as the other holder classes for basic types.
+
+<H2>Package Specification</H2>
+
+<P>For a precise list of supported sections of official OMG specifications with which
+the Java[tm] Platform, Standard Edition 6 complies, see <A
+HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/corba.idl b/src/java.corba/share/classes/org/omg/PortableServer/corba.idl
new file mode 100644
index 0000000..6d0a028
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/corba.idl
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+// minimal definitions to keep idltojava happy while compiling poa.idl
+#pragma prefix "omg.org"
+
+module CORBA {
+
+ typedef string Identifier;
+ typedef string RepositoryId;
+
+ // basic Policy definition
+ typedef unsigned long PolicyType ;
+
+ /** The Policy interface provides a mechanism for ORBs and Object
+ * Services to allow access to certain choices that affect their
+ * operation. This information is accessed in a structured manner
+ * using interfaces derived from the org.omg.CORBA.Policy interface.
+ */
+ interface Policy {
+ /** Return the constant value that corresponds to the
+ * type of the policy object. The values of
+ * the polivy objectys are allocated by the OMG.
+ * New values for PolicyType should be obtained from the OMG by
+ * sending mail to request@omg.org. In general the constant
+ * values that are allocated are defined in conjunction with
+ * the definition of the corresponding policy object.
+ * @return the constant value that corresponds to the type of
+ * the policy object.
+ */
+ readonly attribute PolicyType policy_type;
+
+ /** Copies the policy object. The copy does not retain any
+ * relationships that the policy had with any domain or object.
+ * @return the copy of the policy object.
+ */
+ Policy copy( );
+
+ /** Destroys the policy object. It is the responsibility of
+ * the policy object to determine whether it can be destroyed.
+ */
+ void destroy( );
+ };
+
+ typedef sequence <Policy> PolicyList;
+
+ /**
+ * An interface that makes it possible to access information
+ * associated with a particular thread of execution, such as
+ * security information or a transaction identifier.
+ * <P>
+ * An ORB or CORBA service that needs its own thread-specific
+ * state extends the CORBA package's <code>Current</code>.
+ * Users of the service can obtain an instance of the appropriate
+ * <code>Current</code> interface by invoking
+ * <code>ORB.resolve_initial_references</code>.
+ * For example, the Security service obtains the <code>Current</code>
+ * relevant to it by invoking
+ * <PRE>
+ * ORB.resolve_initial_references("SecurityCurrent");
+ * </PRE>
+ * <P>
+ * A CORBA service does not have to use this method of keeping context
+ * but may choose to do so.
+ * <P>
+ * Methods on classes that implement from <code>Current</code> access state
+ * associated with the thread in which they are invoked, not state associated
+ * with the thread from which the <code>Current</code> was obtained.
+ * Current objects must not be exported to other processes, or externalized
+ * with ORB.object_to_string. If any attempt is made to do so, the offending
+ * operation will raise a MARSHAL system exception.
+ * @see <a href="package-summary.html#unimpl"><code>portable</code>
+ * package comments for unimplemented features</a>
+ */
+ interface Current { };
+};
+
+
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/package.html b/src/java.corba/share/classes/org/omg/PortableServer/package.html
new file mode 100644
index 0000000..ab441f9
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/package.html
@@ -0,0 +1,230 @@
+<!doctype html>
+<html>
+<head>
+<!--
+
+ Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body>
+Provides classes and interfaces for making the server side of your applications
+portable across multivendor ORBs.
+
+<P>In Java, Portable Object Adaptor (POA)-based Dynamic Skeleton Interface (DSI)
+servants inherit from the standard <code>DynamicImplementation</code> class, which
+inherits from the <code>Servant</code> class. The native <code>Servant</code> type is
+defined by the <code>PortableServer</code> module for the POA. In Java, the
+ <code>Servant</code> type is mapped to the Java
+ <code>org.omg.PortableServer.Servant</code> class.
+ It serves as the base class for all POA servant
+ implementations and provides a number of methods that may
+ be invoked by the application programmer, as well as methods
+ which are invoked by the POA itself and may be overridden by
+ the user to control aspects of servant behavior.
+
+<H2>Package Specification</H2>
+
+<P>For a precise list of supported sections of official OMG specifications with which
+the Java[tm] Platform, Standard Edition 6 complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+<H2>POA-related Interfaces</H2>
+
+<P>The <code>PortableServer</code> module defines the following POA-related interfaces:
+<UL>
+ <LI><code>POA</code>
+ <LI><code>POAManager</code>
+ <LI><code>ServantManager</code>
+ <LI><code>ServantActivator</code>
+ <LI><code>ServantLocator</code>
+ <LI><code>AdapterActivator</code>
+ <LI><code>ThreadPolicy</code>
+ <LI><code>LifespanPolicy</code>
+ <LI><code>IdUniquenessPolicy</code>
+ <LI><code>IdAssignmentPolicy</code>
+ <LI><code>ImplicitActivationPolicy</code>
+ <LI><code>ServantRetentionPolicy</code>
+ <LI><code>RequestProcessingPolicy</code>
+ <LI><code>Current</code>
+</UL>
+
+<P>In addition, the POA defines the <code>Servant</code> native type.
+
+<H3>Operations classes</H3>
+
+<P>Each of the interfaces listed above has an associated <code>Operations</code> interface.
+The <code>Operations</code> interface is generated by the <code>idlj</code> compiler and
+contains the method signatures for methods defined in its associated interface.
+The <code>Operations</code> interface can be accessed by both the client and the server,
+while its associated interface can only be called by the client.
+
+<H3>Value Classes</H3>
+
+Classes ending in the suffix <code>PolicyValue</code> provide the values used
+for the <code>create_POA</code> call, which sets the policy for the POA. See
+the <a href="#sampleserver">sample code</a> below for a demonstration.
+<code>PolicyValue</code> files include the following:
+<UL>
+<LI><code>IdAssignmentPolicyValue</code>
+<LI><code>IdUniquenessPolicyValue</code>
+<LI><code>ImplicitActivationPolicyValue</code>
+<LI><code>LifespanPolicyValue</code>
+<LI><code>RequestProcessingPolicyValue</code>
+<LI><code>ServantRetentionPolicyValue</code>
+<LI><code>ThreadPolicyValue</code>
+</UL>
+
+<H3>Helper Classes</H3>
+
+<P>Helper classes, which are generated for all user-defined types in an OMG IDL
+interface, supply static methods needed to manipulate those types.
+There is only one method in a helper class that an application programmer uses:
+the <code>narrow</code> method. Only Java interfaces mapped from IDL interfaces
+will have a helper class that includes a <code>narrow</code> method, so in
+the <code>PortableServer</code> package, only the following classes have a <code>narrow</code> method:
+<UL>
+<LI><code>ForwardRequestHelper</code>
+<LI><code>ServantActivatorHelper</code>
+<LI><code>ServantLocatorHelper</code>
+</UL>
+
+<H3>POA Classes</H3>
+
+<P>POA classes are used to implement the <code>ServantActivator</code> or <code>ServantLocator</code>.
+
+<H3>Exceptions</H3>
+
+<P>The <code>ForwardRequest</code> exception indicates to the ORB
+that it is responsible for delivering the current request and
+subsequent <code>ForwardRequest</code> requests to the object denoted in the
+<code>forward_reference</code> member of the exception.
+
+<H3>Interfaces Implemented by the Application Programmer</H3>
+
+<P>Most of what <code>PortableServer</code> does is transparent to the user.
+The result is that programmers will use only a few of the interfaces mentioned above.
+The remaining interfaces will be provided by the ORB implementation.
+The interfaces of interest to application programmers are the following:
+<ul>
+ <LI><code>AdapterActivator</code>
+ <P>Adapter activators are associated with POAs.
+ An adapter activator supplies a POA with the ability to create child POAs on demand,
+ as a side-effect of receiving a request that names the child POA (or one of its children),
+ or when <code>find_POA</code> is called with an activate parameter value of <code>TRUE</code>.
+ An application server that creates all its needed POAs at the beginning of execution
+ does not need to use or provide an adapter activator; it is necessary
+ only for the case in which POAs need to be created during request processing.
+ <LI><code>ServantLocator</code>
+ <P>When the POA has the <code>NON_RETAIN</code> policy,
+ it uses servant managers that are <code>ServantLocator</code>s.
+ <LI><code>ServantActivator</code>
+ <P>When the POA has the <code>RETAIN</code> policy,
+ it uses servant managers that are <code>ServantActivator</code>s.
+</ul>
+
+
+<H2>Package <code>org.omg.PortableServer.ServantLocatorPackage</code></H2>
+
+<P>This package supplies a <code>CookieHolder</code> class for passing
+the <code>Cookie</code> type as an <code>out</code> parameter. The <code>CookieHolder</code> class
+follows exactly the same pattern as the other holder classes for basic types.
+
+<H2>Related Documentation</H2>
+
+<P>For an overview of Java IDL, please see:
+{@extLink idl_guides Java&nbsp;IDL home page}.
+
+<H2>Example Code</H2>
+<a id="sampleserver"></a>
+<H3>Example Server Code</H3>
+<PRE>
+import javax.naming.InitialContext;
+import javax.naming.Context;
+import javax.rmi.PortableRemoteObject ;
+import com.sun.corba.se.impl.poa.POAORB;
+import org.omg.PortableServer.*;
+import java.util.*;
+import org.omg.CORBA.*;
+import javax.rmi.CORBA.Stub;
+import javax.rmi.CORBA.Util;
+
+
+
+public class HelloServer {
+ public HelloServer(String[] args) {
+ try {
+ Properties p = System.getProperties();
+ // p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB");
+ ORB orb = ORB.init( args, p );
+
+ POA rootPOA = (POA)orb.resolve_initial_references("RootPOA");
+<strong>
+ Policy[] tpolicy = new Policy[3];
+ tpolicy[0] = rootPOA.create_lifespan_policy(
+ LifespanPolicyValue.TRANSIENT );
+ tpolicy[1] = rootPOA.create_request_processing_policy(
+ RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY );
+ tpolicy[2] = rootPOA.create_servant_retention_policy(
+ ServantRetentionPolicyValue.RETAIN);
+ POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy);
+</strong>
+
+ String ObjectId = "MyObjectId";
+ byte[] oid = ObjectId.getBytes();
+
+ org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid,
+ new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]);
+ HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow(
+ obj, HelloInterface.class );
+
+ Context initialNamingContext = new InitialContext();
+ initialNamingContext.rebind("HelloService", helloRef);
+ System.out.println("Hello Server: Ready...");
+ orb.run();
+ } catch (Exception e) {
+ System.out.println("Trouble: " + e);
+ e.printStackTrace();
+ }
+ }
+
+
+ public static void main(String args[]) {
+ new HelloServer( args );
+ }
+}
+
+
+</PRE>
+
+
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/poa.idl b/src/java.corba/share/classes/org/omg/PortableServer/poa.idl
new file mode 100644
index 0000000..aecf570
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/poa.idl
@@ -0,0 +1,1191 @@
+/*
+ * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "corba.idl"
+#include "CORBAX.idl"
+
+#pragma prefix "omg.org"
+/**
+ * All Mapping corresponds to the Chapter 11 of
+ * CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf.
+ * The exception to this is the id attribute, which is added in ptc/00-08-06,
+ * section 11.3.8.26.
+ */
+module PortableServer {
+
+ #pragma version PortableServer 2.3
+
+ // forward reference
+ interface POA;
+
+ /**
+ * List of POAs
+ */
+ typedef sequence<POA> POAList;
+
+ /**
+ * Values of type Servant support a language specific
+ * programming interface that can be used by the ORB to
+ * obtain a default POA for that servant.
+ * Some language mappings may allow Servant values to
+ * be implicitly converted to object references under
+ * appropriate conditions.
+ */
+ native Servant;
+
+ /**
+ * ObjectId value associated with the object reference.
+ */
+ typedef sequence<octet> ObjectId;
+
+ /**
+ * ForwardRequest to indicate to the ORB
+ * that it is responsible for delivering
+ * the current request and subsequent
+ * requests to the object denoted in the
+ * forward_reference member of the exception.
+ */
+ exception ForwardRequest { Object forward_reference; };
+
+ // **********************************************
+ //
+ // Policy interfaces
+ //
+ // **********************************************
+
+ /**
+ * The value representing THREAD_POLICY_ID.
+ */
+ const CORBA::PolicyType THREAD_POLICY_ID = 16;
+ /**
+ * The value representing LIFESPAN_POLICY_ID.
+ */
+ const CORBA::PolicyType LIFESPAN_POLICY_ID = 17;
+ /**
+ * The value representing ID_UNIQUENESS_POLICY_ID.
+ */
+ const CORBA::PolicyType ID_UNIQUENESS_POLICY_ID = 18;
+ /**
+ * The value representing ID_ASSIGNMENT_POLICY_ID.
+ */
+ const CORBA::PolicyType ID_ASSIGNMENT_POLICY_ID = 19;
+ /**
+ * The value representing IMPLICIT_ACTIVATION_POLICY_ID.
+ */
+ const CORBA::PolicyType IMPLICIT_ACTIVATION_POLICY_ID = 20;
+ /**
+ * The value representing SERVANT_RETENTION_POLICY_ID.
+ */
+ const CORBA::PolicyType SERVANT_RETENTION_POLICY_ID = 21;
+ /**
+ * The value representing REQUEST_PROCESSING_POLICY_ID.
+ */
+ const CORBA::PolicyType REQUEST_PROCESSING_POLICY_ID = 22;
+
+ /**
+ * The ThreadPolicyValue can have the following values.
+ * ORB_CTRL_MODEL - The ORB is responsible for assigning
+ * requests for an ORB- controlled POA to threads.
+ * SINGLE_THREAD_MODEL - Requests for a single-threaded
+ * POA are processed sequentially.
+ */
+ enum ThreadPolicyValue { ORB_CTRL_MODEL, SINGLE_THREAD_MODEL };
+
+ /**
+ * The ThreadPolicy specifies the threading model
+ * used with the created POA. The default is
+ * ORB_CTRL_MODEL.
+ */
+ interface ThreadPolicy : CORBA::Policy {
+ #pragma sun_local ThreadPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute ThreadPolicyValue value;
+ };
+
+ /**
+ * The LifespanPolicyValue can have the following values.
+ * TRANSIENT - The objects implemented in the POA
+ * cannot outlive the POA instance in which they are
+ * first created.
+ * PERSISTENT - The objects implemented in the POA can
+ * outlive the process in which they are first created.
+ */
+ enum LifespanPolicyValue { TRANSIENT, PERSISTENT };
+
+ /**
+ * The LifespanPolicy specifies the lifespan of the
+ * objects implemented in the created POA. The default
+ * is TRANSIENT.
+ */
+ interface LifespanPolicy : CORBA::Policy {
+ #pragma sun_local LifespanPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute LifespanPolicyValue value;
+ };
+
+ /**
+ * IdUniquenessPolicyValue can have the following values.
+ * UNIQUE_ID - Servants activated with that POA support
+ * exactly one Object Id. MULTIPLE_ID - a servant
+ * activated with that POA may support one or more
+ * Object Ids.
+ */
+ enum IdUniquenessPolicyValue { UNIQUE_ID, MULTIPLE_ID };
+
+ /**
+ * The IdUniquenessPolicy specifies whether the servants
+ * activated in the created POA must have unique object i
+ * identities. The default is UNIQUE_ID.
+ */
+ interface IdUniquenessPolicy : CORBA::Policy {
+ #pragma sun_local IdUniquenessPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute IdUniquenessPolicyValue value;
+ };
+
+ /**
+ * The IdAssignmentPolicyValue can have the following
+ * values. USER_ID - Objects created with that POA are
+ * assigned Object Ids only by the application.
+ * SYSTEM_ID - Objects created with that POA are
+ * assigned Object Ids only by the POA. If the POA also
+ * has the PERSISTENT policy, assigned Object Ids must
+ * be unique across all instantiations of the same POA.
+ */
+ enum IdAssignmentPolicyValue { USER_ID, SYSTEM_ID };
+
+ /**
+ * IdAssignmentPolicy specifies whether Object Ids in
+ * the created POA are generated by the application or
+ * by the ORB. The default is SYSTEM_ID.
+ */
+ interface IdAssignmentPolicy : CORBA::Policy {
+ #pragma sun_local IdAssignmentPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute IdAssignmentPolicyValue value;
+ };
+
+ /**
+ * ImplicitActivationPolicyValue has the following
+ * semantics.
+ * IMPLICIT_ACTIVATION to indicate implicit activation
+ * of servants. This requires SYSTEM_ID and RETAIN
+ * policies to be set.
+ * NO_IMPLICIT_ACTIVATION to indicate no implicit
+ * servant activation.
+ */
+ enum ImplicitActivationPolicyValue {
+ IMPLICIT_ACTIVATION, NO_IMPLICIT_ACTIVATION
+ };
+
+ /**
+ * This policy specifies whether implicit activation
+ * of servants is supported in the created POA.
+ */
+ interface ImplicitActivationPolicy : CORBA::Policy {
+ #pragma sun_local ImplicitActivationPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute ImplicitActivationPolicyValue value;
+ };
+
+ /**
+ * ServantRetentionPolicyValue can have the following
+ * values. RETAIN - to indicate that the POA will retain
+ * active servants in its Active Object Map.
+ * NON_RETAIN - to indicate Servants are not retained by
+ * the POA. If no ServantRetentionPolicy is specified at
+ * POA creation, the default is RETAIN.
+ */
+ enum ServantRetentionPolicyValue { RETAIN, NON_RETAIN };
+
+ /**
+ * This policy specifies whether the created POA retains
+ * active servants in an Active Object Map.
+ */
+ interface ServantRetentionPolicy : CORBA::Policy {
+ #pragma sun_local ServantRetentionPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute ServantRetentionPolicyValue value;
+ };
+
+ /**
+ * The RequestProcessingPolicyValue can have the following
+ * values. USE_ACTIVE_OBJECT_MAP_ONLY - If the Object Id
+ * is not found in the Active Object Map,
+ * an OBJECT_NOT_EXIST exception is returned to the
+ * client. The RETAIN policy is also required.
+ * USE_DEFAULT_SERVANT - If the Object Id is not found in
+ * the Active Object Map or the NON_RETAIN policy is
+ * present, and a default servant has been registered
+ * with the POA using the set_servant operation,
+ * the request is dispatched to the default servant.
+ * USE_SERVANT_MANAGER - If the Object Id is not found
+ * in the Active Object Map or the NON_RETAIN policy
+ * is present, and a servant manager has been registered
+ * with the POA using the set_servant_manager operation,
+ * the servant manager is given the opportunity to
+ * locate a servant or raise an exception.
+ */
+ enum RequestProcessingPolicyValue {
+ USE_ACTIVE_OBJECT_MAP_ONLY, USE_DEFAULT_SERVANT, USE_SERVANT_MANAGER
+ };
+
+ /**
+ * This policy specifies how requests are processed by
+ * the created POA. The default is
+ * USE_ACTIVE_OBJECT_MAP_ONLY.
+ */
+ interface RequestProcessingPolicy : CORBA::Policy {
+ #pragma sun_local RequestProcessingPolicy ""
+ /**
+ * specifies the policy value
+ */
+ readonly attribute RequestProcessingPolicyValue value;
+ };
+
+
+ // **************************************************
+ //
+ // POAManager interface
+ //
+ // **********************************
+ /**
+ * Each POA object has an associated POAManager object.
+ * A POA manager may be associated with one or more
+ * POA objects. A POA manager encapsulates the processing
+ * state of the POAs it is associated with.
+ */
+ interface POAManager {
+ #pragma sun_local POAManager ""
+ exception AdapterInactive{ };
+ /**
+ * Specifies the states for the POAManager
+ */
+ enum State {HOLDING, ACTIVE, DISCARDING, INACTIVE};
+
+ /**
+ * This operation changes the state of the POA manager
+ * to active, causing associated POAs to start processing
+ * requests.
+ * @exception AdapterInactive is raised if the operation is
+ * invoked on the POAManager in inactive state.
+ */
+ void activate()
+ raises(AdapterInactive);
+ /**
+ * This operation changes the state of the POA manager
+ * to holding, causing associated POAs to queue incoming
+ * requests.
+ * @param wait_for_completion if FALSE, the operation
+ * returns immediately after changing state.
+ * If TRUE, it waits for all active requests
+ * to complete.
+ * @exception AdapterInactive is raised if the operation is
+ * invoked on the POAManager in inactive state.
+ */
+ void hold_requests(in boolean wait_for_completion)
+ raises(AdapterInactive);
+ /**
+ * This operation changes the state of the POA manager
+ * to discarding. This causes associated POAs to discard
+ * incoming requests.
+ * @param wait_for_completion if FALSE, the operation
+ * returns immediately after changing state.
+ * If TRUE, it waits for all active requests
+ * to complete.
+ * @exception AdapterInactive is raised if the operation is
+ * invoked on the POAManager in inactive state.
+ */
+ void discard_requests(in boolean wait_for_completion)
+ raises(AdapterInactive);
+
+ /**
+ * This operation changes the state of the POA manager
+ * to inactive, causing associated POAs to reject the
+ * requests that have not begun executing as well as
+ * as any new requests.
+ * @param etherealize_objects a flag to indicate whether
+ * to invoke the etherealize operation of the
+ * associated servant manager for all active
+ * objects.
+ * @param wait_for_completion if FALSE, the operation
+ * returns immediately after changing state.
+ * If TRUE, it waits for all active requests
+ * to complete.
+ * @exception AdapterInactive is raised if the operation is
+ * invoked on the POAManager in inactive state.
+ */
+ void deactivate(in boolean etherealize_objects,
+ in boolean wait_for_completion)
+ raises(AdapterInactive);
+ /**
+ * This operation returns the state of the POA manager.
+ */
+ State get_state();
+ };
+
+
+ // **************************************************
+ //
+ // AdapterActivator interface
+ //
+ // ****************************
+
+ /**
+ * An adapter activator supplies a POA with the ability
+ * to create child POAs on demand, as a side-effect of
+ * receiving a request that names the child POA
+ * (or one of its children), or when find_POA is called
+ * with an activate parameter value of TRUE.
+ */
+
+ interface AdapterActivator {
+ #pragma sun_local AdapterActivator ""
+ #pragma version AdapterActivator 2.3
+ /**
+ * This operation is invoked when the ORB receives
+ * a request for an object reference that identifies
+ * a target POA that does not exist. The ORB invokes
+ * this operation once for each POA that must be
+ * created in order for the target POA to exist.
+ * @param parent indicates the parent POA for the POA
+ * that needs to be created.
+ * @param name identifies the name of the POA relative to
+ * the parent.
+ * @return returns TRUE if the POA was created or FALSE
+ * otherwise.
+ */
+ boolean unknown_adapter(in POA parent, in string name);
+ };
+
+
+ // **************************************************
+ //
+ // ServantManager interface
+ //
+ // ******************************
+
+ /**
+ * A servant manager supplies a POA with the ability
+ * to activate objects on demand when the POA receives
+ * a request targeted at an inactive object. A servant
+ * manager is registered with a POA as a callback object,
+ * to be invoked by the POA when necessary.
+ * ServantManagers can either be ServantActivators or
+ * ServantLocators. A ServantManager object must be
+ * local to the process containing the POA objects
+ * it is registered with.
+ */
+
+ interface ServantManager
+ { #pragma sun_local ServantManager "" };
+
+
+ /**
+ * When the POA has the RETAIN policy it uses servant
+ * managers that are ServantActivators.
+ */
+ interface ServantActivator : ServantManager {
+ #pragma version ServantActivator 2.3
+ #pragma sun_localservant ServantActivator ""
+ /**
+ * This operation is invoked by the POA whenever the
+ * POA receives a request for an object that is not
+ * currently active, assuming the POA has the
+ * USE_SERVANT_MANAGER and RETAIN policies.
+ * @param oid object Id associated with the object on
+ * the request was made.
+ * @param adapter object reference for the POA in which
+ * the object is being activated.
+ * @return Servant corresponding to oid is created or
+ * located by the user supplied servant manager.
+ * @exception ForwardRequest to indicate to the ORB
+ * that it is responsible for delivering
+ * the current request and subsequent
+ * requests to the object denoted in the
+ * forward_reference member of the exception.
+ */
+ Servant incarnate ( in ObjectId oid, in POA adapter )
+ raises (ForwardRequest);
+ /**
+ * This operation is invoked whenever a servant for
+ * an object is deactivated, assuming the POA has
+ * the USE_SERVANT_MANAGER and RETAIN policies.
+ * @param oid object Id associated with the object
+ * being deactivated.
+ * @param adapter object reference for the POA in which
+ * the object was active.
+ * @param serv contains reference to the servant
+ * associated with the object being deactivated.
+ * @param cleanup_in_progress if TRUE indicates that
+ * destroy or deactivate is called with
+ * etherealize_objects param of TRUE. FALSE
+ * indicates that etherealize was called due to
+ * other reasons.
+ * @param remaining_activations indicates whether the
+ * Servant Manager can destroy a servant. If
+ * set to TRUE, the Servant Manager should wait
+ * until all invocations in progress have
+ * completed.
+ */
+ void etherealize ( in ObjectId oid,
+ in POA adapter,
+ in Servant serv,
+ in boolean cleanup_in_progress,
+ in boolean remaining_activations);
+ };
+
+
+ /**
+ * When the POA has the NON_RETAIN policy it uses servant
+ * managers that are ServantLocators. Because the POA
+ * knows that the servant returned by this servant
+ * manager will be used only for a single request,
+ * it can supply extra information to the servant
+ * manager's operations and the servant manager's pair
+ * of operations may be able to cooperate to do
+ * something different than a ServantActivator.
+ * When the POA uses the ServantLocator interface,
+ * immediately after performing the operation invocation
+ * on the servant returned by preinvoke, the POA will
+ * invoke postinvoke on the servant manager, passing the
+ * ObjectId value and the Servant value as parameters
+ * (among others). This feature may be used to force
+ * every request for objects associated with a POA to
+ * be mediated by the servant manager.
+ */
+ interface ServantLocator : ServantManager {
+ #pragma sun_localservant ServantLocator ""
+ /**
+ * Opaque data used to pass the information from
+ * preinvoke to postinvoke hooks. This specific
+ * by the language mapping, that is why it is
+ * specified as native.
+ */
+ native Cookie;
+ /**
+ * This operations is used to get a servant that will be
+ * used to process the request that caused preinvoke to
+ * be called.
+ * @param oid the object id associated with object on
+ * which the request was made.
+ * @param adapter the reference for POA in which the
+ * object is being activated.
+ * @param operation the operation name.
+ * @param the_cookie an opaque value that can be set
+ * by the servant manager to be used
+ * during postinvoke.
+ * @return Servant used to process incoming request.
+ * @exception ForwardRequest to indicate to the ORB
+ * that it is responsible for delivering
+ * the current request and subsequent
+ * requests to the object denoted in the
+ * forward_reference member of the exception.
+ */
+ Servant preinvoke( in ObjectId oid, in POA adapter,
+ in CORBA::Identifier operation,
+ out Cookie the_cookie )
+ raises (ForwardRequest);
+ /**
+ * This operation is invoked whenener a servant completes
+ * a request.
+ * @param oid the object id ssociated with object on which
+ * the request was made.
+ * @param adapter the reference for POA in which the
+ * object was active.
+ * @param the_cookie an opaque value that contains
+ * the data set by preinvoke.
+ * @param the_servant reference to the servant that is
+ * associated with the object.
+ */
+ void postinvoke( in ObjectId oid, in POA adapter,
+ in CORBA::Identifier operation,
+ in Cookie the_cookie,
+ in Servant the_servant);
+ };
+
+
+ // **************************************************
+ //
+ // POA interface
+ //
+ // *****************************************
+
+ /**
+ * A POA object manages the implementation of a
+ * collection of objects. The POA supports a name space
+ * for the objects, which are identified by Object Ids.
+ * A POA also provides a name space for POAs. A POA is
+ * created as a child of an existing POA, which forms a
+ * hierarchy starting with the root POA. A POA object
+ * must not be exported to other processes, or
+ * externalized with ORB::object_to_string.
+ */
+ interface POA {
+ #pragma sun_local POA ""
+ #pragma version POA 2.3
+ /**
+ * specifies that an child POA with the specified
+ * name already exists.
+ */
+ exception AdapterAlreadyExists { };
+
+ /**
+ * This is raised if the POA with a specified Name cannot
+ * be found.
+ */
+ exception AdapterNonExistent { };
+
+ /**
+ * This is raised if any of the policy objects are
+ * not valid for the ORB
+ */
+ exception InvalidPolicy {
+ unsigned short index;
+ };
+
+ /**
+ * This is raised if no default servant is associated
+ * with the POA.
+ */
+ exception NoServant { };
+
+ /**
+ * specifies that an object is already active or
+ * exists in the Active Object Map.
+ */
+ exception ObjectAlreadyActive { };
+ /**
+ * specifies that the object is not active or its
+ * mapping does not exist in the Active Object Map.
+ */
+
+ exception ObjectNotActive { };
+
+ /**
+ * This is raised when an attempt is made to activate
+ * a servant that is already active or has a mapping in
+ * the Active Object Map.
+ */
+ exception ServantAlreadyActive { };
+
+ /**
+ * This is raised when an attempt is made to access a
+ * servant that is not active or is not registered in
+ * the Active Object Map.
+ */
+ exception ServantNotActive { };
+
+ /**
+ * This is raised if the reference was not created by
+ * the POA
+ * specified in the reference.
+ */
+ exception WrongAdapter { };
+
+ /**
+ * WrongPolicy is specified when the POA does not
+ * specify the policy appropriate for its operations.
+ */
+ exception WrongPolicy { };
+
+
+ //----------------------------------------
+ //
+ // POA creation and destruction
+ //
+ //-------------------------------
+
+ /**
+ * This operation creates a new POA as a child of the
+ * target POA.
+ * @param adapter_name identifies the new POA with
+ * respect to other POAs with the same parent POA.
+ * @param a_POAManager specifies the POA Manager to be
+ * associated with the new POA.
+ * @param policies specifies policy objects to be
+ * associated with the POA to control its behavior.
+ * @exception AdapterAlreadyExists specifies that the
+ * target POA already has a child POA with
+ * the specified name.
+ * @exception InvalidPolicy is raised if any of the
+ * policy objects are not valid for the ORB,
+ * or are in conflict, or require an
+ * administrative action that has not been
+ * performed.
+ */
+ POA create_POA(in string adapter_name,
+ in POAManager a_POAManager,
+ in CORBA::PolicyList policies)
+ raises (AdapterAlreadyExists, InvalidPolicy);
+
+ /**
+ * If the target POA is the parent of a child POA with
+ * the specified name (relative to the target POA), that
+ * child POA is returned.
+ * @param adapter_name POA name to be found.
+ * @param activate_it if a POA with the specified
+ * name does not exist and the value of
+ * the activate_it parameter is TRUE, the target
+ * POA's AdapterActivator, if one exists,
+ * is invoked.
+ * @return POA if one exists or is activated by the
+ * AdapterActivator.
+ * @return AdapterNonExistent is raised if POA with
+ * a specified name cannot be found or
+ * activated using AdapaterActivator.
+ */
+ POA find_POA(in string adapter_name,
+ in boolean activate_it)
+ raises (AdapterNonExistent);
+
+ /**
+ * This operation destroys the POA and all descendant
+ * POAs. All descendant POAs are destroyed (recursively)
+ * before the destruction of the containing POA. The POA
+ * so destroyed (that is, the POA with its name) may be
+ * re-created later in the same process.
+ * @param etherealize_objects flag to indicate whether
+ * etherealize operation on servant manager needs
+ * to be called.
+ * @param wait_for_completion flag to indicate whether
+ * POA and its children need to wait for active
+ * requests and the etherealization to complete.
+ *
+ */
+ void destroy( in boolean etherealize_objects,
+ in boolean wait_for_completion);
+
+ // **************************************************
+ //
+ // Factories for Policy objects
+ //
+ // ************
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return ThreadPolcy Object
+ */
+ ThreadPolicy create_thread_policy(
+ in ThreadPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return LifespanPolicy Object.
+ */
+ LifespanPolicy create_lifespan_policy(
+ in LifespanPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return IdUniquenessPolicy Object.
+ */
+ IdUniquenessPolicy create_id_uniqueness_policy(
+ in IdUniquenessPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return IdAssignmentPolicy Object.
+ */
+ IdAssignmentPolicy create_id_assignment_policy(
+ in IdAssignmentPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return ImplicitActivationPolicy Object.
+ */
+ ImplicitActivationPolicy create_implicit_activation_policy(
+ in ImplicitActivationPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return ServantRetentionPolicy Object.
+ */
+ ServantRetentionPolicy create_servant_retention_policy(
+ in ServantRetentionPolicyValue value);
+ /**
+ * These operations each return a reference to a policy
+ * object with the specified value.
+ * @param value policy type
+ * @return RequestProcessingPolicy Object.
+ */
+
+ RequestProcessingPolicy create_request_processing_policy(
+ in RequestProcessingPolicyValue value);
+
+ //--------------------------------------------------
+ //
+ // POA attributes
+ //
+ //-----------------------------------
+ /**
+ * This attribute identifies the POA relative to its
+ * parent. This name is assigned when the POA is created.
+ */
+ readonly attribute string the_name;
+ /**
+ * This attribute identifies the parent of the POA.
+ * The parent of the root POA is null.
+ */
+ readonly attribute POA the_parent;
+ /**
+ * This attribute identifies the current set of all
+ * child POAs of the POA. The set of child POAs
+ * includes only the POA's immediate children, and
+ * not their descendants.
+ */
+ readonly attribute POAList the_children;
+ /**
+ * This attribute identifies the POA manager
+ * associated with the POA.
+ */
+ readonly attribute POAManager the_POAManager;
+
+ /**
+ * This attribute identifies the adapter activator
+ * associated with the POA.
+ */
+ attribute AdapterActivator the_activator;
+
+ //--------------------------------------------------
+ //
+ // Servant Manager registration:
+ //
+ //--------------------------------------------------
+ /**
+ *
+ * If the ServantRetentionPolicy of the POA is RETAIN,
+ * then the ServantManager argument (imgr) shall support
+ * the ServantActivator interface. For a NON_RETAIN policy,
+ * the ServantManager shall support the ServantLocator
+ * interface. If the argument is nil, or does not support
+ * the required interface, then the OBJ_ADAPTER
+ * exception is raised.
+ * @return ServantManager associated with a POA or null if
+ * none exists.
+ * @exception WrongPolicy raised if the
+ * USE_SERVANT_MANAGER policy is not specified.
+ */
+ ServantManager get_servant_manager()
+ raises (WrongPolicy);
+ /**
+ *
+ * This operation sets the default servant manager
+ * associated with the POA. This operation may only be
+ * invoked once after a POA has been created. Attempting
+ * to set the servant manager after one has already
+ * been set will result in the BAD_INV_ORDER exception
+ * being raised.
+ * @param imgr servant manager to be used as a default.
+ * @exception WrongPolicy raised if the
+ * USE_SERVANT_MANAGER policy is not specified.
+ */
+ void set_servant_manager( in ServantManager imgr)
+ raises (WrongPolicy);
+
+ //--------------------------------------------------
+ //
+ // operations for the USE_DEFAULT_SERVANT policy
+ //
+ //----------
+ /**
+ * This operation returns the default servant associated
+ * with the POA.
+ * @return p_servant default servant associated with a POA.
+ * @exception NoServant raised if no default servant is
+ * associated with the POA.
+ * @exception WrongPolicy raised if the
+ * USE_DEFAULT_SERVANT policy is not specified.
+ */
+ Servant get_servant()
+ raises (NoServant, WrongPolicy);
+
+ /**
+ *
+ * This operation registers the specified servant with
+ * the POA as the default servant. This servant will
+ * be used for all requests for which no servant is
+ * found in the Active Object Map.
+ * @param p_servant servant to be used as a default.
+ * @exception WrongPolicy raised if the
+ * USE_DEFAULT_SERVANT policy is not specified.
+ */
+ void set_servant(in Servant p_servant)
+ raises (WrongPolicy);
+
+ // **************************************************
+ //
+ // object activation and deactivation
+ //
+ // ************
+
+ /**
+ *
+ * This operation generates an Object Id and enters
+ * the Object Id and the specified servant in the
+ * Active Object Map.
+ * @param p_servant servant to be associated with an
+ * object to be activated.
+ * @return POA generated object id.
+ * @exception ServantAlreadyActive is raised if the
+ * POA has UNIQUE_ID policy and servant is
+ * is already in the Active Object Map.
+ * @exception WrongPolicy raised if the SYSTEM_ID and
+ * RETAIN policies are not specified.
+ */
+ ObjectId activate_object( in Servant p_servant )
+ raises (ServantAlreadyActive, WrongPolicy);
+ /**
+ * This operation enters an association between the
+ * specified Object Id and the specified servant in the
+ * Active Object Map.
+ * @param id object id for the object to be activated.
+ * @param p_servant servant to be associated with the
+ * object.
+ * @exception ServantAlreadyActive raised if the POA
+ * has the UNIQUE_ID policy and the servant
+ * is already in the Active Object Map.
+ * @exception ObjectAlreadyActive raised if the object is
+ * already active in the POA.
+ * @exception WrongPolicy raised if the RETAIN policy is
+ * is not specified.
+ */
+
+ void activate_object_with_id( in ObjectId id,
+ in Servant p_servant)
+ raises ( ServantAlreadyActive, ObjectAlreadyActive,
+ WrongPolicy);
+ /**
+ *
+ * This operation causes the ObjectId specified in the
+ * oid parameter to be deactivated. An ObjectId which
+ * has been deactivated continues to process requests
+ * until there are no active requests for that ObjectId.
+ * A deactivated ObjectId is removed from the Active
+ * Object Map when all requests executing for that
+ * ObjectId have completed.
+ * @param oid Object Id for the object to be deactivated.
+ * @exception ObjectNotActive if the object with the
+ * specified oid is not in the Active Object
+ * Map.
+ * @exception WrongPolicy raised if the RETAIN policy is
+ * is not specified.
+ */
+ void deactivate_object(in ObjectId oid)
+ raises (ObjectNotActive, WrongPolicy);
+
+ // **************************************************
+ //
+ // reference creation operations
+ //
+ // *****************
+ /**
+ * This operation creates an object reference that
+ * encapsulates a POA-generated Object Id value and
+ * the specified interface repository id.
+ *
+ * @param intf rep id for creating an object reference.
+ * @return object reference created using intf.
+ * @exception WrongPolicy if SYSTEM_ID policy is not
+ * specified.
+ */
+ Object create_reference ( in CORBA::RepositoryId intf )
+ raises (WrongPolicy);
+
+ /**
+ * This operation creates an object reference that
+ * encapsulates the specified Object Id and interface
+ * repository Id values. It does not cause an activation
+ * to take place. The resulting reference may be passed
+ * to clients, so that subsequent requests on those
+ * references will cause the object to be activated
+ * if necessary, or the default servant used, depending
+ * on the applicable policies.
+ * @param oid object id for creating an objref
+ * @param intf rep id for creating an objref
+ * @return object reference created using oid and intf
+ * @exception BAD_PARAM is raised if the POA has the
+ * SYSTEM_ID policy and it detects that the
+ * Object Id value was not generated by the
+ * system or for this POA.
+ */
+ Object create_reference_with_id ( in ObjectId oid,
+ in CORBA::RepositoryId intf );
+ // not specified in 11.3.8.19 raises (WrongPolicy);
+
+ //--------------------------------------------------
+ //
+ // Identity mapping operations:
+ //
+ //--------------------------------------------------
+ /**
+ * This operation has four possible behaviors.
+ * 1. If the POA has the UNIQUE_ID policy and the
+ * specified servant is active, the Object Id associated
+ * with that servant is returned.
+ * 2. If the POA has the IMPLICIT_ACTIVATION policy and
+ * either the POA has the MULTIPLE_ID policy or the
+ * specified servant is not active, the servant is
+ * activated using a POA-generated Object Id and the
+ * Interface Id associated with the servant, and that
+ * Object Id is returned.
+ * 3. If the POA has the USE_DEFAULT_SERVANT policy,
+ * the servant specified is the default servant, and the
+ * operation is being invoked in the context of executing
+ * a request on the default servant, then the ObjectId
+ * associated with the current invocation is returned.
+ * 4. Otherwise, the ServantNotActive exception is raised.
+ *
+ * @param p_servant servant for which the object disi returned.
+ * @return object id associated with the servant.
+ * @exception ServantNotActive if the above rules and
+ * policy combination is not met.
+ * @exception WrongPolicy if the USE_DEFAULT_SERVANT policy
+ * or a combination of the RETAIN policy and
+ * either the UNIQUE_ID or IMPLICIT_ACTIVATION
+ * policies are not present.
+ */
+ ObjectId servant_to_id(in Servant p_servant)
+ raises (ServantNotActive, WrongPolicy);
+
+ /**
+ * This operation requires the RETAIN policy and either
+ * the UNIQUE_ID or IMPLICIT_ACTIVATION policies if
+ * invoked outside the context of an operation dispatched
+ * by this POA. It has four possible behaviors.
+ * 1. If the POA has both the RETAIN and the
+ * UNIQUE_ID policy and the specified servant is active,
+ * an object reference encapsulating the information used
+ * to activate the servant is returned.
+ * 2. If the POA has both the RETAIN and the
+ * IMPLICIT_ACTIVATION policy and either the POA has the
+ * MULTIPLE_ID policy or the specified servant is not
+ * active, the servant is activated using a POA-generated
+ * Object Id and the Interface Id associated with the
+ * servant, and a corresponding object reference is
+ * returned.
+ * 3. If the operation was invoked in the context of
+ * executing a request on the specified servant, the
+ * reference associated with the current invocation
+ * is returned.
+ * 4. Otherwise, the ServantNotActive exception is raised.
+ *
+ * @param p_servant servant for which the object reference
+ * needs to be obtained.
+ * @return object reference associated with the servant.
+ * @exception WrongPolicy if the operation is not invoked
+ * in the context of executing a request on
+ * the specified servant and the required
+ * policies are not present.
+ * @exception ServantNotActive if the above specified
+ * policies and rules are not met.
+ */
+ Object servant_to_reference(in Servant p_servant)
+ raises (ServantNotActive, WrongPolicy);
+
+ /**
+ * If the POA has the RETAIN policy and the specified
+ * object is present in the Active Object Map, this
+ * operation returns the servant associated with that
+ * object in the Active Object Map. Otherwise, if the
+ * POA has the USE_DEFAULT_SERVANT policy and a default
+ * servant has been registered with the POA, this
+ * operation returns the default servant. If the object
+ * reference was not created by this POA,
+ * the WrongAdapter exception is raised. (OMG Issue
+ * on inconsistency with the POA.IDL.
+ *
+ * @param reference object reference for which the
+ * servant is returned.
+ * @return servant associated with the reference.
+ * @exception WrongPolicy if neither the RETAIN policy or
+ * the USE_DEFAULT_SERVANT policy is present.
+ * @exception ObjectNotActive if the servant is not
+ * present in the Active Object Map (for RETAIN)
+ * or no default servant is registered (for
+ * USE_DEFAULT_POLICY).
+ * @exception WrongAdapter if reference was not created by
+ * this POA instance.
+ */
+ Servant reference_to_servant(in Object reference)
+ raises (ObjectNotActive, WrongPolicy, WrongAdapter);
+
+ /**
+ * This operation returns the Object Id value
+ * encapsulated by the specified reference. This
+ * operation is valid only if the reference was created
+ * by the POA on which the operation is being performed.
+ * The object denoted by the reference does not have
+ * to be active for this operation to succeed.
+ *
+ * @param reference the object reference from which the
+ * object id needs to be returned.
+ * @return object id encapsulated in the reference.
+ * @exception WrongAdapter if the reference was not
+ * created by the POA specified in the
+ * reference.
+ * @exception WrongPolicy declared to allow future
+ * extensions.
+ *
+ */
+ ObjectId reference_to_id(in Object reference)
+ raises (WrongAdapter, WrongPolicy);
+
+ /**
+ * If the POA has the RETAIN policy and the specified
+ * ObjectId is in the Active Object Map, this operation
+ * returns the servant associated with that object in
+ * the Active Object Map. Otherwise, if the POA has
+ * the USE_DEFAULT_SERVANT policy and a default servant
+ * has been registered with the POA, this operation
+ * returns the default servant.
+ *
+ * @param oid object id for the which the servant is
+ * returned.
+ * @return servant associated with oid.
+ * @exception ObjectNotActive is raised if ObjectId is
+ * is not in the Active Object Map (for RETAIN
+ * policy), or no default servant is registered
+ * (for USE_DEFAULT_SERVANT policy).
+ *
+ * @exception WrongPolicy is raised if the RETAIN policy
+ * or the USE_DEFAULT_SERVANT
+ * policy is not present.
+ */
+ Servant id_to_servant(in ObjectId oid)
+ raises (ObjectNotActive, WrongPolicy);
+
+ /**
+ * If an object with the specified Object Id value is
+ * currently active, a reference encapsulating the
+ * information used to activate the object is returned.
+ *
+ * @param oid id of the object for which the
+ * reference is returned.
+ * @return the object reference
+ *
+ * @exception ObjectNotActive if the Object Id value
+ * is not active in the POA.
+ * @exception WrongPolicy if the RETAIN policy is not
+ * present.
+ */
+ Object id_to_reference(in ObjectId oid)
+ raises (ObjectNotActive, WrongPolicy);
+
+ /**
+ * This returns the unique id of the POA in the process in which it
+ * is created. It is for use by portable interceptors.
+ * <p>
+ * This id is guaranteed unique for the life span of the POA in the
+ * process. For persistent POAs, this means that if a POA is created
+ * in the same path with the same name as another POA, these POAs
+ * are identical and, therefore, have the same id. For transient
+ * POAs, each POA is unique.
+ */
+ readonly attribute ::org::omg::CORBA::OctetSeq id;
+
+ };
+
+ // *****************************************************
+ //
+ // Current interface:
+ //
+ // *****************************************************
+
+ /**
+ * The PortableServer::Current interface, derived from
+ * CORBA::Current, provides method implementations with
+ * access to the identity of the object on which the
+ * method was invoked. The Current interface is provided
+ * to support servants that implement multiple objects,
+ * but can be used within the context of POA-dispatched
+ * method invocations on any servant. To provide location
+ * transparency, ORBs are required to support use of
+ * Current in the context of both locally and remotely
+ * invoked operations. An instance of Current can be
+ * obtained by the application by issuing the
+ * CORBA::ORB::resolve_initial_references("POACurrent")
+ * operation. Thereafter, it can be used within the
+ * context of a method dispatched by the POA to obtain
+ * the POA and ObjectId that identify the object on
+ * which that operation was invoked.
+ */
+ interface Current : CORBA::Current {
+ #pragma sun_local Current ""
+ #pragma version Current 2.3
+ /**
+ * The exception that is used to indicate that the
+ * operation is invoked outside the context of the
+ * POA-dispatched operation.
+ */
+
+ exception NoContext { };
+
+ /**
+ * Returns reference to the POA implementing the
+ * object in whose context it is called.
+ *
+ * @return The poa implementing the object
+ *
+ * @exception NoContext is raised when the operation is
+ * outside the context of a POA-dispatched
+ * operation
+ */
+ POA get_POA()
+ raises (NoContext);
+
+ /**
+ * Returns the ObjectId identifying the object in
+ * whose context it is called.
+ *
+ * @return the ObjectId of the object
+ *
+ * @exception NoContext is raised when the operation
+ * is called outside the context of a POA-dispatched
+ * operation.
+ */
+
+ ObjectId get_object_id()
+ raises (NoContext);
+ };
+};
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java b/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java
new file mode 100644
index 0000000..56d9a4b
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.omg.PortableServer.portable;
+
+import org.omg.PortableServer.Servant;
+import org.omg.PortableServer.POA;
+
+/**
+ * The portability package contains interfaces and classes
+ * that are designed for and intended to be used by ORB
+ * implementor. It exposes the publicly defined APIs that
+ * are used to connect stubs and skeletons to the ORB.
+ * The Delegate interface provides the ORB vendor specific
+ * implementation of PortableServer::Servant.
+ * Conformant to spec CORBA V2.3.1, ptc/00-01-08.pdf
+ */
+public interface Delegate {
+/**
+ * Convenience method that returns the instance of the ORB
+ * currently associated with the Servant.
+ * @param Self the servant.
+ * @return ORB associated with the Servant.
+ */
+ org.omg.CORBA.ORB orb(Servant Self);
+
+/**
+ * This allows the servant to obtain the object reference for
+ * the target CORBA Object it is incarnating for that request.
+ * @param Self the servant.
+ * @return Object reference associated with the request.
+ */
+ org.omg.CORBA.Object this_object(Servant Self);
+
+/**
+ * The method _poa() is equivalent to
+ * calling PortableServer::Current:get_POA.
+ * @param Self the servant.
+ * @return POA associated with the servant.
+ */
+ POA poa(Servant Self);
+
+/**
+ * The method _object_id() is equivalent
+ * to calling PortableServer::Current::get_object_id.
+ * @param Self the servant.
+ * @return ObjectId associated with this servant.
+ */
+ byte[] object_id(Servant Self);
+
+/**
+ * The default behavior of this function is to return the
+ * root POA from the ORB instance associated with the servant.
+ * @param Self the servant.
+ * @return POA associated with the servant class.
+ */
+ POA default_POA(Servant Self);
+
+/**
+ * This method checks to see if the specified repid is present
+ * on the list returned by _all_interfaces() or is the
+ * repository id for the generic CORBA Object.
+ * @param Self the servant.
+ * @param Repository_Id the repository_id to be checked in the
+ * repository list or against the id of generic CORBA
+ * object.
+ * @return boolean indicating whether the specified repid is
+ * in the list or is same as that got generic CORBA
+ * object.
+ */
+ boolean is_a(Servant Self, String Repository_Id);
+
+/**
+ * This operation is used to check for the existence of the
+ * Object.
+ * @param Self the servant.
+ * @return boolean true to indicate that object does not exist,
+ * and false otherwise.
+ */
+ boolean non_existent(Servant Self);
+ //Simon And Ken Will Ask About Editorial Changes
+ //In Idl To Java For The Following Signature.
+
+/**
+ * This operation returns an object in the Interface Repository
+ * which provides type information that may be useful to a program.
+ * @param self the servant.
+ * @return type information corresponding to the object.
+ */
+ // The get_interface() method has been replaced by get_interface_def()
+ //org.omg.CORBA.Object get_interface(Servant Self);
+
+ org.omg.CORBA.Object get_interface_def(Servant self);
+}
diff --git a/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html b/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html
new file mode 100644
index 0000000..9969bb6
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+Provides classes and interfaces for making the server side of your applications
+portable across multivendor ORBs.
+
+<P>The <code>portable</code> package contains interfaces and classes
+ that are designed for and intended to be used by an ORB
+implementor. It exposes the publicly defined APIs that
+ are used to connect stubs and skeletons to the ORB.
+ The <code>Delegate</code> interface provides the ORB-vendor-specific
+ implementation of <code>PortableServer::Servant</code>.
+ This package conforms CORBA Specification V2.3.1, ptc/00-01-08.
+
+@since 1.4
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java b/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java
new file mode 100644
index 0000000..b5eb36a
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.SendingContext;
+
+/** Defines the base class that represents the Sending Context of a
+* request. The sending context provides access to information about
+* the runtime environment of the originator of a GIOP message. For example,
+* when a value type is marshalled on a GIOP Request message, the receiver
+* of the value type may need to ask the sender about the CodeBase for the
+* implementation of the value type.
+*/
+public interface RunTime extends RunTimeOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity
+{
+}
diff --git a/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java b/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java
new file mode 100644
index 0000000..7205ce8
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+package org.omg.SendingContext;
+
+/** Defines operations on the base class that represents the Sending Context of a
+* request. The sending context provides access to information about
+* the runtime environment of the originator of a GIOP message. For example,
+* when a value type is marshalled on a GIOP Request message, the receiver
+* of the value type may need to ask the sender about the CodeBase for the
+* implementation of the value type.
+*/
+public interface RunTimeOperations
+{
+}
diff --git a/src/java.corba/share/classes/org/omg/SendingContext/package.html b/src/java.corba/share/classes/org/omg/SendingContext/package.html
new file mode 100644
index 0000000..a76f241
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/SendingContext/package.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+ Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+
+</head>
+<body bgcolor="white">
+ Provides support for the marshalling of value types. Value type
+ marshalling may require access to an implementation of the value type or
+ to meta information about the value type. This information is passed
+ between the sending context and the receiving context using a particular
+ service context containing an instance of the
+ <code>SendingContext.RunTime</code> interface.
+ <P>
+ A sending context may be either the client side or the server side of
+ an invocation, depending on which contains a value type.
+ The sending context is the client side of an
+ invocation if the request contains a value type. It is the server side
+ if the reply contains a value type. The other party in the communication
+ is the receiving context.
+ <P>
+ The service context marshalled for <code>SendingContext</code>
+ consists of an encapsulated IOR for the <code>SendingContext.RunTime</code>
+ interface. <code>RunTime</code> is just a marker
+ interface defined to allow extensibility in the future. There is
+ currently only one subinterface of <code>RunTime</code> defined:
+ the <code>SendingContext.CodeBase</code> interface.
+ The interface <code>CodeBase</code> defines operations to obtain code URLs
+ and meta-information about a value type received from the sending
+ context.
+ <P>
+ Note that these classes are currently defined in the
+ <code>com.sun.org.omg.SendingContext</code>
+ package rather than in the package <code>org.omg.SendingContext</code>.
+ This has been done to avoid including large parts of the interface
+ repository in the JDK core, since the interface repository is still
+ evolving in response to the needs of the CORBA Components work.
+
+<H3>Package Specification</H3>
+
+<P>For a precise list of supported sections of official specifications with which
+the Java[tm] Platform, Standard Edition 6 ORB complies, see <A
+HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA
+support in Java[tm] SE 6</A>.
+
+@since 1.3
+<br>
+@serial exclude
+</body>
+</html>
diff --git a/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java b/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java
new file mode 100644
index 0000000..d1cb4cd
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * Licensed Materials - Property of IBM
+ * RMI-IIOP v1.0
+ * Copyright IBM Corp. 1998 1999 All Rights Reserved
+ *
+ */
+
+// Stub class generated by rmic, do not edit.
+// Contents subject to change without notice.
+
+package org.omg.stub.java.rmi;
+
+import java.rmi.Remote;
+import javax.rmi.CORBA.Stub;
+
+/**
+ * This class provides the Stub for the Remote Type. The class is generated
+ * by the rmic compiler, and is still under works at OMG. It's contents are
+ * subject to change without notice as the specification evolves.
+ */
+public final class _Remote_Stub extends Stub implements Remote {
+
+ private static final String _type_ids[] = {
+ ""
+ };
+
+ /**
+ * Returns an array of repository ids that an object implements.
+ * The string at index zero represents the most derived interface. The last id,
+ * for the generic CORBA object is (i.e., IDL:omg.org/CORBA/Object:1.0") is
+ * implied and not present.
+ * @return an array of repository ids that an object implements.
+ */
+ public String[] _ids() {
+ return (String[]) _type_ids.clone();
+ }
+}
diff --git a/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html b/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html
new file mode 100644
index 0000000..6ac9fec
--- /dev/null
+++ b/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>org.omg.stub.java.rmi package</title>
+<!--
+
+ Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation. Oracle designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Oracle in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ or visit www.oracle.com if you need additional information or have any
+ questions.
+
+
+-->
+</head>
+<body bgcolor="white">
+ Contains RMI-IIOP Stubs for the Remote types that occur in the
+ <code>java.rmi</code> package.
+
+@since 1.3
+<br>
+@serial exclude
+</body>
+</html>