Class AbstractMemoryHttpData

All Implemented Interfaces:
ByteBufHolder, HttpData, InterfaceHttpData, ReferenceCounted, Comparable<InterfaceHttpData>
Direct Known Subclasses:
MemoryAttribute, MemoryFileUpload

public abstract class AbstractMemoryHttpData extends AbstractHttpData
Abstract Memory HttpData implementation
  • Field Details

    • byteBuf

      private ByteBuf byteBuf
    • chunkPosition

      private int chunkPosition
  • Constructor Details

    • AbstractMemoryHttpData

      protected AbstractMemoryHttpData(String name, Charset charset, long size)
  • Method Details

    • setContent

      public void setContent(ByteBuf buffer) throws IOException
      Description copied from interface: HttpData
      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
    • setContent

      public void setContent(InputStream inputStream) throws IOException
      Description copied from interface: HttpData
      Set the content from the inputStream (erase any previous data)
      Parameters:
      inputStream - must be not null
      Throws:
      IOException
    • addContent

      public void addContent(ByteBuf buffer, boolean last) throws IOException
      Description copied from interface: HttpData
      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

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

      public void delete()
      Description copied from interface: HttpData
      Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
    • get

      public byte[] get()
      Description copied from interface: HttpData
      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.
    • getString

      public String getString()
      Description copied from interface: HttpData
      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.
    • getString

      public String getString(Charset encoding)
      Description copied from interface: HttpData
      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.
    • getByteBuf

      public ByteBuf getByteBuf()
      Utility to go from a In Memory FileUpload to a Disk (or another implementation) FileUpload
      Returns:
      the attached ByteBuf containing the actual bytes
    • getChunk

      public ByteBuf getChunk(int length) throws IOException
      Description copied from interface: HttpData
      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
    • isInMemory

      public boolean isInMemory()
      Description copied from interface: HttpData
      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.
    • renameTo

      public boolean renameTo(File dest) throws IOException
      Description copied from interface: HttpData
      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
    • getFile

      public 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
    • touch

      public 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 HttpData
      Specified by:
      touch in interface InterfaceHttpData
      Specified by:
      touch in interface ReferenceCounted
      Specified by:
      touch in class AbstractHttpData
    • touch

      public 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 HttpData
      Specified by:
      touch in interface InterfaceHttpData
      Specified by:
      touch in interface ReferenceCounted
      Specified by:
      touch in class AbstractHttpData