Simplified and unified video display code.
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / AbstractIndexer.java
index 294189b..4e3b6eb 100644 (file)
@@ -1,8 +1,5 @@
 package eu.svjatoslav.meviz.htmlindexer;
 
-import java.io.File;
-import java.io.UnsupportedEncodingException;
-
 import eu.svjatoslav.meviz.htmlindexer.metadata.Dimension;
 import eu.svjatoslav.meviz.htmlindexer.metadata.DirectoryMetadata;
 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.AbstractFile;
@@ -10,58 +7,75 @@ import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.DirectoryFile;
 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.GeneralFile;
 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture;
 
-public abstract class AbstractIndexer {
-
-       public static boolean isImage(final String fileExtension) {
-               for (final String ext : Constants.SUPPORTED_IMAGE_EXTENSIONS)
-                       if (ext.equals(fileExtension))
-                               return true;
-               return false;
-       }
-
-       public static boolean isOgv(final String fileExtension) {
-               return fileExtension.equalsIgnoreCase("ogv");
-       }
-
-       public static boolean shallFileBeIndexed(final File file) {
-
-               if (file.getName().startsWith("."))
-                       return false;
-               if (file.getName().startsWith("index"))
-                       if (file.getName().endsWith(".html"))
-                               return false;
-
-               return true;
-       }
-
-       public void compileHtml(final Layout layout,
-                       final DirectoryMetadata directory)
-                       throws UnsupportedEncodingException {
-
-               for (final AbstractFile file : directory.getFiles())
-                       if (file instanceof GeneralFile) {
-                               final String fileExtension = file.getFileExtension();
-
-                               if ("ogv".equals(fileExtension))
-                                       layout.enlistOgv(file, directory);
-                               else if ("webm".equals(fileExtension))
-                                       layout.enlistWebm(file, directory);
-                               else
-                                       layout.enlistFile(file, directory);
-
-                       } else if (file instanceof Picture)
-                               layout.enlistImage((Picture) file, directory);
-                       else if (file instanceof DirectoryFile)
-                               layout.enlistDirectory(file, directory);
-
-       }
-
-       public abstract String getDirectoryUrl(final AbstractFile directory,
-                       IndexingContext context);
-
-       public abstract String getParentDirectoryUrl(IndexingContext context);
+import java.io.File;
+import java.io.UnsupportedEncodingException;
 
-       public abstract String getThumbnailUrl(Picture picture,
-                       final Dimension desiredDimension, IndexingContext context);
+public abstract class AbstractIndexer {
 
+    public static boolean isImage(final String fileExtension) {
+        for (final String ext : Constants.SUPPORTED_IMAGE_EXTENSIONS)
+            if (ext.equals(fileExtension))
+                return true;
+        return false;
+    }
+
+    public static boolean isOgv(final String fileExtension) {
+        return fileExtension.equalsIgnoreCase("ogv");
+    }
+
+    static boolean shallFileBeIndexed(final File file) {
+
+        if (file.getName().startsWith("."))
+            return false;
+        if (file.getName().startsWith("index"))
+            if (file.getName().endsWith(".html"))
+                return false;
+
+        return true;
+    }
+
+    void compileHtml(final Layout layout,
+                     final DirectoryMetadata directory)
+            throws UnsupportedEncodingException {
+
+        for (final AbstractFile file : directory.getFiles())
+            if (file instanceof GeneralFile) {
+                final String fileExtension = file.getFileExtension();
+
+                if (isVideo(fileExtension))
+                    layout.enlistVideo(file);
+                else
+                    layout.enlistFile(file, directory);
+
+            } else if (file instanceof Picture)
+                layout.enlistImage((Picture) file, directory);
+            else if (file instanceof DirectoryFile)
+                layout.enlistDirectory(file, directory);
+
+    }
+
+    public abstract String getDirectoryUrl(final AbstractFile directory,
+                                           IndexingContext context);
+
+    public abstract String getParentDirectoryUrl(IndexingContext context);
+
+    public abstract String getThumbnailUrl(Picture picture,
+                                           final Dimension desiredDimension, IndexingContext context);
+
+    public static String getVideoType(String fileExtension) {
+        switch (fileExtension){
+            case "ogv":
+                return "video/ogg";
+            case "webm":
+                return "video/webm";
+            case "mp4":
+                return "video/mp4";
+            default:
+                return null;
+        }
+    }
+
+    public boolean isVideo(String fileExtension){
+        return getVideoType(fileExtension) != null;
+    }
 }