Class MixedAttribute
- java.lang.Object
-
- io.netty.util.AbstractReferenceCounted
-
- io.netty.handler.codec.http.multipart.MixedAttribute
-
- All Implemented Interfaces:
ByteBufHolder,Attribute,HttpData,InterfaceHttpData,ReferenceCounted,java.lang.Comparable<InterfaceHttpData>
public class MixedAttribute extends AbstractReferenceCounted implements Attribute
Mixed implementation using both in Memory and in File with a limit of size
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData
InterfaceHttpData.HttpDataType
-
-
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 voidaddContent(ByteBuf buffer, boolean last)Add the content from the ChannelBuffervoidcheckSize(long newSize)Check if the new size is not reaching the max limit allowed.intcompareTo(InterfaceHttpData o)ByteBufcontent()Return the data which is held by thisByteBufHolder.Attributecopy()Creates a deep copy of thisByteBufHolder.protected voiddeallocate()Called onceAbstractReferenceCounted.refCnt()is equals 0.longdefinedLength()Returns the defined length of the HttpData.voiddelete()Deletes the underlying storage for a file item, including deleting any associated temporary disk file.Attributeduplicate()Duplicates thisByteBufHolder.booleanequals(java.lang.Object obj)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.ByteBufgetByteBuf()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.CharsetgetCharset()Returns the Charset passed by the browser or null if not defined.ByteBufgetChunk(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.FilegetFile()InterfaceHttpData.HttpDataTypegetHttpDataType()longgetMaxSize()Returns the maxSize for this HttpData.java.lang.StringgetName()Returns the name of this InterfaceHttpData.java.lang.StringgetString()Returns the contents of the file item as a String, using the default character encoding.java.lang.StringgetString(java.nio.charset.Charset encoding)Returns the contents of the file item as a String, using the specified charset.java.lang.StringgetValue()Returns the value of this HttpData.inthashCode()booleanisCompleted()booleanisInMemory()Provides a hint as to whether or not the file contents will be read from memory.longlength()Returns the size in byte of the InterfaceHttpDatabooleanrenameTo(java.io.File dest)A convenience getMethod to write an uploaded item to disk.Attributereplace(ByteBuf content)Returns a newByteBufHolderwhich contains the specifiedcontent.Attributeretain()Increases the reference count by1.Attributeretain(int increment)Increases the reference count by the specifiedincrement.AttributeretainedDuplicate()Duplicates thisByteBufHolder.voidsetCharset(java.nio.charset.Charset charset)Set the Charset passed by the browser if definedvoidsetContent(ByteBuf buffer)Set the content from the ChannelBuffer (erase any previous data)voidsetContent(java.io.File file)Set the content from the file (erase any previous data)voidsetContent(java.io.InputStream inputStream)Set the content from the inputStream (erase any previous data)voidsetMaxSize(long maxSize)Set the maxSize for this HttpData.voidsetValue(java.lang.String value)Sets the value of this HttpData.java.lang.StringtoString()Attributetouch()Records the current access location of this object for debugging purposes.Attributetouch(java.lang.Object hint)Records the current access location of this object with an additional arbitrary information for debugging purposes.-
Methods inherited from class io.netty.util.AbstractReferenceCounted
refCnt, release, release, setRefCnt
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.netty.buffer.ByteBufHolder
content
-
Methods inherited from interface io.netty.handler.codec.http.multipart.HttpData
addContent, checkSize, definedLength, delete, get, getByteBuf, getCharset, getChunk, getFile, getMaxSize, getString, getString, isCompleted, isInMemory, length, renameTo, setCharset, setContent, setContent, setContent, setMaxSize
-
Methods inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData
getHttpDataType, getName
-
Methods inherited from interface io.netty.util.ReferenceCounted
refCnt, release, release
-
-
-
-
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
-
getValue
public java.lang.String getValue() throws java.io.IOExceptionDescription copied from interface:AttributeReturns the value of this HttpData.
-
setValue
public void setValue(java.lang.String value) throws java.io.IOExceptionDescription copied from interface:AttributeSets the value of this HttpData.
-
copy
public Attribute copy()
Description copied from interface:ByteBufHolderCreates a deep copy of thisByteBufHolder.
-
duplicate
public Attribute duplicate()
Description copied from interface:ByteBufHolderDuplicates thisByteBufHolder. Be aware that this will not automatically callByteBufHolder.retain().
-
replace
public Attribute replace(ByteBuf content)
Description copied from interface:ByteBufHolderReturns a newByteBufHolderwhich contains the specifiedcontent.
-
retain
public Attribute retain()
Description copied from interface:ReferenceCountedIncreases the reference count by1.- Specified by:
retainin interfaceAttribute- Specified by:
retainin interfaceByteBufHolder- Specified by:
retainin interfaceHttpData- Specified by:
retainin interfaceInterfaceHttpData- Specified by:
retainin interfaceReferenceCounted
-
retain
public Attribute retain(int increment)
Description copied from interface:ReferenceCountedIncreases the reference count by the specifiedincrement.- Specified by:
retainin interfaceAttribute- Specified by:
retainin interfaceByteBufHolder- Specified by:
retainin interfaceHttpData- Specified by:
retainin interfaceInterfaceHttpData- Specified by:
retainin interfaceReferenceCounted
-
retainedDuplicate
public Attribute retainedDuplicate()
Description copied from interface:ByteBufHolderDuplicates thisByteBufHolder. This method returns a retained duplicate unlikeByteBufHolder.duplicate().- Specified by:
retainedDuplicatein interfaceAttribute- Specified by:
retainedDuplicatein interfaceByteBufHolder- Specified by:
retainedDuplicatein interfaceHttpData- See Also:
ByteBuf.retainedDuplicate()
-
touch
public Attribute touch()
Description copied from interface:ReferenceCountedRecords 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 viaResourceLeakDetector. This method is a shortcut totouch(null).- Specified by:
touchin interfaceAttribute- Specified by:
touchin interfaceByteBufHolder- Specified by:
touchin interfaceHttpData- Specified by:
touchin interfaceInterfaceHttpData- Specified by:
touchin interfaceReferenceCounted
-
touch
public Attribute touch(java.lang.Object hint)
Description copied from interface:ReferenceCountedRecords 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 viaResourceLeakDetector.- Specified by:
touchin interfaceAttribute- Specified by:
touchin interfaceByteBufHolder- Specified by:
touchin interfaceHttpData- Specified by:
touchin interfaceInterfaceHttpData- Specified by:
touchin interfaceReferenceCounted
-
getMaxSize
public long getMaxSize()
Description copied from interface:HttpDataReturns the maxSize for this HttpData.- Specified by:
getMaxSizein interfaceHttpData
-
setMaxSize
public void setMaxSize(long maxSize)
Description copied from interface:HttpDataSet 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:
setMaxSizein interfaceHttpData
-
content
public ByteBuf content()
Description copied from interface:ByteBufHolderReturn the data which is held by thisByteBufHolder.- Specified by:
contentin interfaceByteBufHolder
-
checkSize
public void checkSize(long newSize) throws java.io.IOExceptionDescription copied from interface:HttpDataCheck if the new size is not reaching the max limit allowed. The limit is always computed in terms of bytes.
-
definedLength
public long definedLength()
Description copied from interface:HttpDataReturns 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 oneFileUploador any known bigAttribute.- Specified by:
definedLengthin interfaceHttpData- Returns:
- the defined length of the HttpData
-
getCharset
public java.nio.charset.Charset getCharset()
Description copied from interface:HttpDataReturns the Charset passed by the browser or null if not defined.- Specified by:
getCharsetin interfaceHttpData- Returns:
- the Charset passed by the browser or null if not defined.
-
getName
public java.lang.String getName()
Description copied from interface:InterfaceHttpDataReturns the name of this InterfaceHttpData.- Specified by:
getNamein interfaceInterfaceHttpData
-
addContent
public void addContent(ByteBuf buffer, boolean last) throws java.io.IOException
Description copied from interface:HttpDataAdd the content from the ChannelBufferReferenceCounted.release()ownership ofbufferis transferred to thisHttpData.- Specified by:
addContentin interfaceHttpData- Parameters:
buffer- must be not null except if last is set to Falselast- True of the buffer is the last one- Throws:
java.io.IOException
-
deallocate
protected void deallocate()
Description copied from class:AbstractReferenceCountedCalled onceAbstractReferenceCounted.refCnt()is equals 0.- Specified by:
deallocatein classAbstractReferenceCounted
-
delete
public void delete()
Description copied from interface:HttpDataDeletes the underlying storage for a file item, including deleting any associated temporary disk file.
-
get
public byte[] get() throws java.io.IOExceptionDescription copied from interface:HttpDataReturns 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.
-
getByteBuf
public ByteBuf getByteBuf() throws java.io.IOException
Description copied from interface:HttpDataReturns 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.- Specified by:
getByteBufin interfaceHttpData- Returns:
- the content of the file item as a ByteBuf
- Throws:
java.io.IOException
-
getString
public java.lang.String getString() throws java.io.IOExceptionDescription copied from interface:HttpDataReturns the contents of the file item as a String, using the default character encoding.
-
getString
public java.lang.String getString(java.nio.charset.Charset encoding) throws java.io.IOExceptionDescription copied from interface:HttpDataReturns the contents of the file item as a String, using the specified charset.
-
isInMemory
public boolean isInMemory()
Description copied from interface:HttpDataProvides a hint as to whether or not the file contents will be read from memory.- Specified by:
isInMemoryin interfaceHttpData- Returns:
- True if the file contents is in memory.
-
length
public long length()
Description copied from interface:HttpDataReturns the size in byte of the InterfaceHttpData
-
renameTo
public boolean renameTo(java.io.File dest) throws java.io.IOExceptionDescription copied from interface:HttpDataA 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.
-
setCharset
public void setCharset(java.nio.charset.Charset charset)
Description copied from interface:HttpDataSet the Charset passed by the browser if defined- Specified by:
setCharsetin interfaceHttpData- Parameters:
charset- Charset to set - must be not null
-
setContent
public void setContent(ByteBuf buffer) throws java.io.IOException
Description copied from interface:HttpDataSet the content from the ChannelBuffer (erase any previous data)ReferenceCounted.release()ownership ofbufferis transferred to thisHttpData.- Specified by:
setContentin interfaceHttpData- Parameters:
buffer- must be not null- Throws:
java.io.IOException
-
setContent
public void setContent(java.io.File file) throws java.io.IOExceptionDescription copied from interface:HttpDataSet the content from the file (erase any previous data)- Specified by:
setContentin interfaceHttpData- Parameters:
file- must be not null- Throws:
java.io.IOException
-
setContent
public void setContent(java.io.InputStream inputStream) throws java.io.IOExceptionDescription copied from interface:HttpDataSet the content from the inputStream (erase any previous data)- Specified by:
setContentin interfaceHttpData- Parameters:
inputStream- must be not null- Throws:
java.io.IOException
-
isCompleted
public boolean isCompleted()
- Specified by:
isCompletedin interfaceHttpData- Returns:
- True if the InterfaceHttpData is completed (all data are stored)
-
getHttpDataType
public InterfaceHttpData.HttpDataType getHttpDataType()
- Specified by:
getHttpDataTypein interfaceInterfaceHttpData- Returns:
- The HttpDataType
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
compareTo
public int compareTo(InterfaceHttpData o)
- Specified by:
compareToin interfacejava.lang.Comparable<D extends HttpData>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getChunk
public ByteBuf getChunk(int length) throws java.io.IOException
Description copied from interface:HttpDataReturns 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.
-
-