|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ContentService
Provides methods for accessing and transforming content.
Implementations of this service are primarily responsible for ensuring that the correct store is used to access content, and that reads and writes for the same node reference are routed to the same store instance.
The mechanism for selecting an appropriate store is not prescribed by the interface, but typically the decision will be made on the grounds of content type.
Whereas the content stores have no knowledge of nodes other than their
references, the ContentService
is responsible for
ensuring that all the relevant node-content relationships are maintained.
ContentStore
,
ContentReader
,
ContentWriter
Method Summary | |
---|---|
java.util.List |
getActiveTransformers(java.lang.String sourceMimetype,
java.lang.String targetMimetype,
TransformationOptions options)
Fetch all the transformers that are capable of transforming the content in the given source mimetype to the given target mimetype with the provided transformation options. |
ContentTransformer |
getImageTransformer()
Fetch the transformer that is capable of transforming image content. |
org.alfresco.service.cmr.repository.ContentReader |
getRawReader(java.lang.String contentUrl)
Fetch content from the low-level stores using a content URL. |
org.alfresco.service.cmr.repository.ContentReader |
getReader(org.alfresco.service.cmr.repository.NodeRef nodeRef,
org.alfresco.service.namespace.QName propertyQName)
Gets a reader for the content associated with the given node property. |
long |
getStoreFreeSpace()
Gets the remaing available space in the underlying content store. |
long |
getStoreTotalSpace()
Gets the total space of the underlying content store (not exclusively Alfresco-controlled binaries). |
org.alfresco.service.cmr.repository.ContentWriter |
getTempWriter()
Gets a writer to a temporary location. |
ContentTransformer |
getTransformer(java.lang.String sourceMimetype,
java.lang.String targetMimetype)
Fetch the transformer that is capable of transforming the content in the given source mimetype to the given target mimetype. |
ContentTransformer |
getTransformer(java.lang.String sourceMimetype,
java.lang.String targetMimetype,
TransformationOptions options)
Fetch the transformer that is capable of transforming the content in the given source mimetype to the given target mimetype with the provided transformation options. |
org.alfresco.service.cmr.repository.ContentWriter |
getWriter(org.alfresco.service.cmr.repository.NodeRef nodeRef,
org.alfresco.service.namespace.QName propertyQName,
boolean update)
Get a content writer for the given node property, choosing to optionally have the node property updated automatically when the content stream closes. |
boolean |
isTransformable(org.alfresco.service.cmr.repository.ContentReader reader,
org.alfresco.service.cmr.repository.ContentWriter writer)
Returns whether a transformer exists that can read the content from the reader and write the content back out to the writer. |
boolean |
isTransformable(org.alfresco.service.cmr.repository.ContentReader reader,
org.alfresco.service.cmr.repository.ContentWriter writer,
TransformationOptions options)
Returns whether a transformer exists that can read the content from the reader and write the content back out to the writer with the provided tranformation options. |
void |
transform(org.alfresco.service.cmr.repository.ContentReader reader,
org.alfresco.service.cmr.repository.ContentWriter writer)
Transforms the content from the reader and writes the content back out to the writer. |
void |
transform(org.alfresco.service.cmr.repository.ContentReader reader,
org.alfresco.service.cmr.repository.ContentWriter writer,
java.util.Map options)
Deprecated. |
void |
transform(org.alfresco.service.cmr.repository.ContentReader reader,
org.alfresco.service.cmr.repository.ContentWriter writer,
TransformationOptions options)
|
Method Detail |
---|
long getStoreTotalSpace()
long getStoreFreeSpace()
@Auditable(parameters="contentUrl") org.alfresco.service.cmr.repository.ContentReader getRawReader(java.lang.String contentUrl)
null is never returned, but the reader should always be checked for
existence
.
contentUrl
- a content store URL
@Auditable(parameters={"nodeRef", "propertyQName"}) org.alfresco.service.cmr.repository.ContentReader getReader(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName propertyQName) throws org.alfresco.service.cmr.repository.InvalidNodeRefException, org.alfresco.service.cmr.dictionary.InvalidTypeException
If a content URL is present for the given node then a reader must
be returned. The exists
method should then
be used to detect 'missing' content.
nodeRef
- a reference to a node having a content propertypropertyQName
- the name of the property, which must be of type content
InvalidNodeRefException
- if the node doesn't exist
org.alfresco.service.cmr.dictionary.InvalidTypeException
- if the node is not of type contentFileContentReader.getSafeContentReader(ContentReader, String, Object[])
@Auditable(parameters={"nodeRef", "propertyQName", "update"}) org.alfresco.service.cmr.repository.ContentWriter getWriter(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName propertyQName, boolean update) throws org.alfresco.service.cmr.repository.InvalidNodeRefException, org.alfresco.service.cmr.dictionary.InvalidTypeException
If the update flag is off, then the state of the node property will remain unchanged regardless of the state of the written binary data. If the flag is on, then the node property will be updated on the same thread as the code that closed the write channel.
If no node is supplied, then the writer will provide a stream into the backing content store, but will not be associated with any new or previous content.
NOTE: The content URL provided will be registered for automatic cleanup in the event that the transaction, in which this method was called, rolls back. If the transaction is successful, the writer may still be open and available for use but the underlying binary will not be cleaned up subsequently. The recommended pattern is to group calls to retrieve the writer in the same transaction as the calls to subsequently update and close the write stream - including setting of the related content properties.
nodeRef
- a reference to a node having a content property, or null
to just get a valid writer into a backing content store.propertyQName
- the name of the property, which must be of type contentupdate
- true if the property must be updated atomically when the content write
stream is closed (attaches a listener to the stream); false if the client code
will perform the updates itself.
InvalidNodeRefException
- if the node doesn't exist
org.alfresco.service.cmr.dictionary.InvalidTypeException
- if the node property is not of type content@Auditable org.alfresco.service.cmr.repository.ContentWriter getTempWriter()
@Auditable(parameters={"reader", "writer"}) void transform(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer) throws NoTransformerException, org.alfresco.service.cmr.repository.ContentIOException
The mimetypes used for the transformation must be set both on
the reader
and on the
writer
.
reader
- the source content location and mimetypewriter
- the target content location and mimetype
NoTransformerException
- if no transformer exists for the
given source and target mimetypes of the reader and writer
ContentIOException
- if the transformation fails@Auditable(parameters={"reader", "writer", "options"}) @Deprecated void transform(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, java.util.Map options) throws NoTransformerException, org.alfresco.service.cmr.repository.ContentIOException
reader
- the source content location and mimetypewriter
- the target content location and mimetypeoptions
- the options for the transformation
NoTransformerException
- if no transformer exists for the
given source and target mimetypes of the reader and writer
ContentIOException
- if the transformation failsorg.aflresco.service.cmr.repository.ContentService.transform(ContentReader, ContentReader)
,
A map of transform options can be provided.
@Auditable(parameters={"reader", "writer", "options"}) void transform(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, TransformationOptions options) throws NoTransformerException, org.alfresco.service.cmr.repository.ContentIOException
reader
- the source content location and mimetypewriter
- the target content location and mimetypeoptions
- the options for the transformation
NoTransformerException
- if no transformer exists for the
given source and target mimetypes of the reader and writer
ContentIOException
- if the transformation failsA transformation options can be provided.
@Auditable(parameters={"sourceMimetype", "targetMimetype"}) ContentTransformer getTransformer(java.lang.String sourceMimetype, java.lang.String targetMimetype)
Since no transformation options are provided only the source and destination mimetypes are considered when getting the correct transformer.
the
- source mimetypethe
- target mimetype
org.alfresco.service.cmr.respository.ContentService.getTransformer(String, String, TransformationOptions)
,
ContentAccessor.getMimetype()
@Auditable(parameters={"sourceMimetype", "targetMimetype", "options"}) ContentTransformer getTransformer(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
sourceMimetype
- the source mimetypetargetMimetype
- the target mimetypeoptions
- the transformation options
ContentAccessor.getMimetype()
@Auditable(parameters={"sourceMimetype", "targetMimetype", "options"}) java.util.List getActiveTransformers(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
sourceMimetype
- the source mimetypetargetMimetype
- the target mimetypeoptions
- the transformation options
ContentAccessor.getMimetype()
@Auditable ContentTransformer getImageTransformer()
@Auditable(parameters={"reader", "writer"}) boolean isTransformable(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer)
Since no transformation options are specified, only the source and target mimetypes will be considered when making this decision.
The mimetypes used for the transformation must be set both on
the reader
and on the
writer
.
reader
- the source content location and mimetypewriter
- the target content location and mimetype
org.alfresco.service.cmr.repository.ContentService.isTransformable(ContentReader, ContentWriter, TransformationOptions)
@Auditable(parameters={"reader", "writer", "options"}) boolean isTransformable(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, TransformationOptions options)
The mimetypes used for the transformation must be set both on
the reader
and on the
writer
.
reader
- the source content location and mimetypewriter
- the target content location and mimetypeoptions
- the transformation options
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |