Class AbstractHessianInput

  • Direct Known Subclasses:
    AbstractBurlapInput, Hessian2Input, HessianInput

    public abstract class AbstractHessianInput
    extends Object
    Abstract base class for Hessian requests. Hessian users should only need to use the methods in this class.
     AbstractHessianInput in = ...; // get input
     String value;
    
     in.startReply();         // read reply header
     value = in.readString(); // read string value
     in.completeReply();      // read reply footer
     
    • Constructor Detail

      • AbstractHessianInput

        public AbstractHessianInput()
    • Method Detail

      • init

        public void init​(InputStream is)
        Initialize the Hessian stream with the underlying input stream.
      • getMethod

        public abstract String getMethod()
        Returns the call's method
      • setRemoteResolver

        public void setRemoteResolver​(HessianRemoteResolver resolver)
        Sets the resolver used to lookup remote objects.
      • getRemoteResolver

        public HessianRemoteResolver getRemoteResolver()
        Sets the resolver used to lookup remote objects.
      • setSerializerFactory

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

        public abstract int readCall()
                              throws IOException
        Reads the call
         c major minor
         
        Throws:
        IOException
      • skipOptionalCall

        public void skipOptionalCall()
                              throws IOException
        For backward compatibility with HessianSkeleton
        Throws:
        IOException
      • readHeader

        public abstract String readHeader()
                                   throws IOException
        Reads a header, returning null if there are no headers.
         H b16 b8 value
         
        Throws:
        IOException
      • readMethod

        public abstract String readMethod()
                                   throws IOException
        Starts reading the call

        A successful completion will have a single value:

         m b16 b8 method
         
        Throws:
        IOException
      • readMethodArgLength

        public int readMethodArgLength()
                                throws IOException
        Reads the number of method arguments
        Returns:
        -1 for a variable length (hessian 1.0)
        Throws:
        IOException
      • startCall

        public abstract void startCall()
                                throws IOException
        Starts reading the call, including the headers.

        The call expects the following protocol data

         c major minor
         m b16 b8 method
         
        Throws:
        IOException
      • completeCall

        public abstract void completeCall()
                                   throws IOException
        Completes reading the call

        The call expects the following protocol data

         Z
         
        Throws:
        IOException
      • readReply

        public abstract Object readReply​(Class expectedClass)
                                  throws Throwable
        Reads a reply as an object. If the reply has a fault, throws the exception.
        Throws:
        Throwable
      • startReply

        public abstract void startReply()
                                 throws Throwable
        Starts reading the reply

        A successful completion will have a single value:

         r
         v
         
        Throws:
        Throwable
      • startReplyBody

        public void startReplyBody()
                            throws Throwable
        Starts reading the body of the reply, i.e. after the 'r' has been parsed.
        Throws:
        Throwable
      • completeReply

        public abstract void completeReply()
                                    throws IOException
        Completes reading the call

        A successful completion will have a single value:

         z
         
        Throws:
        IOException
      • readBoolean

        public abstract boolean readBoolean()
                                     throws IOException
        Reads a boolean
         T
         F
         
        Throws:
        IOException
      • readInt

        public abstract int readInt()
                             throws IOException
        Reads an integer
         I b32 b24 b16 b8
         
        Throws:
        IOException
      • readLong

        public abstract long readLong()
                               throws IOException
        Reads a long
         L b64 b56 b48 b40 b32 b24 b16 b8
         
        Throws:
        IOException
      • readDouble

        public abstract double readDouble()
                                   throws IOException
        Reads a double.
         D b64 b56 b48 b40 b32 b24 b16 b8
         
        Throws:
        IOException
      • readUTCDate

        public abstract long readUTCDate()
                                  throws IOException
        Reads a date.
         T b64 b56 b48 b40 b32 b24 b16 b8
         
        Throws:
        IOException
      • readString

        public abstract String readString()
                                   throws IOException
        Reads a string encoded in UTF-8
         s b16 b8 non-final string chunk
         S b16 b8 final string chunk
         
        Throws:
        IOException
      • readNode

        public Node readNode()
                      throws IOException
        Reads an XML node encoded in UTF-8
         x b16 b8 non-final xml chunk
         X b16 b8 final xml chunk
         
        Throws:
        IOException
      • getReader

        public abstract Reader getReader()
                                  throws IOException
        Starts reading a string. All the characters must be read before calling the next method. The actual characters will be read with the reader's read() or read(char [], int, int).
         s b16 b8 non-final string chunk
         S b16 b8 final string chunk
         
        Throws:
        IOException
      • readInputStream

        public abstract InputStream readInputStream()
                                             throws IOException
        Starts reading a byte array using an input stream. All the bytes must be read before calling the following method.
         b b16 b8 non-final binary chunk
         B b16 b8 final binary chunk
         
        Throws:
        IOException
      • readToOutputStream

        public boolean readToOutputStream​(OutputStream os)
                                   throws IOException
        Reads data to an output stream.
         b b16 b8 non-final binary chunk
         B b16 b8 final binary chunk
         
        Throws:
        IOException
      • readBytes

        public abstract byte[] readBytes()
                                  throws IOException
        Reads a byte array.
         b b16 b8 non-final binary chunk
         B b16 b8 final binary chunk
         
        Throws:
        IOException
      • readObject

        public abstract Object readObject​(Class expectedClass)
                                   throws IOException
        Reads an arbitrary object from the input stream.
        Parameters:
        expectedClass - the expected class if the protocol doesn't supply it.
        Throws:
        IOException
      • readRemote

        public abstract Object readRemote()
                                   throws IOException
        Reads a remote object reference to the stream. The type is the type of the remote interface.
         'r' 't' b16 b8 type url
         
        Throws:
        IOException
      • resetReferences

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

        public abstract int readListStart()
                                   throws IOException
        Reads the start of a list
        Throws:
        IOException
      • readLength

        public abstract int readLength()
                                throws IOException
        Reads the length of a list.
        Throws:
        IOException
      • readMapStart

        public abstract int readMapStart()
                                  throws IOException
        Reads the start of a map
        Throws:
        IOException
      • isEnd

        public abstract boolean isEnd()
                               throws IOException
        Returns true if the data has ended.
        Throws:
        IOException