Interface HttpData

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addContent​(ByteBuf buffer, boolean last)
      Add the content from the ChannelBuffer
      void checkSize​(long newSize)
      Check if the new size is not reaching the max limit allowed.
      HttpData copy()
      Creates a deep copy of this ByteBufHolder.
      long definedLength()
      Returns the defined length of the HttpData.
      void delete()
      Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
      HttpData duplicate()
      Duplicates this ByteBufHolder.
      byte[] get()
      Returns the contents of the file item as an array of bytes.
      Note: this method will allocate a lot of memory, if the data is currently stored on the file system.
      ByteBuf getByteBuf()
      Returns the content of the file item as a ByteBuf.
      Note: this method will allocate a lot of memory, if the data is currently stored on the file system.
      java.nio.charset.Charset getCharset()
      Returns the Charset passed by the browser or null if not defined.
      ByteBuf getChunk​(int length)
      Returns a ChannelBuffer for the content from the current position with at most length read bytes, increasing the current position of the Bytes read.
      java.io.File getFile()  
      long getMaxSize()
      Returns the maxSize for this HttpData.
      java.lang.String getString()
      Returns the contents of the file item as a String, using the default character encoding.
      java.lang.String getString​(java.nio.charset.Charset encoding)
      Returns the contents of the file item as a String, using the specified charset.
      boolean isCompleted()  
      boolean isInMemory()
      Provides a hint as to whether or not the file contents will be read from memory.
      long length()
      Returns the size in byte of the InterfaceHttpData
      boolean renameTo​(java.io.File dest)
      A convenience getMethod to write an uploaded item to disk.
      HttpData replace​(ByteBuf content)
      Returns a new ByteBufHolder which contains the specified content.
      HttpData retain()
      Increases the reference count by 1.
      HttpData retain​(int increment)
      Increases the reference count by the specified increment.
      HttpData retainedDuplicate()
      Duplicates this ByteBufHolder.
      void setCharset​(java.nio.charset.Charset charset)
      Set the Charset passed by the browser if defined
      void setContent​(ByteBuf buffer)
      Set the content from the ChannelBuffer (erase any previous data)
      void setContent​(java.io.File file)
      Set the content from the file (erase any previous data)
      void setContent​(java.io.InputStream inputStream)
      Set the content from the inputStream (erase any previous data)
      void setMaxSize​(long maxSize)
      Set the maxSize for this HttpData.
      HttpData touch()
      Records the current access location of this object for debugging purposes.
      HttpData touch​(java.lang.Object hint)
      Records the current access location of this object with an additional arbitrary information for debugging purposes.
      • Methods inherited from interface java.lang.Comparable

        compareTo
    • Method Detail

      • getMaxSize

        long getMaxSize()
        Returns the maxSize for this HttpData.
      • setMaxSize

        void setMaxSize​(long maxSize)
        Set the maxSize for this HttpData. When limit will be reached, an exception will be raised. Setting it to (-1) means no limitation. By default, to be set from the HttpDataFactory.
      • checkSize

        void checkSize​(long newSize)
                throws java.io.IOException
        Check if the new size is not reaching the max limit allowed. The limit is always computed in terms of bytes.
        Throws:
        java.io.IOException
      • setContent

        void setContent​(ByteBuf buffer)
                 throws java.io.IOException
        Set the content from the ChannelBuffer (erase any previous data)

        ReferenceCounted.release() ownership of buffer is transferred to this HttpData.

        Parameters:
        buffer - must be not null
        Throws:
        java.io.IOException
      • addContent

        void addContent​(ByteBuf buffer,
                        boolean last)
                 throws java.io.IOException
        Add the content from the ChannelBuffer

        ReferenceCounted.release() ownership of buffer is transferred to this HttpData.

        Parameters:
        buffer - must be not null except if last is set to False
        last - True of the buffer is the last one
        Throws:
        java.io.IOException
      • setContent

        void setContent​(java.io.File file)
                 throws java.io.IOException
        Set the content from the file (erase any previous data)
        Parameters:
        file - must be not null
        Throws:
        java.io.IOException
      • setContent

        void setContent​(java.io.InputStream inputStream)
                 throws java.io.IOException
        Set the content from the inputStream (erase any previous data)
        Parameters:
        inputStream - must be not null
        Throws:
        java.io.IOException
      • isCompleted

        boolean isCompleted()
        Returns:
        True if the InterfaceHttpData is completed (all data are stored)
      • length

        long length()
        Returns the size in byte of the InterfaceHttpData
        Returns:
        the size of the InterfaceHttpData
      • definedLength

        long definedLength()
        Returns the defined length of the HttpData. If no Content-Length is provided in the request, the defined length is always 0 (whatever during decoding or in final state). If Content-Length is provided in the request, this is this given defined length. This value does not change, whatever during decoding or in the final state. This method could be used for instance to know the amount of bytes transmitted for one particular HttpData, for example one FileUpload or any known big Attribute.
        Returns:
        the defined length of the HttpData
      • delete

        void delete()
        Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
      • get

        byte[] get()
            throws java.io.IOException
        Returns the contents of the file item as an array of bytes.
        Note: this method will allocate a lot of memory, if the data is currently stored on the file system.
        Returns:
        the contents of the file item as an array of bytes.
        Throws:
        java.io.IOException
      • getByteBuf

        ByteBuf getByteBuf()
                    throws java.io.IOException
        Returns the content of the file item as a ByteBuf.
        Note: this method will allocate a lot of memory, if the data is currently stored on the file system.
        Returns:
        the content of the file item as a ByteBuf
        Throws:
        java.io.IOException
      • getChunk

        ByteBuf getChunk​(int length)
                  throws java.io.IOException
        Returns a ChannelBuffer for the content from the current position with at most length read bytes, increasing the current position of the Bytes read. Once it arrives at the end, it returns an EMPTY_BUFFER and it resets the current position to 0.
        Returns:
        a ChannelBuffer for the content from the current position or an EMPTY_BUFFER if there is no more data to return
        Throws:
        java.io.IOException
      • getString

        java.lang.String getString()
                            throws java.io.IOException
        Returns the contents of the file item as a String, using the default character encoding.
        Returns:
        the contents of the file item as a String, using the default character encoding.
        Throws:
        java.io.IOException
      • getString

        java.lang.String getString​(java.nio.charset.Charset encoding)
                            throws java.io.IOException
        Returns the contents of the file item as a String, using the specified charset.
        Parameters:
        encoding - the charset to use
        Returns:
        the contents of the file item as a String, using the specified charset.
        Throws:
        java.io.IOException
      • setCharset

        void setCharset​(java.nio.charset.Charset charset)
        Set the Charset passed by the browser if defined
        Parameters:
        charset - Charset to set - must be not null
      • getCharset

        java.nio.charset.Charset getCharset()
        Returns the Charset passed by the browser or null if not defined.
        Returns:
        the Charset passed by the browser or null if not defined.
      • renameTo

        boolean renameTo​(java.io.File dest)
                  throws java.io.IOException
        A convenience getMethod to write an uploaded item to disk. If a previous one exists, it will be deleted. Once this getMethod is called, if successful, the new file will be out of the cleaner of the factory that creates the original InterfaceHttpData object.
        Parameters:
        dest - destination file - must be not null
        Returns:
        True if the write is successful
        Throws:
        java.io.IOException
      • isInMemory

        boolean isInMemory()
        Provides a hint as to whether or not the file contents will be read from memory.
        Returns:
        True if the file contents is in memory.
      • getFile

        java.io.File getFile()
                      throws java.io.IOException
        Returns:
        the associated File if this data is represented in a file
        Throws:
        java.io.IOException - if this data is not represented by a file