Interface ContentReader
- All Superinterfaces:
ContentAccessor
- All Known Subinterfaces:
FileContentReader
Implementations of this interface might be Serializable but client code could should check suitability before attempting to serialize it.
Implementations that are able to provide inter-VM streaming, such as accessing WebDAV, would be Serializable. An accessor that has to access a local file on the server could not provide inter-VM streaming unless it specifically makes remote calls and opens sockets, etc.
- Author:
- Derek Hulley
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbooleanexists()Check if theunderlying contentis present.voidgetContent(File file) Gets content from the repository direct to filevoidGets content from the repository.Get a stream to read from the underlying channelGets content from the repository direct toString.getContentString(int length) Gets content from the repository direct toString, but limiting the string size to a given number of characters.Provides read-only, random-access to the underlying content.longGets the time of the last modification of the underlying content.Provides low-level access to the underlying content.Convenience method to get another reader onto the underlying content.booleanisClosed()Convenience method to find out if this reader has been closed.Methods inherited from interface org.alfresco.service.cmr.repository.ContentAccessor
addListener, getContentData, getContentUrl, getEncoding, getLocale, getMimetype, getSize, isChannelOpen, setEncoding, setLocale, setMimetype
-
Method Details
-
getReader
Convenience method to get another reader onto the underlying content.- Returns:
- Returns a reader onto the underlying content
- Throws:
ContentIOException
-
exists
boolean exists()Check if theunderlying contentis present.- Returns:
- Returns true if there is content at the URL refered to by this reader
-
getLastModified
long getLastModified()Gets the time of the last modification of the underlying content.- Returns:
- Returns the last modification time using the standard long time, or
0Lif the content doesn'texist. - See Also:
-
isClosed
boolean isClosed()Convenience method to find out if this reader has been closed. Once closed, the content can no longer be read. This method could be used to wait for a particular read operation to complete, for example.- Returns:
- Return true if the content input stream has been used and closed otherwise false.
-
getReadableChannel
Provides low-level access to the underlying content.Once the stream is provided to a client it should remain active (subject to any timeouts) until closed by the client.
- Returns:
- Returns a stream that can be read at will, but must be closed when completed
- Throws:
ContentIOException
-
getFileChannel
Provides read-only, random-access to the underlying content. In general, this method should be considered more expensive than the sequential-access method,getReadableChannel().- Returns:
- Returns a random-access channel onto the content
- Throws:
ContentIOException- See Also:
-
getContentInputStream
Get a stream to read from the underlying channel- Returns:
- Returns an input stream onto the underlying channel
- Throws:
ContentIOException- See Also:
-
getContent
Gets content from the repository.All resources will be closed automatically.
Care must be taken that the bytes read from the stream are properly decoded according to the
encodingproperty.- Parameters:
os- the stream to which to write the content- Throws:
ContentIOException- See Also:
-
getContent
Gets content from the repository direct to fileAll resources will be closed automatically.
- Parameters:
file- the file to write the content to - it will be overwritten- Throws:
ContentIOException- See Also:
-
getContentString
Gets content from the repository direct toString.If the
encodingis known then it will be used otherwise the default system byte[] to String conversion will be used.All resources will be closed automatically.
WARNING: This should only be used when the size of the content is known in advance.
- Returns:
- Returns a String representation of the content
- Throws:
ContentIOException- See Also:
-
getContentString
Gets content from the repository direct toString, but limiting the string size to a given number of characters.If the
encodingis known then it will be used otherwise the default system byte[] to String conversion will be used.All resources will be closed automatically.
- Parameters:
length- the maximum number of characters to retrieve- Returns:
- Returns a truncated String representation of the content
- Throws:
ContentIOExceptionIllegalArgumentException- if the length is < 0 or >Integer.MAX_VALUE- See Also:
-