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 TypeMethodDescriptionboolean
exists()
Check if theunderlying content
is present.void
getContent
(File file) Gets content from the repository direct to filevoid
Gets 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.long
Gets 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.boolean
isClosed()
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 content
is 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
0L
if 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
encoding
property.- 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
encoding
is 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
encoding
is 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:
ContentIOException
IllegalArgumentException
- if the length is < 0 or >Integer.MAX_VALUE
- See Also:
-