1 package eu.svjatoslav.meviz.htmlindexer;
4 import java.io.UnsupportedEncodingException;
6 import eu.svjatoslav.meviz.htmlindexer.metadata.Dimension;
7 import eu.svjatoslav.meviz.htmlindexer.metadata.DirectoryMetadata;
8 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.AbstractFile;
9 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.DirectoryFile;
10 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.GeneralFile;
11 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture;
13 public abstract class AbstractIndexer {
15 public void compileHtml(final Layout layout,
16 final DirectoryMetadata directory)
17 throws UnsupportedEncodingException {
19 for (final AbstractFile file : directory.getFiles())
20 if (file instanceof GeneralFile) {
21 final String fileExtension = file.getFileExtension();
23 if ("ogv".equals(fileExtension))
24 layout.enlistOgv(file);
26 layout.enlistFile(file);
28 } else if (file instanceof Picture)
29 layout.enlistImage(file);
30 else if (file instanceof DirectoryFile)
31 layout.enlistDirectory(file);
35 public abstract String getDirectoryUrl(final AbstractFile directory,
36 IndexingContext context);
38 public abstract String getParentDirectoryUrl(IndexingContext context);
40 public abstract String getThumbnailUrl(Picture picture,
41 final Dimension desiredDimension, IndexingContext context);
43 public static boolean isImage(final String fileExtension) {
44 for (final String ext : Constants.SUPPORTED_IMAGE_EXTENSIONS)
45 if (ext.equals(fileExtension))
50 public static boolean isOgv(final String fileExtension) {
51 return fileExtension.equalsIgnoreCase("ogv");
54 public static boolean shallFileBeIndexed(final File file) {
56 if (file.getName().startsWith("."))
58 if (file.getName().startsWith("index"))
59 if (file.getName().endsWith(".html"))