Class AbstractDiskHttpData
- java.lang.Object
-
- io.netty.util.AbstractReferenceCounted
-
- io.netty.handler.codec.http.multipart.AbstractHttpData
-
- io.netty.handler.codec.http.multipart.AbstractDiskHttpData
-
- All Implemented Interfaces:
ByteBufHolder,HttpData,InterfaceHttpData,ReferenceCounted,java.lang.Comparable<InterfaceHttpData>
- Direct Known Subclasses:
DiskAttribute,DiskFileUpload
public abstract class AbstractDiskHttpData extends AbstractHttpData
Abstract Disk HttpData implementation
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData
InterfaceHttpData.HttpDataType
-
-
Field Summary
-
Fields inherited from class io.netty.handler.codec.http.multipart.AbstractHttpData
definedSize, size
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractDiskHttpData(java.lang.String name, java.nio.charset.Charset charset, long size)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddContent(ByteBuf buffer, boolean last)Add the content from the ChannelBuffervoiddelete()Deletes the underlying storage for a file item, including deleting any associated temporary disk file.protected abstract booleandeleteOnExit()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.protected abstract java.lang.StringgetBaseDirectory()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.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.protected abstract java.lang.StringgetDiskFilename()java.io.FilegetFile()protected abstract java.lang.StringgetPostfix()protected abstract java.lang.StringgetPrefix()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.booleanisInMemory()Provides a hint as to whether or not the file contents will be read from memory.booleanrenameTo(java.io.File dest)A convenience getMethod to write an uploaded item to disk.voidsetContent(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)HttpDatatouch()Records the current access location of this object for debugging purposes.HttpDatatouch(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.handler.codec.http.multipart.AbstractHttpData
checkSize, content, deallocate, definedLength, getCharset, getMaxSize, getName, isCompleted, length, retain, retain, setCharset, setCompleted, setCompleted, setMaxSize
-
Methods inherited from class io.netty.util.AbstractReferenceCounted
refCnt, release, release, setRefCnt
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.handler.codec.http.multipart.HttpData
copy, duplicate, replace, retainedDuplicate
-
Methods inherited from interface io.netty.handler.codec.http.multipart.InterfaceHttpData
getHttpDataType
-
Methods inherited from interface io.netty.util.ReferenceCounted
refCnt, release, release
-
-
-
-
Method Detail
-
getDiskFilename
protected abstract java.lang.String getDiskFilename()
- Returns:
- the real DiskFilename (basename)
-
getPrefix
protected abstract java.lang.String getPrefix()
- Returns:
- the default prefix
-
getBaseDirectory
protected abstract java.lang.String getBaseDirectory()
- Returns:
- the default base Directory
-
getPostfix
protected abstract java.lang.String getPostfix()
- Returns:
- the default postfix
-
deleteOnExit
protected abstract boolean deleteOnExit()
- Returns:
- True if the file should be deleted on Exit by default
-
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.- Parameters:
buffer- must be not null- Throws:
java.io.IOException
-
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.- 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
public void setContent(java.io.File file) throws java.io.IOExceptionDescription copied from interface:HttpDataSet the content from the file (erase any previous data)- 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)- Parameters:
inputStream- must be not null- Throws:
java.io.IOException
-
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.- 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: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.- Returns:
- the content of the file item as a ByteBuf
- Throws:
java.io.IOException
-
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.- 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
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.- 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.IOExceptionDescription copied from interface:HttpDataReturns 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
-
isInMemory
public boolean isInMemory()
Description copied from interface:HttpDataProvides 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(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.- Parameters:
dest- destination file - must be not null- Returns:
- True if the write is successful
- Throws:
java.io.IOException
-
getFile
public 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
-
touch
public HttpData 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 interfaceByteBufHolder- Specified by:
touchin interfaceHttpData- Specified by:
touchin interfaceInterfaceHttpData- Specified by:
touchin interfaceReferenceCounted- Specified by:
touchin classAbstractHttpData
-
touch
public HttpData 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 interfaceByteBufHolder- Specified by:
touchin interfaceHttpData- Specified by:
touchin interfaceInterfaceHttpData- Specified by:
touchin interfaceReferenceCounted- Specified by:
touchin classAbstractHttpData
-
-