r824 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro
Author: mfortun Date: 2011-04-20 17:50:20 +0200 (Wed, 20 Apr 2011) New Revision: 824 Url: http://nuiton.org/repositories/revision/wikitty/824 Log: * change how determine mimetype for a file, add a class to do that Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java 2011-04-20 15:50:20 UTC (rev 824) @@ -0,0 +1,72 @@ +package org.nuiton.wikitty.publication.synchro; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Class used to determine mimetype for an extension, used to determine type of + * wikittypub (data or text) with the extension and the mime type + * + * + * @author mfortun + * + */ +public class MimeTypePubHelper { + + protected Map<String, String> mapExtensionMime; + protected List<String> mimePubText; + public static String DEFAULT_MIME_TYPE = "application/octet-stream"; + + public MimeTypePubHelper() { + this.mapExtensionMime = new HashMap<String, String>(); + this.mimePubText = new ArrayList<String>(); + + // TODO create a property file to store and handle mimetype for pub + // text + mimePubText.add("application/javascript"); + + mapExtensionMime.put("wp", "application/javascript"); + mapExtensionMime.put("jpg", "image/jpeg"); + mapExtensionMime.put("png", "image/png"); + } + + public Map<String, String> getMapExtensionMime() { + return mapExtensionMime; + } + + public void setMapExtensionMime(Map<String, String> mapExtensionMime) { + this.mapExtensionMime = mapExtensionMime; + } + + public List<String> getMimePubText() { + return mimePubText; + } + + public void setMimePubText(List<String> mimePubText) { + this.mimePubText = mimePubText; + } + + public String getMimeForExtension(String ext) { + String result = mapExtensionMime.get(ext); + + if (result == null) { + result = DEFAULT_MIME_TYPE; + } + + return result; + } + + public boolean isPubTextMime(String mimeType) { + return mimePubText.contains(mimeType); + } + + public void addMimeForPubText(String mime) { + mimePubText.add(mime); + } + + public void addExtensionMime(String extension, String mime) { + mapExtensionMime.put(extension, mime); + } +} Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-04-20 14:45:47 UTC (rev 823) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-04-20 15:50:20 UTC (rev 824) @@ -42,7 +42,6 @@ import java.util.Map.Entry; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.activation.MimetypesFileTypeMap; import org.apache.commons.collections.BidiMap; import org.apache.commons.collections.bidimap.DualHashBidiMap; import org.apache.commons.logging.Log; @@ -100,7 +99,7 @@ protected File homeFile; protected boolean recursion; protected String label; - protected List<String> pubTextMimeType; + static public String META_CURRENT_LABEL = "current.label"; @@ -126,6 +125,8 @@ static public String PROPERTY_DIRECTORY = ".wp"; + + protected MimeTypePubHelper mimeHelper; /** * Constructor with the working directory * @@ -140,11 +141,8 @@ */ try { - this.pubTextMimeType = new ArrayList<String>(); + this.mimeHelper = new MimeTypePubHelper(); - // TODO create a property file to store and handle mimetype for pub - // text - pubTextMimeType.add("application/javascript"); String url = app.getOption(WikittyPublication.WIKITTY_OPTION_URL); URI uri = new URI(url); @@ -332,7 +330,7 @@ File wikittyFile = null; if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) { name = WikittyPubDataHelper.getName(w); - String mime = WikittyPubDataHelper.getMimeType(w); + // String mime = WikittyPubDataHelper.getMimeType(w); byte[] content = WikittyPubDataHelper.getContent(w); extension = WikittyPubDataHelper.getFileExtension(w); @@ -347,7 +345,7 @@ } else if (w .hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { name = WikittyPubTextHelper.getName(w); - String mime = WikittyPubTextHelper.getMimeType(w); + //String mime = WikittyPubTextHelper.getMimeType(w); String content = WikittyPubTextHelper.getContent(w); extension = WikittyPubTextHelper.getFileExtension(w); @@ -1056,15 +1054,7 @@ } - /** - * return if the mime type is associate to a wikittypubtext - * - * @param mime - * @return - */ - public boolean isMimeWikittyPubText(String mime) { - return pubTextMimeType.contains(mime); - } + /** * Method that create a list of the properties directory @@ -1174,9 +1164,9 @@ String extension = FileUtil.extension(fileToTransform); String name = FileUtil.basename(completeName, "." + extension); - MimetypesFileTypeMap mapMime = new MimetypesFileTypeMap(); + // search for the mimetype - String mimeType = mapMime.getContentType(fileToTransform); + String mimeType = mimeHelper.getMimeForExtension(extension); // load properties File wikittyParentDir = new File(path); @@ -1188,7 +1178,7 @@ .getProperty(WikittyPublicationFileSystem.META_CURRENT_LABEL)); // create the correct wikittypubxxx - if (isMimeWikittyPubText(mimeType)) { + if (mimeHelper.isPubTextMime(mimeType)) { result.addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setName(result, name); WikittyPubTextHelper.setMimeType(result, mimeType); @@ -1217,11 +1207,7 @@ File propertyFile = new File(starts + File.separator + PROPERTY_DIRECTORY); - - // TODO mfortun-2011-04-18 have to work on labels - // actually starts + label have to be the same. - // first starts and label. - + if (!propertyFile.exists() || !propertyFile.isDirectory()) { propertyFile.mkdir();
participants (1)
-
mfortun@users.nuiton.org