Code refactoring
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / indexer / FilesystemIndexRemover.java
1 package eu.svjatoslav.meviz.htmlindexer.indexer;
2
3 import eu.svjatoslav.commons.file.IOHelper;
4 import eu.svjatoslav.meviz.htmlindexer.CommandlineHandler;
5 import eu.svjatoslav.meviz.htmlindexer.layouts.Layout;
6 import eu.svjatoslav.meviz.htmlindexer.Utils;
7
8 import java.io.File;
9 import java.io.IOException;
10
11 public class FilesystemIndexRemover {
12
13     private final CommandlineHandler commandlineHandler;
14
15     public FilesystemIndexRemover(final CommandlineHandler commandlineHandler)
16             throws IOException {
17         this.commandlineHandler = commandlineHandler;
18
19         removeIndex(commandlineHandler.getWorkingDirectory());
20     }
21
22     private void removeIndex(final File workingDirectory) throws IOException {
23
24         // remove thumbnails directory from current directory
25         final File thumbnailsDirectory = Utils
26                 .getThumbnailsDirectory(workingDirectory);
27         if (thumbnailsDirectory.exists()) {
28             System.out.println("Deleting thumbnails directory: "
29                     + thumbnailsDirectory);
30             IOHelper.deleteRecursively(thumbnailsDirectory);
31         }
32
33         // recursively remove thumbnail directories from sub directories
34         for (final File subFile : workingDirectory.listFiles())
35             if (subFile.isDirectory())
36                 removeIndex(subFile);
37
38         for (final Layout layout : Utils.getLayouts()) {
39             final File indexFile = Utils.getLayoutIndexFile(layout,
40                     workingDirectory);
41
42             if (indexFile.exists())
43                 if (Utils.isMevizGeneratedIndexFile(indexFile)) {
44                     System.out.println("Deleting generated index file: "
45                             + indexFile);
46                     indexFile.delete();
47                 }
48         }
49
50     }
51
52 }