Class MixedAttribute

    • Constructor Summary

      Constructors 
      Constructor Description
      MixedAttribute​(java.lang.String name, long limitSize)  
      MixedAttribute​(java.lang.String name, long definedSize, long limitSize)  
      MixedAttribute​(java.lang.String name, long definedSize, long limitSize, java.nio.charset.Charset charset)  
      MixedAttribute​(java.lang.String name, long definedSize, long limitSize, java.nio.charset.Charset charset, java.lang.String baseDir, boolean deleteOnExit)  
      MixedAttribute​(java.lang.String name, long limitSize, java.nio.charset.Charset charset)  
      MixedAttribute​(java.lang.String name, long limitSize, java.nio.charset.Charset charset, java.lang.String baseDir, boolean deleteOnExit)  
      MixedAttribute​(java.lang.String name, java.lang.String value, long limitSize)  
      MixedAttribute​(java.lang.String name, java.lang.String value, long limitSize, java.nio.charset.Charset charset)  
      MixedAttribute​(java.lang.String name, java.lang.String value, long limitSize, java.nio.charset.Charset charset, java.lang.String baseDir, boolean deleteOnExit)  
    • Method Summary

      All Methods Instance Methods Concrete 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.
      int compareTo​(InterfaceHttpData o)  
      ByteBuf content()
      Return the data which is held by this ByteBufHolder.
      Attribute 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.
      Attribute duplicate()
      Duplicates this ByteBufHolder.
      boolean equals​(java.lang.Object obj)  
      byte[] get()
      Returns the contents of the file item as an array of bytes.
      ByteBuf getByteBuf()
      Returns the content of the file item as a ByteBuf
      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()  
      InterfaceHttpData.HttpDataType getHttpDataType()  
      long getMaxSize()
      Returns the maxSize for this HttpData.
      java.lang.String getName()
      Returns the name of this InterfaceHttpData.
      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.
      java.lang.String getValue()
      Returns the value of this HttpData.
      int hashCode()  
      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
      int refCnt()
      Returns the reference count of this object.
      boolean release()
      Decreases the reference count by 1 and deallocates this object if the reference count reaches at 0.
      boolean release​(int decrement)
      Decreases the reference count by the specified decrement and deallocates this object if the reference count reaches at 0.
      boolean renameTo​(java.io.File dest)
      A convenience getMethod to write an uploaded item to disk.
      Attribute replace​(ByteBuf content)
      Returns a new ByteBufHolder which contains the specified content.
      Attribute retain()
      Increases the reference count by 1.
      Attribute retain​(int increment)
      Increases the reference count by the specified increment.
      Attribute 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.
      void setValue​(java.lang.String value)
      Sets the value of this HttpData.
      java.lang.String toString()  
      Attribute touch()
      Records the current access location of this object for debugging purposes.
      Attribute touch​(java.lang.Object hint)
      Records the current access location of this object with an additional arbitrary information for debugging purposes.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • baseDir

        private java.lang.String baseDir
      • deleteOnExit

        private boolean deleteOnExit
      • limitSize

        private final long limitSize
      • maxSize

        private long maxSize
    • Constructor Detail

      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long limitSize)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long definedSize,
                              long limitSize)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long limitSize,
                              java.nio.charset.Charset charset)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long limitSize,
                              java.nio.charset.Charset charset,
                              java.lang.String baseDir,
                              boolean deleteOnExit)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long definedSize,
                              long limitSize,
                              java.nio.charset.Charset charset)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              long definedSize,
                              long limitSize,
                              java.nio.charset.Charset charset,
                              java.lang.String baseDir,
                              boolean deleteOnExit)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              java.lang.String value,
                              long limitSize)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              java.lang.String value,
                              long limitSize,
                              java.nio.charset.Charset charset)
      • MixedAttribute

        public MixedAttribute​(java.lang.String name,
                              java.lang.String value,
                              long limitSize,
                              java.nio.charset.Charset charset,
                              java.lang.String baseDir,
                              boolean deleteOnExit)
    • Method Detail

      • getMaxSize

        public long getMaxSize()
        Description copied from interface: HttpData
        Returns the maxSize for this HttpData.
        Specified by:
        getMaxSize in interface HttpData
      • setMaxSize

        public void setMaxSize​(long maxSize)
        Description copied from interface: HttpData
        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.
        Specified by:
        setMaxSize in interface HttpData
      • checkSize

        public void checkSize​(long newSize)
                       throws java.io.IOException
        Description copied from interface: HttpData
        Check if the new size is not reaching the max limit allowed. The limit is always computed in term of bytes.
        Specified by:
        checkSize in interface HttpData
        Throws:
        java.io.IOException
      • addContent

        public void addContent​(ByteBuf buffer,
                               boolean last)
                        throws java.io.IOException
        Description copied from interface: HttpData
        Add the content from the ChannelBuffer
        Specified by:
        addContent in interface 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
      • delete

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

        public byte[] get()
                   throws java.io.IOException
        Description copied from interface: HttpData
        Returns the contents of the file item as an array of bytes.
        Specified by:
        get in interface HttpData
        Returns:
        the contents of the file item as an array of bytes.
        Throws:
        java.io.IOException
      • getByteBuf

        public ByteBuf getByteBuf()
                           throws java.io.IOException
        Description copied from interface: HttpData
        Returns the content of the file item as a ByteBuf
        Specified by:
        getByteBuf in interface HttpData
        Returns:
        the content of the file item as a ByteBuf
        Throws:
        java.io.IOException
      • getCharset

        public java.nio.charset.Charset getCharset()
        Description copied from interface: HttpData
        Returns the Charset passed by the browser or null if not defined.
        Specified by:
        getCharset in interface HttpData
        Returns:
        the Charset passed by the browser or null if not defined.
      • getString

        public java.lang.String getString()
                                   throws java.io.IOException
        Description copied from interface: HttpData
        Returns the contents of the file item as a String, using the default character encoding.
        Specified by:
        getString in interface HttpData
        Returns:
        the contents of the file item as a String, using the default character encoding.
        Throws:
        java.io.IOException
      • getString

        public java.lang.String getString​(java.nio.charset.Charset encoding)
                                   throws java.io.IOException
        Description copied from interface: HttpData
        Returns the contents of the file item as a String, using the specified charset.
        Specified by:
        getString in interface HttpData
        Parameters:
        encoding - the charset to use
        Returns:
        the contents of the file item as a String, using the specified charset.
        Throws:
        java.io.IOException
      • isCompleted

        public boolean isCompleted()
        Specified by:
        isCompleted in interface HttpData
        Returns:
        True if the InterfaceHttpData is completed (all data are stored)
      • 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.
        Specified by:
        isInMemory in interface HttpData
        Returns:
        True if the file contents is in memory.
      • length

        public long length()
        Description copied from interface: HttpData
        Returns the size in byte of the InterfaceHttpData
        Specified by:
        length in interface HttpData
        Returns:
        the size of the InterfaceHttpData
      • definedLength

        public long definedLength()
        Description copied from interface: HttpData
        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.
        Specified by:
        definedLength in interface HttpData
        Returns:
        the defined length of the HttpData
      • renameTo

        public boolean renameTo​(java.io.File dest)
                         throws java.io.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.
        Specified by:
        renameTo in interface HttpData
        Parameters:
        dest - destination file - must be not null
        Returns:
        True if the write is successful
        Throws:
        java.io.IOException
      • setCharset

        public void setCharset​(java.nio.charset.Charset charset)
        Description copied from interface: HttpData
        Set the Charset passed by the browser if defined
        Specified by:
        setCharset in interface HttpData
        Parameters:
        charset - Charset to set - must be not null
      • setContent

        public void setContent​(ByteBuf buffer)
                        throws java.io.IOException
        Description copied from interface: HttpData
        Set the content from the ChannelBuffer (erase any previous data)
        Specified by:
        setContent in interface HttpData
        Parameters:
        buffer - must be not null
        Throws:
        java.io.IOException
      • setContent

        public void setContent​(java.io.File file)
                        throws java.io.IOException
        Description copied from interface: HttpData
        Set the content from the file (erase any previous data)
        Specified by:
        setContent in interface HttpData
        Parameters:
        file - must be not null
        Throws:
        java.io.IOException
      • setContent

        public void setContent​(java.io.InputStream inputStream)
                        throws java.io.IOException
        Description copied from interface: HttpData
        Set the content from the inputStream (erase any previous data)
        Specified by:
        setContent in interface HttpData
        Parameters:
        inputStream - must be not null
        Throws:
        java.io.IOException
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getValue

        public java.lang.String getValue()
                                  throws java.io.IOException
        Description copied from interface: Attribute
        Returns the value of this HttpData.
        Specified by:
        getValue in interface Attribute
        Throws:
        java.io.IOException
      • setValue

        public void setValue​(java.lang.String value)
                      throws java.io.IOException
        Description copied from interface: Attribute
        Sets the value of this HttpData.
        Specified by:
        setValue in interface Attribute
        Throws:
        java.io.IOException
      • getChunk

        public ByteBuf getChunk​(int length)
                         throws java.io.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.
        Specified by:
        getChunk in interface HttpData
        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
      • getFile

        public java.io.File getFile()
                             throws java.io.IOException
        Specified by:
        getFile in interface HttpData
        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
      • refCnt

        public int refCnt()
        Description copied from interface: ReferenceCounted
        Returns the reference count of this object. If 0, it means this object has been deallocated.
        Specified by:
        refCnt in interface ReferenceCounted
      • release

        public boolean release()
        Description copied from interface: ReferenceCounted
        Decreases the reference count by 1 and deallocates this object if the reference count reaches at 0.
        Specified by:
        release in interface ReferenceCounted
        Returns:
        true if and only if the reference count became 0 and this object has been deallocated
      • release

        public boolean release​(int decrement)
        Description copied from interface: ReferenceCounted
        Decreases the reference count by the specified decrement and deallocates this object if the reference count reaches at 0.
        Specified by:
        release in interface ReferenceCounted
        Returns:
        true if and only if the reference count became 0 and this object has been deallocated