better error handling
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / FilesystemIndexer.java
index d9726dd..61b9027 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  * Meviz - Various tools collection to work with multimedia.
  * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of version 2 of the GNU General Public License
  * as published by the Free Software Foundation.
@@ -42,8 +42,6 @@ public class FilesystemIndexer extends AbstractIndexer {
 
        private final File directoryToIndex;
 
-       private String thumbnailsPath;
-
        private File metadataFile;
 
        private DirectoryMetadata metadata;
@@ -56,8 +54,7 @@ public class FilesystemIndexer extends AbstractIndexer {
 
        public FilesystemIndexer(final File directoryToIndex,
                        final CommandlineHandler commandlineHandler,
-                       final List<String> pathElements) throws IOException,
-                       ImageFormatError {
+                       final List<String> pathElements) throws Exception {
 
                this.directoryToIndex = directoryToIndex;
                this.commandlineHandler = commandlineHandler;
@@ -96,14 +93,6 @@ public class FilesystemIndexer extends AbstractIndexer {
                return Utils.isMevizGeneratedIndexFile(indexFile);
        }
 
-       public void cleanupUnusedMetadataFiles() {
-               final File thumbnailsDirectory = new File(thumbnailsPath);
-
-               for (final File file : thumbnailsDirectory.listFiles())
-                       if (!validMetadataFiles.contains(file.getName()))
-                               file.delete();
-       }
-
        public void generateHtmlFromMetadata(final HashSet<Layout> layouts) {
                // Generate HTML from metadata
                for (final Layout layout : layouts)
@@ -156,7 +145,9 @@ public class FilesystemIndexer extends AbstractIndexer {
                                .getRelativeThumbnailFileName(desiredDimension);
 
                validMetadataFiles.add(thumbnailFileName);
-               final File thumbnailFile = new File(thumbnailsPath + thumbnailFileName);
+               final File thumbnailFile = new File(
+                               Utils.getThumbnailsDirectoryPath(directoryToIndex)
+                               + thumbnailFileName);
 
                if (!thumbnailFile.exists()) {
 
@@ -168,7 +159,7 @@ public class FilesystemIndexer extends AbstractIndexer {
                                        desiredDimension.getAwtDimension());
                }
                return Constants.THUMBNAILS_DIRECTORY_NAME + "/"
-                               + UrlParamEncoder.encode(thumbnailFileName);
+               + UrlParamEncoder.encode(thumbnailFileName);
        }
 
        public void indexForLayout(final Layout layout)
@@ -183,7 +174,7 @@ public class FilesystemIndexer extends AbstractIndexer {
                                        layout.enlistFile(abstractFile);
 
                        } else if (abstractFile instanceof Picture)
-                               layout.enlistImage(abstractFile);
+                               layout.enlistImage((Picture) abstractFile);
                        else if (abstractFile instanceof DirectoryFile)
                                layout.enlistDirectory(abstractFile);
 
@@ -209,26 +200,26 @@ public class FilesystemIndexer extends AbstractIndexer {
        }
 
        public void loadOrCreateMetadata() {
-               metadataFile = new File(thumbnailsPath + Constants.METADATA_FILE_NAME);
+
+               metadataFile = new File(
+                               Utils.getThumbnailsDirectoryPath(directoryToIndex)
+                               + Constants.METADATA_FILE_NAME);
 
                metadata = MetadadaHelper.initDirectoryMetadata(metadataFile);
        }
 
        private void removeUnusedThumbnailFiles() {
 
-               final File thumbnailsDirectory = new File(thumbnailsPath);
-
-               for (final File file : thumbnailsDirectory.listFiles())
+               for (final File file : Utils.getThumbnailsDirectory(directoryToIndex)
+                               .listFiles())
                        if (!validMetadataFiles.contains(file.getName()))
                                file.delete();
 
        }
 
-       public void updateMetadata() throws IOException, ImageFormatError {
-
-               final File[] directoryContent = directoryToIndex.listFiles();
+       public void updateMetadata() throws Exception {
 
-               for (final File file : directoryContent)
+               for (final File file : directoryToIndex.listFiles())
                        if (shallFileBeIndexed(file)) {
 
                                metadata.ensureFileMetainfoIsUpToDate(directoryToIndex, file);