View Javadoc

1   /*
2    * $Id: GHEntry.java 2993 2011-11-24 19:51:48Z andrewinkler $
3    * ============================================================================
4    * Project gluehloch-homepage-core
5    * Copyright (c) 2004-2007 by Andre Winkler. All rights reserved.
6    * ============================================================================
7    *          GNU LESSER GENERAL PUBLIC LICENSE
8    *  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
9    *
10   *  This library is free software; you can redistribute it and/or
11   *  modify it under the terms of the GNU Lesser General Public
12   *  License as published by the Free Software Foundation; either
13   *  version 2.1 of the License, or (at your option) any later version.
14   *
15   *  This library is distributed in the hope that it will be useful,
16   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18   *  Lesser General Public License for more details.
19   *
20   *  You should have received a copy of the GNU Lesser General Public
21   *  License along with this library; if not, write to the Free Software
22   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23   *
24   */
25  
26  package de.awtools.homegen.directory;
27  
28  import java.io.File;
29  import java.util.List;
30  
31  /**
32   * Gemeinsame Schnittstelle von {@link GHDirectory} und {@link GHFile}.
33   *
34   * @version $LastChangedRevision: 2993 $ $LastChangedDate: 2011-11-24 20:51:48 +0100 (Thu, 24 Nov 2011) $
35   * @author by Andre Winkler, $LastChangedBy: andrewinkler $
36   *
37   * @since 1.5
38   */
39  public interface GHEntry {
40  
41      /** Kennzeichnung/Name für das Wurzelverzeichnis. */
42      public final String ROOT_DIR = "/";
43  
44      /**
45       * Der Name des Verzeichnisses. Für das Root-Verzeichnis ist das
46       * {@link #ROOT_DIR}.
47       *
48       * @return Verzeichnisname.
49       */
50      public String getName();
51  
52      /**
53       * Liefert einen Pfad von der Wurzel bis in dieses Verzeichnis. Die
54       * einzelnen Verzeichnisse auf diesem Pfad sind '/' separiert.
55       *
56       * @return Eine '/' separierte Aufzählung von Verzeichnissen.
57       */
58      public String getPath();
59  
60      /**
61       * Liefert den {@link GHDirectory} Pfad von der Wurzel bis zu diesem
62       * Eintrag.
63       *
64       * @return Eine Liste mit dem {@link GHDirectory}-Pfad von der Wurzel bis
65       *     zu diesem Eintrag.
66       */
67      public List<GHDirectory> getDirectoryPath();
68  
69      /**
70       * Liefert das <code>File</code> Objekt für dieses Verzeichnis. Für das
71       * Maven-Homepage-Plugin ist dies i.d.R. das Verzeichnis
72       * <code>target/www-prep</code>.
73       *
74       * @return Das <code>File</code> Objekt zu diesem Verzeichnis.
75       */
76      public File getFile();
77  
78      /**
79       * Prüft, ob das übergebene {@link GHEntry} ein jüngeres Erstellungsdatum
80       * besitzt.
81       *
82       * @param file Mit diesem {@link GHEntry} findet der Vergleich statt.
83       * @return Liefert <code>true</code>, wenn das übergebene {@link GHEntry}
84       *     ein jüngeres Erstellungsdatum besitzt.
85       */
86      public boolean isNewer(GHEntry file);
87  
88      /**
89       * Liefert die Anzahl der <code>cd ..</code> Aufrufe bis man sich im
90       * Root-Verzeichnis der Webpräsenz befindet. Liefert diese Methode
91       * <code>0</code> zurück, ist dies das Root-SnippetDirectory der
92       * Anwendung.
93       *
94       * @return Anzahl der Stufen bis in das Root-Verzeichnis der Webpräsenz.
95       */
96      public int getLevelFromRoot();
97  
98      /**
99       * Liefert eine Skizze der Verzeichnisstruktur.
100      *
101      * @return Siehe Beschreibung.
102      */
103     public String printGraph();
104 
105 }