Class AbstractHessianOutput

  • Direct Known Subclasses:
    AbstractBurlapOutput, Hessian2Output, HessianOutput

    public abstract class AbstractHessianOutput
    extends java.lang.Object
    Abstract output stream for Hessian requests.
     OutputStream os = ...; // from http connection
     AbstractOutput out = new HessianSerializerOutput(os);
     String value;
    
     out.startCall("hello");  // start hello call
     out.writeString("arg1"); // write a string argument
     out.completeCall();      // complete the call
     
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      abstract boolean addRef​(java.lang.Object object)
      Adds an object to the reference list.
      void call​(java.lang.String method, java.lang.Object[] args)
      Writes a complete method call.
      void close()  
      abstract void completeCall()
      Completes the method call:
      void completeReply()  
      protected SerializerFactory findSerializerFactory()
      Gets the serializer factory.
      void flush()  
      abstract int getRef​(java.lang.Object obj)  
      SerializerFactory getSerializerFactory()
      Gets the serializer factory.
      void init​(java.io.OutputStream os)
      Initialize the output with a new underlying stream.
      boolean removeRef​(java.lang.Object obj)
      Removes a reference.
      abstract boolean replaceRef​(java.lang.Object oldRef, java.lang.Object newRef)
      Replaces a reference from one object to another.
      void resetReferences()
      Resets the references for streaming.
      void setSerializerFactory​(SerializerFactory factory)
      Sets the serializer factory.
      boolean setUnshared​(boolean isUnshared)  
      abstract void startCall()
      Starts the method call:
      abstract void startCall​(java.lang.String method, int length)
      Starts the method call:
      void startReply()  
      abstract void writeBoolean​(boolean value)
      Writes a boolean value to the stream.
      abstract void writeByteBufferEnd​(byte[] buffer, int offset, int length)
      Writes the last chunk of a byte buffer to the stream.
      abstract void writeByteBufferPart​(byte[] buffer, int offset, int length)
      Writes a byte buffer to the stream.
      abstract void writeByteBufferStart()
      Writes a byte buffer to the stream.
      abstract void writeBytes​(byte[] buffer)
      Writes a byte array to the stream.
      abstract void writeBytes​(byte[] buffer, int offset, int length)
      Writes a byte array to the stream.
      void writeByteStream​(java.io.InputStream is)
      Writes a full output stream.
      void writeClassFieldLength​(int len)
      Writes the end of the class.
      abstract void writeDouble​(double value)
      Writes a double value to the stream.
      void writeFault​(java.lang.String code, java.lang.String message, java.lang.Object detail)  
      void writeHeader​(java.lang.String name)
      Deprecated. 
      abstract void writeInt​(int value)
      Writes an integer value to the stream.
      abstract boolean writeListBegin​(int length, java.lang.String type)
      Writes the list header to the stream.
      abstract void writeListEnd()
      Writes the tail of the list to the stream.
      abstract void writeLong​(long value)
      Writes a long value to the stream.
      abstract void writeMapBegin​(java.lang.String type)
      Writes the map header to the stream.
      abstract void writeMapEnd()
      Writes the tail of the map to the stream.
      abstract void writeMethod​(java.lang.String method)
      Writes the method tag.
      abstract void writeNull()
      Writes a null value to the stream.
      abstract void writeObject​(java.lang.Object object)
      Writes a generic object to the output stream.
      int writeObjectBegin​(java.lang.String type)
      Writes the object header to the stream (for Hessian 2.0), or a Map for Hessian 1.0.
      void writeObjectEnd()
      Writes the tail of the object to the stream.
      protected abstract void writeRef​(int value)
      Writes a reference.
      void writeReply​(java.lang.Object o)  
      abstract void writeString​(char[] buffer, int offset, int length)
      Writes a string value to the stream using UTF-8 encoding.
      abstract void writeString​(java.lang.String value)
      Writes a string value to the stream using UTF-8 encoding.
      abstract void writeUTCDate​(long time)
      Writes a date to the stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractHessianOutput

        public AbstractHessianOutput()
    • Method Detail

      • setSerializerFactory

        public void setSerializerFactory​(SerializerFactory factory)
        Sets the serializer factory.
      • getSerializerFactory

        public SerializerFactory getSerializerFactory()
        Gets the serializer factory.
      • findSerializerFactory

        protected final SerializerFactory findSerializerFactory()
        Gets the serializer factory.
      • init

        public void init​(java.io.OutputStream os)
        Initialize the output with a new underlying stream.
      • setUnshared

        public boolean setUnshared​(boolean isUnshared)
      • call

        public void call​(java.lang.String method,
                         java.lang.Object[] args)
                  throws java.io.IOException
        Writes a complete method call.
        Throws:
        java.io.IOException
      • startCall

        public abstract void startCall()
                                throws java.io.IOException
        Starts the method call:
         C
         
        Parameters:
        method - the method name to call.
        Throws:
        java.io.IOException
      • startCall

        public abstract void startCall​(java.lang.String method,
                                       int length)
                                throws java.io.IOException
        Starts the method call:
         C string int
         
        Parameters:
        method - the method name to call.
        Throws:
        java.io.IOException
      • writeHeader

        public void writeHeader​(java.lang.String name)
                         throws java.io.IOException
        Deprecated.
        For Hessian 2.0, use the Header envelope instead
        Throws:
        java.io.IOException
      • writeMethod

        public abstract void writeMethod​(java.lang.String method)
                                  throws java.io.IOException
        Writes the method tag.
         string
         
        Parameters:
        method - the method name to call.
        Throws:
        java.io.IOException
      • completeCall

        public abstract void completeCall()
                                   throws java.io.IOException
        Completes the method call:
         
        Throws:
        java.io.IOException
      • writeBoolean

        public abstract void writeBoolean​(boolean value)
                                   throws java.io.IOException
        Writes a boolean value to the stream. The boolean will be written with the following syntax:
         T
         F
         
        Parameters:
        value - the boolean value to write.
        Throws:
        java.io.IOException
      • writeInt

        public abstract void writeInt​(int value)
                               throws java.io.IOException
        Writes an integer value to the stream. The integer will be written with the following syntax:
         I b32 b24 b16 b8
         
        Parameters:
        value - the integer value to write.
        Throws:
        java.io.IOException
      • writeLong

        public abstract void writeLong​(long value)
                                throws java.io.IOException
        Writes a long value to the stream. The long will be written with the following syntax:
         L b64 b56 b48 b40 b32 b24 b16 b8
         
        Parameters:
        value - the long value to write.
        Throws:
        java.io.IOException
      • writeDouble

        public abstract void writeDouble​(double value)
                                  throws java.io.IOException
        Writes a double value to the stream. The double will be written with the following syntax:
         D b64 b56 b48 b40 b32 b24 b16 b8
         
        Parameters:
        value - the double value to write.
        Throws:
        java.io.IOException
      • writeUTCDate

        public abstract void writeUTCDate​(long time)
                                   throws java.io.IOException
        Writes a date to the stream.
         T  b64 b56 b48 b40 b32 b24 b16 b8
         
        Parameters:
        time - the date in milliseconds from the epoch in UTC
        Throws:
        java.io.IOException
      • writeNull

        public abstract void writeNull()
                                throws java.io.IOException
        Writes a null value to the stream. The null will be written with the following syntax
         N
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeString

        public abstract void writeString​(java.lang.String value)
                                  throws java.io.IOException
        Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:
         S b16 b8 string-value
         
        If the value is null, it will be written as
         N
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeString

        public abstract void writeString​(char[] buffer,
                                         int offset,
                                         int length)
                                  throws java.io.IOException
        Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:
         S b16 b8 string-value
         
        If the value is null, it will be written as
         N
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeBytes

        public abstract void writeBytes​(byte[] buffer)
                                 throws java.io.IOException
        Writes a byte array to the stream. The array will be written with the following syntax:
         B b16 b18 bytes
         
        If the value is null, it will be written as
         N
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeBytes

        public abstract void writeBytes​(byte[] buffer,
                                        int offset,
                                        int length)
                                 throws java.io.IOException
        Writes a byte array to the stream. The array will be written with the following syntax:
         B b16 b18 bytes
         
        If the value is null, it will be written as
         N
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeByteBufferStart

        public abstract void writeByteBufferStart()
                                           throws java.io.IOException
        Writes a byte buffer to the stream.
        Throws:
        java.io.IOException
      • writeByteBufferPart

        public abstract void writeByteBufferPart​(byte[] buffer,
                                                 int offset,
                                                 int length)
                                          throws java.io.IOException
        Writes a byte buffer to the stream.
         b b16 b18 bytes
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeByteBufferEnd

        public abstract void writeByteBufferEnd​(byte[] buffer,
                                                int offset,
                                                int length)
                                         throws java.io.IOException
        Writes the last chunk of a byte buffer to the stream.
         b b16 b18 bytes
         
        Parameters:
        value - the string value to write.
        Throws:
        java.io.IOException
      • writeByteStream

        public void writeByteStream​(java.io.InputStream is)
                             throws java.io.IOException
        Writes a full output stream.
        Throws:
        java.io.IOException
      • writeRef

        protected abstract void writeRef​(int value)
                                  throws java.io.IOException
        Writes a reference.
         Q int
         
        Parameters:
        value - the integer value to write.
        Throws:
        java.io.IOException
      • removeRef

        public boolean removeRef​(java.lang.Object obj)
                          throws java.io.IOException
        Removes a reference.
        Throws:
        java.io.IOException
      • replaceRef

        public abstract boolean replaceRef​(java.lang.Object oldRef,
                                           java.lang.Object newRef)
                                    throws java.io.IOException
        Replaces a reference from one object to another.
        Throws:
        java.io.IOException
      • addRef

        public abstract boolean addRef​(java.lang.Object object)
                                throws java.io.IOException
        Adds an object to the reference list. If the object already exists, writes the reference, otherwise, the caller is responsible for the serialization.
         R b32 b24 b16 b8
         
        Parameters:
        object - the object to add as a reference.
        Returns:
        true if the object has already been written.
        Throws:
        java.io.IOException
      • getRef

        public abstract int getRef​(java.lang.Object obj)
        Parameters:
        obj -
        Returns:
      • resetReferences

        public void resetReferences()
        Resets the references for streaming.
      • writeObject

        public abstract void writeObject​(java.lang.Object object)
                                  throws java.io.IOException
        Writes a generic object to the output stream.
        Throws:
        java.io.IOException
      • writeListBegin

        public abstract boolean writeListBegin​(int length,
                                               java.lang.String type)
                                        throws java.io.IOException
        Writes the list header to the stream. List writers will call writeListBegin followed by the list contents and then call writeListEnd.
         V
           x13 java.util.ArrayList   # type
           x93                       # length=3
           x91                       # 1
           x92                       # 2
           x93                       # 3
         </list>
         
        Throws:
        java.io.IOException
      • writeListEnd

        public abstract void writeListEnd()
                                   throws java.io.IOException
        Writes the tail of the list to the stream.
        Throws:
        java.io.IOException
      • writeMapBegin

        public abstract void writeMapBegin​(java.lang.String type)
                                    throws java.io.IOException
        Writes the map header to the stream. Map writers will call writeMapBegin followed by the map contents and then call writeMapEnd.
         M type ( )* Z
         
        Throws:
        java.io.IOException
      • writeMapEnd

        public abstract void writeMapEnd()
                                  throws java.io.IOException
        Writes the tail of the map to the stream.
        Throws:
        java.io.IOException
      • writeObjectBegin

        public int writeObjectBegin​(java.lang.String type)
                             throws java.io.IOException
        Writes the object header to the stream (for Hessian 2.0), or a Map for Hessian 1.0. Object writers will call writeObjectBegin followed by the map contents and then call writeObjectEnd.
         C type int *
         C int *
         
        Returns:
        true if the object has already been defined.
        Throws:
        java.io.IOException
      • writeClassFieldLength

        public void writeClassFieldLength​(int len)
                                   throws java.io.IOException
        Writes the end of the class.
        Throws:
        java.io.IOException
      • writeObjectEnd

        public void writeObjectEnd()
                            throws java.io.IOException
        Writes the tail of the object to the stream.
        Throws:
        java.io.IOException
      • writeReply

        public void writeReply​(java.lang.Object o)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • startReply

        public void startReply()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • completeReply

        public void completeReply()
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFault

        public void writeFault​(java.lang.String code,
                               java.lang.String message,
                               java.lang.Object detail)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • flush

        public void flush()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Throws:
        java.io.IOException