Class AbstractContentTransformer

  • All Implemented Interfaces:
    ContentWorker, ContentTransformer, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware

    @Deprecated
    public abstract class AbstractContentTransformer
    extends Object
    implements ContentTransformer, org.springframework.beans.factory.BeanNameAware
    Deprecated.
    Deprecated since 3.0. The abstract base class org.alfresco.repo.content.transform.AbstractContentTransformer2 should now be used instead.
    Provides basic services for ContentTransformer implementations.

    This class maintains the performance measures for the transformers as well, making sure that there is an extra penalty for transformers that fail regularly.

    Author:
    Derek Hulley
    • Constructor Detail

      • AbstractContentTransformer

        protected AbstractContentTransformer()
        Deprecated.
        All transformers start with an average transformation time of 0.0ms.
    • Method Detail

      • setRegistry

        public void setRegistry​(ContentTransformerRegistry registry)
        Deprecated.
        The registry to auto-register with
        Parameters:
        registry - the transformer registry
      • setMimetypeService

        public void setMimetypeService​(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
        Deprecated.
        Helper setter of the mimetype service. This is not always required.
        Parameters:
        mimetypeService - MimetypeService
      • getMimetypeService

        protected org.alfresco.service.cmr.repository.MimetypeService getMimetypeService()
        Deprecated.
        Returns:
        Returns the mimetype helper
      • setExplicitTransformations

        public void setExplicitTransformations​(List<ContentTransformerRegistry.TransformationKey> explicitTransformations)
        Deprecated.
        Set the transformations that this transformer can do regardless of what it returns via the reliability check.
        Parameters:
        explicitTransformations - explicit key mappings
      • register

        public void register()
        Deprecated.
        Registers this instance with the registry if it is present.
      • getMimetype

        protected String getMimetype​(org.alfresco.service.cmr.repository.ContentAccessor content)
        Deprecated.
        Convenience to fetch and check the mimetype for the given content
        Parameters:
        content - the reader/writer for the content
        Returns:
        Returns the mimetype for the content
        Throws:
        org.alfresco.error.AlfrescoRuntimeException - if the content doesn't have a mimetype
      • getReliability

        protected abstract double getReliability​(String sourceMimetype,
                                                 String targetMimetype)
        Deprecated.
        Added for backward compatibility of existing content transformers
        Parameters:
        sourceMimetype - the source mimetype
        targetMimetype - the target mimetype
        Returns:
        double the reliability value of the content transformer ranging from 0 to 1
      • checkReliability

        protected void checkReliability​(org.alfresco.service.cmr.repository.ContentReader reader,
                                        org.alfresco.service.cmr.repository.ContentWriter writer)
        Deprecated.
        Convenience method to check the reliability of a transformation
        Parameters:
        reader - ContentReader
        writer - ContentWriter
        Throws:
        org.alfresco.error.AlfrescoRuntimeException - if the reliability isn't > 0
      • isTransformable

        public boolean isTransformable​(String sourceMimetype,
                                       long sourceSize,
                                       String targetMimetype,
                                       TransformationOptions options)
        Deprecated.
        Indicates whether the provided source mimetype can be transformed into the target mimetype with the options specified by this content transformer.

        Implementation calls the deprecated overloaded method without the sourceSize parameter. Note: source size checked has not been added to this deprecated class.

        Specified by:
        isTransformable in interface ContentTransformer
        Parameters:
        sourceMimetype - the source mimetype
        sourceSize - the size (bytes) of the source. If negative it is unknown.
        targetMimetype - the target mimetype
        options - the transformation options
        Returns:
        boolean true if this content transformer can satify the mimetypes and options specified, false otherwise
      • isTransformableSize

        public boolean isTransformableSize​(String sourceMimetype,
                                           long sourceSize,
                                           String targetMimetype,
                                           TransformationOptions options)
        Deprecated.
        Always returns true to indicate size is not an issue.
        Specified by:
        isTransformableSize in interface ContentTransformer
        Parameters:
        sourceMimetype - the source mimetype
        sourceSize - the size (bytes) of the source. If negative it is unknown.
        targetMimetype - the target mimetype
        options - the transformation options
        Returns:
        boolean true if this content transformer can satify the mimetypes, false otherwise
      • getMaxSourceSizeKBytes

        public long getMaxSourceSizeKBytes​(String sourceMimetype,
                                           String targetMimetype,
                                           TransformationOptions options)
        Deprecated.
        Always returns -1 to indicate an unlimited size.
        Specified by:
        getMaxSourceSizeKBytes in interface ContentTransformer
        Returns:
        0 if the the transformation is disabled, -1 if there is no limit, otherwise the size in KBytes.
      • transformInternal

        protected abstract void transformInternal​(org.alfresco.service.cmr.repository.ContentReader reader,
                                                  org.alfresco.service.cmr.repository.ContentWriter writer,
                                                  Map<String,​Object> options)
                                           throws Exception
        Deprecated.
        Method to be implemented by subclasses wishing to make use of the common infrastructural code provided by this class.
        Parameters:
        reader - the source of the content to transform
        writer - the target to which to write the transformed content
        options - a map of options to use when performing the transformation. The map will never be null.
        Throws:
        Exception - exceptions will be handled by this class - subclasses can throw anything
      • transform

        public final void transform​(org.alfresco.service.cmr.repository.ContentReader reader,
                                    org.alfresco.service.cmr.repository.ContentWriter writer,
                                    Map<String,​Object> options)
                             throws org.alfresco.service.cmr.repository.ContentIOException
        Deprecated.
        Performs the following: Subclass need only be concerned with performing the transformation.

        If the options provided are null, then an empty map will be created.

        Specified by:
        transform in interface ContentTransformer
        Parameters:
        reader - the source of the content
        writer - the destination of the transformed content
        options - options to pass to the transformer. These are transformer dependent and may be null.
        Throws:
        org.alfresco.service.cmr.repository.ContentIOException - if an IO exception occurs
      • getTransformationTime

        public long getTransformationTime()
        Deprecated.
        Specified by:
        getTransformationTime in interface ContentTransformer
        Returns:
        Returns the calculated running average of the current transformations
      • getTransformationTime

        public long getTransformationTime​(String sourceMimetype,
                                          String targetMimetype)
        Deprecated.
        Description copied from interface: ContentTransformer
        Provides an estimate, usually a worst case guess, of how long a transformation will take. Null mimetype values provide the overall value for the transformer.

        This method is used to determine, up front, which of a set of equally reliant transformers will be used for a specific transformation.

        Specified by:
        getTransformationTime in interface ContentTransformer
        Parameters:
        sourceMimetype - the source mimetype
        targetMimetype - the target mimetype
        Returns:
        Returns the approximate number of milliseconds per transformation
      • recordTime

        protected final void recordTime​(long transformationTime)
        Deprecated.
        Records and updates the average transformation time for this transformer.

        Subclasses should call this after every transformation in order to keep the running average of the transformation times up to date.

        This method is thread-safe. The time spent in this method is negligible so the impact will be minor.

        Parameters:
        transformationTime - the time it took to perform the transformation. The value may be 0.
      • setBeanName

        public void setBeanName​(String beanName)
        Deprecated.
        Sets the Spring bean name.
        Specified by:
        setBeanName in interface org.springframework.beans.factory.BeanNameAware
      • getBeanName

        public String getBeanName()
        Deprecated.
        Returns the Spring bean name.
      • getName

        public String getName()
        Deprecated.
        Returns transformer name. Uses the Spring bean name, but if null uses the class name.
        Specified by:
        getName in interface ContentTransformer
      • hashCode

        public int hashCode()
        Deprecated.
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object obj)
        Deprecated.
        Overrides:
        equals in class Object