diff --git a/source/java/org/alfresco/repo/content/transform/OOoContentTransformerHelper.java b/source/java/org/alfresco/repo/content/transform/OOoContentTransformerHelper.java
new file mode 100644
index 0000000000..875620046a
--- /dev/null
+++ b/source/java/org/alfresco/repo/content/transform/OOoContentTransformerHelper.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2005-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.content.transform;
+
+import org.alfresco.repo.content.MimetypeMap;
+
+/**
+ * A class providing basic OOo-related functionality shared by both
+ * {@link ContentTransformer}s and {@link ContentTransformerWorker}s.
+ */
+public class OOoContentTransformerHelper extends ContentTransformerHelper
+{
+ /**
+ * There are some conversions that fail, despite the converter believing them possible.
+ * This method can be used by subclasses to check if a targetMimetype or source/target
+ * Mimetype pair are blocked.
+ *
+ * @param sourceMimetype
+ * @param targetMimetype
+ * @return true
if the mimetypes are blocked, else false
+ */
+ protected boolean isTransformationBlocked(String sourceMimetype, String targetMimetype)
+ {
+ if (targetMimetype.equals(MimetypeMap.MIMETYPE_XHTML))
+ {
+ return false;
+ }
+ else if (targetMimetype.equals(MimetypeMap.MIMETYPE_WORDPERFECT))
+ {
+ return false;
+ }
+ else if (targetMimetype.equals(MimetypeMap.MIMETYPE_FLASH))
+ {
+ return false;
+ }
+ // OpenOffice 3.2.x doesn't seem to support all Office 97 to Office 07 conversions
+ else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_WORD) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING))
+ {
+ return false;
+ }
+ else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_EXCEL) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_SPREADSHEET))
+ {
+ return false;
+ }
+ else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_HTML) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING))
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformerWorker.java b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformerWorker.java
index ed27034f09..c9ae31db64 100644
--- a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformerWorker.java
+++ b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformerWorker.java
@@ -32,7 +32,6 @@ import net.sf.jooreports.openoffice.converter.AbstractOpenOfficeDocumentConverte
import net.sf.jooreports.openoffice.converter.OpenOfficeDocumentConverter;
import org.alfresco.error.AlfrescoRuntimeException;
-import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
@@ -49,7 +48,7 @@ import org.springframework.core.io.DefaultResourceLoader;
*
* @author Derek Hulley
*/
-public class OpenOfficeContentTransformerWorker extends ContentTransformerHelper implements ContentTransformerWorker, InitializingBean
+public class OpenOfficeContentTransformerWorker extends OOoContentTransformerHelper implements ContentTransformerWorker, InitializingBean
{
private OpenOfficeConnection connection;
private AbstractOpenOfficeDocumentConverter converter;
@@ -137,33 +136,11 @@ public class OpenOfficeContentTransformerWorker extends ContentTransformerHelper
return false;
}
- // there are some conversions that fail, despite the converter believing them possible
- if (targetMimetype.equals(MimetypeMap.MIMETYPE_XHTML))
+ if (isTransformationBlocked(sourceMimetype, targetMimetype))
{
return false;
}
- else if (targetMimetype.equals(MimetypeMap.MIMETYPE_WORDPERFECT))
- {
- return false;
- }
- else if (targetMimetype.equals(MimetypeMap.MIMETYPE_FLASH))
- {
- return false;
- }
- // OpenOffice 3.2.x doesn't seem to support all Office 97 to Office 07 conversions
- else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_WORD) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING))
- {
- return false;
- }
- else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_EXCEL) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_SPREADSHEET))
- {
- return false;
- }
- else if (sourceMimetype.equals(MimetypeMap.MIMETYPE_HTML) && targetMimetype.equals(MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING))
- {
- return false;
- }
-
+
MimetypeService mimetypeService = getMimetypeService();
String sourceExtension = mimetypeService.getExtension(sourceMimetype);
String targetExtension = mimetypeService.getExtension(targetMimetype);