Class ValueHandlerImpl

    • Constructor Detail

      • ValueHandlerImpl

        private ValueHandlerImpl()
    • Method Detail

      • getMaxStreamFormatVersion

        private static byte getMaxStreamFormatVersion()
      • getMaximumStreamFormatVersion

        public byte getMaximumStreamFormatVersion()
        Description copied from interface: ValueHandlerMultiFormat
        Returns the maximum stream format version for RMI/IDL custom value types that is supported by this ValueHandler object. The ValueHandler object must support the returned stream format version and all lower versions. An ORB may use this value to include in a standard IOR tagged component or service context to indicate to other ORBs the maximum RMI-IIOP stream format that it supports. If not included, the default for GIOP 1.2 is stream format version 1, and stream format version 2 for GIOP 1.3 and higher.
        Specified by:
        getMaximumStreamFormatVersion in interface ValueHandlerMultiFormat
        Returns:
        the maximum version supported
      • writeValue

        public void writeValue​(OutputStream out,
                               java.io.Serializable value,
                               byte streamFormatVersion)
        Description copied from interface: ValueHandlerMultiFormat
        Allows the ORB to pass the stream format version for RMI/IDL custom value types. If the ORB calls this method, it must pass a stream format version between 1 and the value returned by the getMaximumStreamFormatVersion method inclusive, or else a BAD_PARAM exception with standard minor code will be thrown.

        If the ORB calls the older ValueHandler.writeValue(OutputStream, Serializable) method, stream format version 1 is implied.

        The ORB output stream passed to the ValueHandlerMultiFormat.writeValue method must implement the ValueOutputStream interface, and the ORB input stream passed to the ValueHandler.readValue method must implement the ValueInputStream interface.
        Specified by:
        writeValue in interface ValueHandlerMultiFormat
        Parameters:
        out - stream to write the value out to
        value - a Serializable value to write
        streamFormatVersion - stream format version
      • writeValue

        public void writeValue​(OutputStream _out,
                               java.io.Serializable value)
        Writes the value to the stream using java semantics.
        Specified by:
        writeValue in interface ValueHandler
        Parameters:
        _out - The stream to write the value to
        value - The value to be written to the stream
      • writeValueWithVersion

        private void writeValueWithVersion​(OutputStream _out,
                                           java.io.Serializable value,
                                           byte streamFormatVersion)
      • writeValueInternal

        private void writeValueInternal​(IIOPOutputStream bridge,
                                        OutputStream out,
                                        java.io.Serializable value,
                                        byte streamFormatVersion)
      • readValue

        public java.io.Serializable readValue​(InputStream _in,
                                              int offset,
                                              java.lang.Class clazz,
                                              java.lang.String repositoryID,
                                              RunTime _sender)
        Reads a value from the stream using java semantics.
        Specified by:
        readValue in interface ValueHandler
        Parameters:
        _in - The stream to read the value from
        offset - offset position in the stream
        clazz - The type of the value to be read in
        repositoryID - repo ID for the value to read
        _sender - The sending context runtime
        Returns:
        The serializable value read from the stream
      • readValueInternal

        private java.io.Serializable readValueInternal​(IIOPInputStream bridge,
                                                       InputStream in,
                                                       int offset,
                                                       java.lang.Class<?> clazz,
                                                       java.lang.String repositoryID,
                                                       CodeBase sender)
      • getRMIRepositoryID

        public java.lang.String getRMIRepositoryID​(java.lang.Class clz)
        Returns the repository ID for the given RMI value Class.
        Specified by:
        getRMIRepositoryID in interface ValueHandler
        Parameters:
        clz - The class to return a repository ID for.
        Returns:
        the repository ID of the Class.
      • isCustomMarshaled

        public boolean isCustomMarshaled​(java.lang.Class clz)
        Indicates whether the given Class performs custom or default marshaling.
        Specified by:
        isCustomMarshaled in interface ValueHandler
        Parameters:
        clz - The class to test for custom marshaling.
        Returns:
        True if the class performs custom marshaling, false if it does not.
      • getRunTimeCodeBase

        public RunTime getRunTimeCodeBase()
        Returns the CodeBase for this ValueHandler. This is used by the ORB runtime. The server sends the service context containing the IOR for this CodeBase on the first GIOP reply. The clients do the same on the first GIOP request.
        Specified by:
        getRunTimeCodeBase in interface ValueHandler
        Returns:
        the SendingContext.CodeBase of this ValueHandler.
      • useFullValueDescription

        public boolean useFullValueDescription​(java.lang.Class clazz,
                                               java.lang.String repositoryID)
                                        throws java.io.IOException
        Returns a boolean of whether or not RepositoryId indicates FullValueDescriptor. used for backward compatability
        Parameters:
        clazz - The type to get description for
        repositoryID - The repository ID
        Returns:
        If full description should be retrieved
        Throws:
        java.io.IOException - If suids do not match or if the repositoryID is not an RMIValueType.
      • getClassName

        public java.lang.String getClassName​(java.lang.String id)
      • getClassFromType

        public java.lang.Class getClassFromType​(java.lang.String id)
                                         throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • getAnyClassFromType

        public java.lang.Class getAnyClassFromType​(java.lang.String id)
                                            throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • createForAnyType

        public java.lang.String createForAnyType​(java.lang.Class cl)
      • getDefinedInId

        public java.lang.String getDefinedInId​(java.lang.String id)
      • getUnqualifiedName

        public java.lang.String getUnqualifiedName​(java.lang.String id)
      • getSerialVersionUID

        public java.lang.String getSerialVersionUID​(java.lang.String id)
      • isAbstractBase

        public boolean isAbstractBase​(java.lang.Class clazz)
      • isSequence

        public boolean isSequence​(java.lang.String id)
      • writeReplace

        public java.io.Serializable writeReplace​(java.io.Serializable value)
        If the value contains a writeReplace method then the result is returned. Otherwise, the value itself is returned.
        Specified by:
        writeReplace in interface ValueHandler
        Parameters:
        value - the value to be marshaled.
        Returns:
        the true value to marshal on the wire.
      • writeCharArray

        private void writeCharArray​(OutputStream out,
                                    char[] array,
                                    int offset,
                                    int length)
        Encapsulates writing of Java char arrays so that the 1.3 subclass can override it without exposing internals across packages. This is a fix for bug 4367783.
      • write_Array

        private void write_Array​(OutputStream out,
                                 java.io.Serializable obj,
                                 java.lang.Class type)
      • readCharArray

        private void readCharArray​(InputStream in,
                                   char[] array,
                                   int offset,
                                   int length)
        Encapsulates reading of Java char arrays so that the 1.3 subclass can override it without exposing internals across packages. This is a fix for bug 4367783.
      • isArray

        private boolean isArray​(java.lang.String repId)
      • getJavaCharTCKind

        TCKind getJavaCharTCKind()
        Our JDK 1.3 and JDK 1.3.1 behavior subclasses override this. The correct behavior is for a Java char to map to a CORBA wchar, but our older code mapped it to a CORBA char.