org.alfresco.repo.content
Class ContentServiceImpl

java.lang.Object
  extended by org.alfresco.repo.content.ContentServiceImpl
All Implemented Interfaces:
ContentService, org.springframework.context.ApplicationContextAware
Direct Known Subclasses:
RoutingContentService

public class ContentServiceImpl
extends java.lang.Object
implements ContentService, org.springframework.context.ApplicationContextAware

Service implementation acting as a level of indirection between the client and the underlying content store.

Note: This class was formerly the RoutingContentService but the 'routing' functionality has been pushed into the store implementations.

Since:
3.2

Constructor Summary
ContentServiceImpl()
           
 
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.
 void init()
          Service initialise
 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 onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map before, java.util.Map after)
          Update properties policy behaviour
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setAvmService(AVMService service)
           
 void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
           
 void setEagerContentStoreCleaner(EagerContentStoreCleaner eagerContentStoreCleaner)
           
 void setIgnoreEmptyContent(boolean ignoreEmptyContent)
           
 void setImageMagickContentTransformer(ContentTransformer imageMagickContentTransformer)
           
 void setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
           
 void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
           
 void setPolicyComponent(PolicyComponent policyComponent)
           
 void setRetryingTransactionHelper(RetryingTransactionHelper helper)
           
 void setStore(ContentStore store)
           
 void setTransformerRegistry(ContentTransformerRegistry transformerRegistry)
           
 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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContentServiceImpl

public ContentServiceImpl()
Method Detail

setRetryingTransactionHelper

public void setRetryingTransactionHelper(RetryingTransactionHelper helper)

setDictionaryService

public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)

setNodeService

public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)

setMimetypeService

public void setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)

setTransformerRegistry

public void setTransformerRegistry(ContentTransformerRegistry transformerRegistry)

setEagerContentStoreCleaner

public void setEagerContentStoreCleaner(EagerContentStoreCleaner eagerContentStoreCleaner)

setStore

public void setStore(ContentStore store)

setPolicyComponent

public void setPolicyComponent(PolicyComponent policyComponent)

setAvmService

public void setAvmService(AVMService service)

setImageMagickContentTransformer

public void setImageMagickContentTransformer(ContentTransformer imageMagickContentTransformer)

setIgnoreEmptyContent

public void setIgnoreEmptyContent(boolean ignoreEmptyContent)

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
                           throws org.springframework.beans.BeansException
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware
Throws:
org.springframework.beans.BeansException

init

public void init()
Service initialise


onUpdateProperties

public void onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                               java.util.Map before,
                               java.util.Map after)
Update properties policy behaviour

Parameters:
nodeRef - the node reference
before - the before values of the properties
after - the after values of the properties

getStoreFreeSpace

public long getStoreFreeSpace()
Description copied from interface: ContentService
Gets the remaing available space in the underlying content store.

Specified by:
getStoreFreeSpace in interface ContentService
Returns:
Returns the total, possibly approximate, remaining space (in bytes) available to store content or -1 if no size data is available.

getStoreTotalSpace

public long getStoreTotalSpace()
Description copied from interface: ContentService
Gets the total space of the underlying content store (not exclusively Alfresco-controlled binaries).

Specified by:
getStoreTotalSpace in interface ContentService
Returns:
Returns the total, possibly approximate, size (in bytes) of of the store or -1 if no size data is available.

getRawReader

public org.alfresco.service.cmr.repository.ContentReader getRawReader(java.lang.String contentUrl)
Fetch content from the low-level stores using a content URL. None of the metadata associated with the content will be populated. This method should be used only to stream the binary data out when no other metadata is required.

null is never returned, but the reader should always be checked for existence.

Specified by:
getRawReader in interface ContentService
Parameters:
contentUrl - a content store URL
Returns:
Returns a reader for the URL that needs to be checked.

getReader

public org.alfresco.service.cmr.repository.ContentReader getReader(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                   org.alfresco.service.namespace.QName propertyQName)
Description copied from interface: ContentService
Gets a reader for the content associated with the given node property.

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.

Specified by:
getReader in interface ContentService
Parameters:
nodeRef - a reference to a node having a content property
propertyQName - the name of the property, which must be of type content
Returns:
Returns a reader for the content associated with the node property, or null if no content has been written for the property
See Also:
FileContentReader.getSafeContentReader(ContentReader, String, Object[])

getWriter

public org.alfresco.service.cmr.repository.ContentWriter getWriter(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                   org.alfresco.service.namespace.QName propertyQName,
                                                                   boolean update)
Description copied from interface: ContentService
Get a content writer for the given node property, choosing to optionally have the node property updated automatically when the content stream closes.

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.

Specified by:
getWriter in interface ContentService
Parameters:
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 content
update - 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.
Returns:
Returns a writer for the content associated with the node property

getTempWriter

public org.alfresco.service.cmr.repository.ContentWriter getTempWriter()
Description copied from interface: ContentService
Gets a writer to a temporary location. The longevity of the stored temporary content is determined by the system.

Specified by:
getTempWriter in interface ContentService
Returns:
Returns a writer to an anonymous location

transform

public void transform(org.alfresco.service.cmr.repository.ContentReader reader,
                      org.alfresco.service.cmr.repository.ContentWriter writer)
Description copied from interface: ContentService
Transforms the content from the reader and writes the content back out to the writer.

The mimetypes used for the transformation must be set both on the reader and on the writer.

Specified by:
transform in interface ContentService
Parameters:
reader - the source content location and mimetype
writer - the target content location and mimetype
See Also:
ContentTransformerRegistry, ContentTransformer, ContentService.transform(org.alfresco.service.cmr.repository.ContentReader, org.alfresco.service.cmr.repository.ContentWriter)

transform

public 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
Deprecated. 

Specified by:
transform in interface ContentService
Parameters:
reader - the source content location and mimetype
writer - the target content location and mimetype
options - the options for the transformation
Throws:
NoTransformerException - if no transformer exists for the given source and target mimetypes of the reader and writer
ContentIOException - if the transformation fails
See Also:
ContentTransformerRegistry, ContentTransformer

transform

public 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
Specified by:
transform in interface ContentService
Parameters:
reader - the source content location and mimetype
writer - the target content location and mimetype
options - the options for the transformation
Throws:
NoTransformerException - if no transformer exists for the given source and target mimetypes of the reader and writer
ContentIOException - if the transformation fails
See Also:
ContentTransformerRegistry, ContentTransformer

getTransformer

public ContentTransformer getTransformer(java.lang.String sourceMimetype,
                                         java.lang.String targetMimetype)
Description copied from interface: ContentService
Fetch the transformer that is capable of transforming the content in the given source mimetype to the given target mimetype.

Since no transformation options are provided only the source and destination mimetypes are considered when getting the correct transformer.

Specified by:
getTransformer in interface ContentService
Returns:
Returns a transformer that can be used, or null if one was not available
See Also:
ContentTransformerRegistry, ContentTransformer

getTransformer

public ContentTransformer getTransformer(java.lang.String sourceMimetype,
                                         java.lang.String targetMimetype,
                                         TransformationOptions options)
Description copied from interface: ContentService
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.

The transformation options provide a finer grain way of discovering the correct transformer, since the values and type of the options provided are considered by the transformer when deciding whether it can satisfy the transformation request.

Specified by:
getTransformer in interface ContentService
Parameters:
sourceMimetype - the source mimetype
targetMimetype - the target mimetype
options - the transformation options
Returns:
ContentTransformer a transformer that can be used, or null if one was not available
See Also:
ContentService.getTransformer(java.lang.String, java.lang.String, org.alfresco.service.cmr.repository.TransformationOptions)

getActiveTransformers

public java.util.List getActiveTransformers(java.lang.String sourceMimetype,
                                            java.lang.String targetMimetype,
                                            TransformationOptions options)
Description copied from interface: ContentService
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.

The transformation options provide a finer grain way of discovering the correct transformer, since the values and type of the options provided are considered by the transformer when deciding whether it can satisfy the transformation request.

The list will contain all currently active, applicable transformers sorted in repository preference order. The contents of this list may change depending on such factors as the availability of particular transformers as well as their current behaviour. For these reasons, this list should not be cached.

Specified by:
getActiveTransformers in interface ContentService
Parameters:
sourceMimetype - the source mimetype
targetMimetype - the target mimetype
options - the transformation options
Returns:
ContentTransformers a List of the transformers that can be used, or the empty list if none were available
See Also:
ContentAccessor.getMimetype()

getImageTransformer

public ContentTransformer getImageTransformer()
Description copied from interface: ContentService
Fetch the transformer that is capable of transforming image content.

Specified by:
getImageTransformer in interface ContentService
Returns:
Returns a transformer that can be used, or null if one was not available
See Also:
ContentService.getImageTransformer()

isTransformable

public boolean isTransformable(org.alfresco.service.cmr.repository.ContentReader reader,
                               org.alfresco.service.cmr.repository.ContentWriter writer)
Description copied from interface: ContentService
Returns whether a transformer exists that can read the content from the reader and write the content back out to the 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.

Specified by:
isTransformable in interface ContentService
Parameters:
reader - the source content location and mimetype
writer - the target content location and mimetype
Returns:
true if a transformer exists, false otherwise
See Also:
ContentTransformerRegistry, ContentTransformer

isTransformable

public boolean isTransformable(org.alfresco.service.cmr.repository.ContentReader reader,
                               org.alfresco.service.cmr.repository.ContentWriter writer,
                               TransformationOptions options)
Description copied from interface: ContentService
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.

The mimetypes used for the transformation must be set both on the reader and on the writer.

Specified by:
isTransformable in interface ContentService
Parameters:
reader - the source content location and mimetype
writer - the target content location and mimetype
options - the transformation options
Returns:
boolean true if a transformer exists, false otherwise
See Also:
ContentService.isTransformable(org.alfresco.service.cmr.repository.ContentReader, org.alfresco.service.cmr.repository.ContentWriter, org.alfresco.service.cmr.repository.TransformationOptions)


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.