public abstract class AbstractContentWriter extends AbstractContentAccessor implements org.alfresco.service.cmr.repository.ContentWriter
AbstractContentWriter.getReader() to create a reader to the underlying contentAbstractContentWriter.getDirectWritableChannel() to write content to the repositoryAbstractContentAccessor.CallbackFileChannel, AbstractContentAccessor.ChannelCloseCallbackAdvise| Modifier | Constructor and Description |
|---|---|
protected |
AbstractContentWriter(java.lang.String contentUrl,
org.alfresco.service.cmr.repository.ContentReader existingContentReader) |
| Modifier and Type | Method and Description |
|---|---|
void |
addListener(org.alfresco.service.cmr.repository.ContentStreamListener listener)
Adds the listener after checking that the output stream isn't already in
use.
|
protected abstract org.alfresco.service.cmr.repository.ContentReader |
createReader()
A factory method for subclasses to implement that will ensure the proper
implementation of the
ContentWriter.getReader() method. |
protected ContentLimitProvider |
getContentLimitProvider()
This method returns the configured
ContentLimitProvider for this writer. |
java.io.OutputStream |
getContentOutputStream() |
protected abstract java.nio.channels.WritableByteChannel |
getDirectWritableChannel()
Provides low-level access to write content to the repository.
|
protected org.alfresco.service.cmr.repository.ContentReader |
getExistingContentReader() |
java.nio.channels.FileChannel |
getFileChannel(boolean truncate) |
org.alfresco.service.cmr.repository.ContentReader |
getReader()
Performs checks and copies required reader attributes
|
java.nio.channels.WritableByteChannel |
getWritableChannel() |
void |
guessEncoding()
When the content has been written, attempt to guess
the encoding of it.
|
void |
guessMimetype(java.lang.String filename)
When the content has been written, attempt to guess
the mimetype of it, using the filename and contents.
|
boolean |
isChannelOpen() |
boolean |
isClosed()
An automatically created listener sets the flag
|
void |
putContent(org.alfresco.service.cmr.repository.ContentReader reader) |
void |
putContent(java.io.File file) |
void |
putContent(java.io.InputStream is) |
void |
putContent(java.lang.String content)
Makes use of the encoding, if available, to convert the string to bytes.
|
void |
setContentLimitProvider(ContentLimitProvider limitProvider) |
void |
setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
Supplies the Mimetype Service to be used when guessing
encoding and mimetype information.
|
channelOpened, finalize, getCallbackFileChannel, getContentData, getContentUrl, getEncoding, getLocale, getMimetype, setContentUrl, setEncoding, setLocale, setMimetype, toStringprotected AbstractContentWriter(java.lang.String contentUrl,
org.alfresco.service.cmr.repository.ContentReader existingContentReader)
contentUrl - the content URLexistingContentReader - a reader of a previous version of this contentpublic void setContentLimitProvider(ContentLimitProvider limitProvider)
public void setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
protected org.alfresco.service.cmr.repository.ContentReader getExistingContentReader()
public void addListener(org.alfresco.service.cmr.repository.ContentStreamListener listener)
addListener in interface org.alfresco.service.cmr.repository.ContentAccessorprotected abstract org.alfresco.service.cmr.repository.ContentReader createReader()
throws org.alfresco.service.cmr.repository.ContentIOException
ContentWriter.getReader() method.
Only the instance need be constructed. The required mimetype, encoding, etc will be copied across by this class.
org.alfresco.service.cmr.repository.ContentIOExceptionpublic final org.alfresco.service.cmr.repository.ContentReader getReader()
throws org.alfresco.service.cmr.repository.ContentIOException
getReader in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionprotected ContentLimitProvider getContentLimitProvider()
ContentLimitProvider for this writer.
By default a ContentLimitProvider.NoLimitProvider will be returned.public final boolean isClosed()
isClosed in interface org.alfresco.service.cmr.repository.ContentWriterpublic boolean isChannelOpen()
isChannelOpen in interface org.alfresco.service.cmr.repository.ContentAccessorprotected abstract java.nio.channels.WritableByteChannel getDirectWritableChannel()
throws org.alfresco.service.cmr.repository.ContentIOException
This is the only of the content writing methods that needs to be implemented by derived classes. All other content access methods make use of this in their underlying implementations.
org.alfresco.service.cmr.repository.ContentIOException - if the channel could not be openedpublic final java.nio.channels.WritableByteChannel getWritableChannel()
throws org.alfresco.service.cmr.repository.ContentIOException
getWritableChannel in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionAbstractContentWriter.getDirectWritableChannel(),
#getCallbackWritableChannel()public java.nio.channels.FileChannel getFileChannel(boolean truncate)
throws org.alfresco.service.cmr.repository.ContentIOException
getFileChannel in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionpublic java.io.OutputStream getContentOutputStream()
throws org.alfresco.service.cmr.repository.ContentIOException
getContentOutputStream in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionChannels.newOutputStream(java.nio.channels.WritableByteChannel)public void putContent(org.alfresco.service.cmr.repository.ContentReader reader)
throws org.alfresco.service.cmr.repository.ContentIOException
putContent in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionContentReader.getContentInputStream(),
AbstractContentWriter.putContent(InputStream)public final void putContent(java.io.InputStream is)
throws org.alfresco.service.cmr.repository.ContentIOException
putContent in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionpublic final void putContent(java.io.File file)
throws org.alfresco.service.cmr.repository.ContentIOException
putContent in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionpublic final void putContent(java.lang.String content)
throws org.alfresco.service.cmr.repository.ContentIOException
putContent in interface org.alfresco.service.cmr.repository.ContentWriterorg.alfresco.service.cmr.repository.ContentIOExceptionContentAccessor.getEncoding()public void guessEncoding()
guessEncoding in interface org.alfresco.service.cmr.repository.ContentWriterContentWriter.guessEncoding()public void guessMimetype(java.lang.String filename)
guessMimetype in interface org.alfresco.service.cmr.repository.ContentWriterContentWriter.guessMimetype(String)Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.