Interface HttpData

All Superinterfaces:
ByteBufHolder, Comparable<InterfaceHttpData>, InterfaceHttpData, ReferenceCounted
All Known Subinterfaces:
Attribute, FileUpload
All Known Implementing Classes:
AbstractDiskHttpData, AbstractHttpData, AbstractMemoryHttpData, AbstractMixedHttpData, DiskAttribute, DiskFileUpload, MemoryAttribute, MemoryFileUpload, MixedAttribute, MixedFileUpload

public interface HttpData extends InterfaceHttpData, ByteBufHolder
Extended interface for InterfaceHttpData
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData

    InterfaceHttpData.HttpDataType
  • Method Summary

    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.
    Creates a deep copy of this ByteBufHolder.
    long
    Returns the defined length of the HttpData.
    void
    Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
    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.
    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 Charset passed by the browser or null if not defined.
    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.
     
    long
    Returns the maxSize for this HttpData.
    Returns the contents of the file item as a String, using the default character encoding.
    getString(Charset encoding)
    Returns the contents of the file item as a String, using the specified charset.
    boolean
     
    boolean
    Provides a hint as to whether or not the file contents will be read from memory.
    long
    Returns the size in byte of the InterfaceHttpData
    boolean
    renameTo(File dest)
    A convenience getMethod to write an uploaded item to disk.
    replace(ByteBuf content)
    Returns a new ByteBufHolder which contains the specified content.
    Increases the reference count by 1.
    retain(int increment)
    Increases the reference count by the specified increment.
    Duplicates this ByteBufHolder.
    void
    Set the Charset passed by the browser if defined
    void
    Set the content from the ChannelBuffer (erase any previous data)
    void
    Set the content from the file (erase any previous data)
    void
    setContent(InputStream inputStream)
    Set the content from the inputStream (erase any previous data)
    void
    setMaxSize(long maxSize)
    Set the maxSize for this HttpData.
    Records the current access location of this object for debugging purposes.
    touch(Object hint)
    Records the current access location of this object with an additional arbitrary information for debugging purposes.

    Methods inherited from interface io.netty.buffer.ByteBufHolder

    content

    Methods inherited from interface java.lang.Comparable

    compareTo

    Methods inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData

    getHttpDataType, getName

    Methods inherited from interface io.netty.util.ReferenceCounted

    refCnt, release, release
  • Method Details

    • 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 IOException
      Check if the new size is not reaching the max limit allowed. The limit is always computed in terms of bytes.
      Throws:
      IOException
    • setContent

      void setContent(ByteBuf buffer) throws 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:
      IOException
    • addContent

      void addContent(ByteBuf buffer, boolean last) throws 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:
      IOException
    • setContent

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

      void setContent(InputStream inputStream) throws IOException
      Set the content from the inputStream (erase any previous data)
      Parameters:
      inputStream - must be not null
      Throws:
      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 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:
      IOException
    • getByteBuf

      ByteBuf getByteBuf() throws 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:
      IOException
    • getChunk

      ByteBuf getChunk(int length) throws 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:
      IOException
    • getString

      String getString() throws 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:
      IOException
    • getString

      String getString(Charset encoding) throws 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:
      IOException
    • setCharset

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

      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(File dest) throws 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:
      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

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

      HttpData copy()
      Description copied from interface: ByteBufHolder
      Creates a deep copy of this ByteBufHolder.
      Specified by:
      copy in interface ByteBufHolder
    • duplicate

      HttpData duplicate()
      Description copied from interface: ByteBufHolder
      Duplicates this ByteBufHolder. Be aware that this will not automatically call ByteBufHolder.retain().
      Specified by:
      duplicate in interface ByteBufHolder
    • retainedDuplicate

      HttpData retainedDuplicate()
      Description copied from interface: ByteBufHolder
      Duplicates this ByteBufHolder. This method returns a retained duplicate unlike ByteBufHolder.duplicate().
      Specified by:
      retainedDuplicate in interface ByteBufHolder
      See Also:
    • replace

      HttpData replace(ByteBuf content)
      Description copied from interface: ByteBufHolder
      Returns a new ByteBufHolder which contains the specified content.
      Specified by:
      replace in interface ByteBufHolder
    • retain

      HttpData retain()
      Description copied from interface: ReferenceCounted
      Increases the reference count by 1.
      Specified by:
      retain in interface ByteBufHolder
      Specified by:
      retain in interface InterfaceHttpData
      Specified by:
      retain in interface ReferenceCounted
    • retain

      HttpData retain(int increment)
      Description copied from interface: ReferenceCounted
      Increases the reference count by the specified increment.
      Specified by:
      retain in interface ByteBufHolder
      Specified by:
      retain in interface InterfaceHttpData
      Specified by:
      retain in interface ReferenceCounted
    • touch

      HttpData touch()
      Description copied from interface: ReferenceCounted
      Records the current access location of this object for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you via ResourceLeakDetector. This method is a shortcut to touch(null).
      Specified by:
      touch in interface ByteBufHolder
      Specified by:
      touch in interface InterfaceHttpData
      Specified by:
      touch in interface ReferenceCounted
    • touch

      HttpData touch(Object hint)
      Description copied from interface: ReferenceCounted
      Records the current access location of this object with an additional arbitrary information for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you via ResourceLeakDetector.
      Specified by:
      touch in interface ByteBufHolder
      Specified by:
      touch in interface InterfaceHttpData
      Specified by:
      touch in interface ReferenceCounted