Had fight with maven. It decided to block HTTP repositories.
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / layouts / Layout.java
1 /*
2  * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5
6
7 package eu.svjatoslav.meviz.htmlindexer.layouts;
8
9 import eu.svjatoslav.meviz.htmlindexer.IndexingContext;
10 import eu.svjatoslav.meviz.htmlindexer.indexer.AbstractIndexer;
11 import eu.svjatoslav.meviz.htmlindexer.metadata.DirectoryMetadata;
12 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.AbstractFile;
13 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture;
14 import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Video;
15
16 import java.util.List;
17
18 /**
19  * In order to have possibility of several different layouts per directory.
20  * Universal interface is defined.
21  * <p>
22  * Layout implementation is responsible for actual HTML generation.
23  */
24
25 public interface Layout {
26
27     /**
28      * Enlist directory.
29      */
30     void enlistDirectory(AbstractFile directory,
31                          DirectoryMetadata parentDirectoryMetadata);
32
33     /**
34      * Enlist simple file.
35      */
36     void enlistFile(AbstractFile file,
37                     DirectoryMetadata parentDirectoryMetadata);
38
39     /**
40      * Enlist image file.
41      */
42     void enlistImage(Picture picture,
43                      DirectoryMetadata parentDirectoryMetadata);
44
45     /**
46      * Enlist video file.
47      */
48     void enlistVideo(Video file);
49
50     /**
51      * Return layout specific suffix that will be appended between
52      * index(suffix).html of generated file. This way multiple layouts can
53      * coexist in the same directory, each residing in its own HTML file.
54      */
55     String getFileNameSuffix();
56
57     /**
58      * After necessary files have been enlisted for particular directory, use
59      * this method to retrieve generated HTML result.
60      */
61     String getHtml(final boolean showTitle,
62                    final boolean doHtmlHeaderAndFooter, DirectoryMetadata metadata)
63     ;
64
65     /**
66      * Initialize layout for particular directory.
67      */
68     void init(String galleryTitle, List<String> path,
69               final AbstractIndexer indexer, IndexingContext context);
70
71 }