org.alfresco.repo.content.transform
Class RuntimeExecutableContentTransformerWorker

java.lang.Object
  extended by org.alfresco.repo.content.transform.ContentTransformerHelper
      extended by org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker
All Implemented Interfaces:
ContentTransformerWorker, org.springframework.beans.factory.InitializingBean

public class RuntimeExecutableContentTransformerWorker
extends ContentTransformerHelper
implements ContentTransformerWorker, org.springframework.beans.factory.InitializingBean

This configurable wrapper is able to execute any command line transformation that accepts an input and an output file on the command line.

The following parameters are use:

Provided that the command executed ultimately transforms the source file and leaves the result in the target file, the transformation should be successful.

NOTE: It is only the contents of the files that can be transformed. Any attempt to modify the source or target file metadata will, at best, have no effect, but may ultimately lead to the transformation failing. This is because the files provided are both temporary files that reside in a location outside the system's content store.

This transformer requires the setting of the explicitTransformations property.

Since:
1.1
See Also:
RuntimeExec

Field Summary
static java.lang.String VAR_SOURCE
           
static java.lang.String VAR_TARGET
           
 
Constructor Summary
RuntimeExecutableContentTransformerWorker()
           
 
Method Summary
 void afterPropertiesSet()
          Executes the check command, if present.
 java.lang.String getVersionString()
          Gets the version string captured from the check command.
 boolean isAvailable()
          Signals whether this transformer is available.
 boolean isTransformable(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
          If the initialization failed, then it returns 0.0.
 void setCheckCommand(org.alfresco.util.exec.RuntimeExec checkCommand)
          Set the runtime executer that will be called as part of the initialisation to determine if the transformer is able to function.
 void setErrorCodes(java.lang.String errCodesStr)
          A comma or space separated list of values that, if returned by the executed command, indicate an error value.
 void setTransformCommand(org.alfresco.util.exec.RuntimeExec transformCommand)
          Set the runtime executer that will called to perform the actual transformation.
 java.lang.String toString()
           
 void transform(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, TransformationOptions options)
          Converts the source and target content to temporary files with the correct extensions for the mimetype that they map to.
 
Methods inherited from class org.alfresco.repo.content.transform.ContentTransformerHelper
getMimetype, getMimetypeService, isExplicitTransformation, setExplicitTransformations, setMimetypeService
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

VAR_SOURCE

public static final java.lang.String VAR_SOURCE
See Also:
Constant Field Values

VAR_TARGET

public static final java.lang.String VAR_TARGET
See Also:
Constant Field Values
Constructor Detail

RuntimeExecutableContentTransformerWorker

public RuntimeExecutableContentTransformerWorker()
Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

setCheckCommand

public void setCheckCommand(org.alfresco.util.exec.RuntimeExec checkCommand)
Set the runtime executer that will be called as part of the initialisation to determine if the transformer is able to function. This is optional, but allows the transformer registry to detect and avoid using this instance if it is not working.

The command will be considered to have failed if the

Parameters:
checkCommand - the initialisation check command

setTransformCommand

public void setTransformCommand(org.alfresco.util.exec.RuntimeExec transformCommand)
Set the runtime executer that will called to perform the actual transformation.

Parameters:
transformCommand - the runtime transform command

setErrorCodes

public void setErrorCodes(java.lang.String errCodesStr)
A comma or space separated list of values that, if returned by the executed command, indicate an error value. This defaults to "1, 2".

Parameters:
erroCodesStr -

afterPropertiesSet

public void afterPropertiesSet()
Executes the check command, if present. Any errors will result in this component being rendered unusable within the transformer registry, but may still be called directly.

Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

isTransformable

public boolean isTransformable(java.lang.String sourceMimetype,
                               java.lang.String targetMimetype,
                               TransformationOptions options)
If the initialization failed, then it returns 0.0. Otherwise the explicit transformations are checked for the reliability.

Specified by:
isTransformable in interface ContentTransformerWorker
Returns:
Returns 1.0 if initialization succeeded, otherwise 0.0.
See Also:
AbstractContentTransformer.setExplicitTransformations(List)

isAvailable

public boolean isAvailable()
Signals whether this transformer is available.

Specified by:
isAvailable in interface ContentTransformerWorker
Returns:
true, if is available

getVersionString

public java.lang.String getVersionString()
Gets the version string captured from the check command.

Specified by:
getVersionString in interface ContentTransformerWorker
Returns:
the version string

transform

public final void transform(org.alfresco.service.cmr.repository.ContentReader reader,
                            org.alfresco.service.cmr.repository.ContentWriter writer,
                            TransformationOptions options)
                     throws java.lang.Exception
Converts the source and target content to temporary files with the correct extensions for the mimetype that they map to.

Specified by:
transform in interface ContentTransformerWorker
Throws:
java.lang.Exception
See Also:
#transformInternal(File, File)


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