Interface HttpData
-
- All Superinterfaces:
ByteBufHolder
,java.lang.Comparable<InterfaceHttpData>
,InterfaceHttpData
,ReferenceCounted
- All Known Subinterfaces:
Attribute
,FileUpload
- All Known Implementing Classes:
AbstractDiskHttpData
,AbstractHttpData
,AbstractMemoryHttpData
,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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addContent(ByteBuf buffer, boolean last)
Add the content from the ChannelBuffervoid
checkSize(long newSize)
Check if the new size is not reaching the max limit allowed.HttpData
copy()
Creates a deep copy of thisByteBufHolder
.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 thisByteBufHolder
.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 InterfaceHttpDataboolean
renameTo(java.io.File dest)
A convenience getMethod to write an uploaded item to disk.HttpData
replace(ByteBuf content)
Returns a newByteBufHolder
which contains the specifiedcontent
.HttpData
retain()
Increases the reference count by1
.HttpData
retain(int increment)
Increases the reference count by the specifiedincrement
.HttpData
retainedDuplicate()
Duplicates thisByteBufHolder
.void
setCharset(java.nio.charset.Charset charset)
Set the Charset passed by the browser if definedvoid
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 io.netty.buffer.ByteBufHolder
content
-
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 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 ofbuffer
is transferred to thisHttpData
.- 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 ChannelBufferReferenceCounted.release()
ownership ofbuffer
is transferred to thisHttpData
.- 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
-
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 oneFileUpload
or any known bigAttribute
.- 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
-
copy
HttpData copy()
Description copied from interface:ByteBufHolder
Creates a deep copy of thisByteBufHolder
.- Specified by:
copy
in interfaceByteBufHolder
-
duplicate
HttpData duplicate()
Description copied from interface:ByteBufHolder
Duplicates thisByteBufHolder
. Be aware that this will not automatically callByteBufHolder.retain()
.- Specified by:
duplicate
in interfaceByteBufHolder
-
retainedDuplicate
HttpData retainedDuplicate()
Description copied from interface:ByteBufHolder
Duplicates thisByteBufHolder
. This method returns a retained duplicate unlikeByteBufHolder.duplicate()
.- Specified by:
retainedDuplicate
in interfaceByteBufHolder
- See Also:
ByteBuf.retainedDuplicate()
-
replace
HttpData replace(ByteBuf content)
Description copied from interface:ByteBufHolder
Returns a newByteBufHolder
which contains the specifiedcontent
.- Specified by:
replace
in interfaceByteBufHolder
-
retain
HttpData retain()
Description copied from interface:ReferenceCounted
Increases the reference count by1
.- Specified by:
retain
in interfaceByteBufHolder
- Specified by:
retain
in interfaceInterfaceHttpData
- Specified by:
retain
in interfaceReferenceCounted
-
retain
HttpData retain(int increment)
Description copied from interface:ReferenceCounted
Increases the reference count by the specifiedincrement
.- Specified by:
retain
in interfaceByteBufHolder
- Specified by:
retain
in interfaceInterfaceHttpData
- Specified by:
retain
in interfaceReferenceCounted
-
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 viaResourceLeakDetector
. This method is a shortcut totouch(null)
.- Specified by:
touch
in interfaceByteBufHolder
- Specified by:
touch
in interfaceInterfaceHttpData
- Specified by:
touch
in interfaceReferenceCounted
-
touch
HttpData touch(java.lang.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 viaResourceLeakDetector
.- Specified by:
touch
in interfaceByteBufHolder
- Specified by:
touch
in interfaceInterfaceHttpData
- Specified by:
touch
in interfaceReferenceCounted
-
-