Class Marshalling


  • public final class Marshalling
    extends Object
    Static utility methods for simplifying use of marshallers.
    • Method Detail

      • getMarshallerFactory

        @Deprecated
        public static MarshallerFactory getMarshallerFactory​(String name)
        Deprecated.
        It is recommended that you use getProvidedMarshallerFactory(String) instead; using the context class loader to find a marshalling implementation is risky at best as the user may have just about anything on their class path.
        Get a marshaller factory, by name. Uses the thread's current context classloader, if available, to locate the factory.
        Parameters:
        name - the name of the protocol to acquire
        Returns:
        the marshaller factory, or null if no matching factory was found
        See Also:
        ServiceLoader
      • getMarshallerFactory

        public static MarshallerFactory getMarshallerFactory​(String name,
                                                             ClassLoader classLoader)
        Get a marshaller factory, by name. Uses the given classloader to locate the factory.
        Parameters:
        name - the name of the protocol to acquire
        classLoader - the class loader to use
        Returns:
        the marshaller factory, or null if no matching factory was found
        See Also:
        ServiceLoader
      • getProvidedMarshallerFactory

        public static MarshallerFactory getProvidedMarshallerFactory​(String name)
        Get a marshaller factory which is visible to this implementation, by name. Uses the class loader of this API.
        Parameters:
        name - the name of the protocol to acquire
        Returns:
        the marshaller factory, or null if no matching factory was found
      • nullStreamHeader

        public static StreamHeader nullStreamHeader()
        Get the default stream header producer, which reads and writes no header at all.
        Returns:
        the default stream header producer
      • streamHeader

        public static StreamHeader streamHeader​(byte[] headerBytes)
        Create a stream header that uses the given bytes.
        Parameters:
        headerBytes - the header bytes
        Returns:
        the stream header object
      • readFully

        public static void readFully​(ByteInput input,
                                     byte[] dest)
                              throws IOException
        Read bytes from a ByteInput. Fully fills in the array.
        Parameters:
        input - the input
        dest - the destination
        Throws:
        EOFException - if the end of file is reached before the array is filled
        IOException - if an I/O error occurs
      • readFully

        public static void readFully​(ByteInput input,
                                     byte[] dest,
                                     int offs,
                                     int len)
                              throws IOException
        Read bytes from a ByteInput. Fully fills in len bytes in the array.
        Parameters:
        input - the input
        dest - the destination
        offs - the offset into the array
        len - the number of bytes
        Throws:
        EOFException - if the end of file is reached before the array is filled
        IOException - if an I/O error occurs
      • createByteInput

        public static ByteInput createByteInput​(ByteBuffer buffer)
        Create a ByteInput wrapper for a ByteBuffer.
        Parameters:
        buffer - the byte buffer
        Returns:
        the byte input wrapper
      • createByteInput

        public static ByteInput createByteInput​(InputStream inputStream)
        Create a ByteInput wrapper for an InputStream.
        Parameters:
        inputStream - the input stream
        Returns:
        the byte input wrapper
      • createInputStream

        public static InputStream createInputStream​(ByteInput byteInput)
        Create an InputStream wrapper for a ByteInput.
        Parameters:
        byteInput - the byte input
        Returns:
        the input stream wrapper
      • createByteOutput

        public static ByteOutput createByteOutput​(ByteBuffer buffer)
        Create a ByteOutput wrapper for a ByteBuffer.
        Parameters:
        buffer - the byte buffer
        Returns:
        the byte output wrapper
      • createByteOutput

        public static ByteOutput createByteOutput​(OutputStream outputStream)
        Create a ByteOutput wrapper for an OutputStream.
        Parameters:
        outputStream - the output stream
        Returns:
        the byte output wrapper
      • createOutputStream

        public static OutputStream createOutputStream​(ByteOutput byteOutput)
        Create a OutputStream wrapper for a ByteOutput.
        Parameters:
        byteOutput - the byte output
        Returns:
        the output stream wrapper
      • nullClassExternalizerFactory

        public static ClassExternalizerFactory nullClassExternalizerFactory()
        Return the null class externalizer factory. This instance does not externalize any classes.
        Returns:
        the null class externalizer factory
      • nullObjectResolver

        public static ObjectResolver nullObjectResolver()
        Return the null object resolver. This instance does not translate objects in any way.
        Returns:
        the null object resolver
      • nullObjectTable

        public static ObjectTable nullObjectTable()
        Return the null object instance table. This instance contains no predefined instances.
        Returns:
        the null instance table
      • nullClassTable

        public static ClassTable nullClassTable()
        Return the null class table instance. This instance contains no predefined classes.
        Returns:
        the null class table
      • createOptionalDataException

        public static OptionalDataException createOptionalDataException​(boolean eof)
        Construct a new OptionalDataException. This method is necessary because there are no public constructors in the API.
        Parameters:
        eof - true if there is no more data in the buffered part of the stream
        Returns:
        a new OptionalDataException
      • createOptionalDataException

        public static OptionalDataException createOptionalDataException​(int length)
        Construct a new OptionalDataException. This method is necessary because there are no public constructors in the API.
        Parameters:
        length - the number of bytes of primitive data available to be read in the current buffer
        Returns:
        a new OptionalDataException