annotate servlet/src/digilib/io/Directory.java @ 601:87d28c19d5e7 gen2

close old gen2 branch
author robcast
date Tue, 11 Jan 2011 21:32:22 +0100
parents 5d0c0da080ec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
290
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
1 /* Directory -- Filesystem directory object
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
2
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
3 Digital Image Library servlet components
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
4
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
5 Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de)
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
6
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
7 This program is free software; you can redistribute it and/or modify it
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
9 Free Software Foundation; either version 2 of the License, or (at your
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
10 option) any later version.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
11
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
12 Please read license.txt for the full details. A copy of the GPL
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
13 may be found at http://www.gnu.org/copyleft/lgpl.html
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
14
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
16 along with this program; if not, write to the Free Software
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
18
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
19 * Created on 26.08.2003
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
20 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
21 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
22 package digilib.io;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
23
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
24 import java.io.File;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
25 import java.util.Arrays;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
26
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
27 import org.apache.log4j.Logger;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
28
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
29 /** Class for filesystem directories
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
30 * @author casties
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
31 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
32 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
33 public class Directory {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
34
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
35 protected Logger logger = Logger.getLogger(this.getClass());
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
36
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
37 /** File object pointing to the directory */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
38 protected File dir = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
39 /** parent directory */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
40 protected Directory parent = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
41 /** list of filenames in the directory */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
42 protected String[] list = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
43
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
44 /** Default constructor.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
45 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
46 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
47 public Directory() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
48 super();
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
49 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
50
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
51 /** Constructor taking a File object.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
52 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
53 * @param d
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
54 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
55 public Directory(File d) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
56 dir = d;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
57 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
58
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
59 /** Constructor taking a File object and a parent.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
60 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
61 * @param dir
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
62 * @param parent
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
63 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
64 public Directory(File dir, Directory parent) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
65 this.dir = dir;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
66 this.parent = parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
67 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
68
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
69 /** Constructor taking a directory name.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
70 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
71 * @param d
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
72 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
73 public Directory(String dn) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
74 dir = new File(dn);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
75 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
76
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
77
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
78 /** Reads the names of the files in the directory.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
79 * Fills the filenames array. Returns if the operation was successful.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
80 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
81 * @return
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
82 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
83 public boolean readDir() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
84 if (dir != null) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
85 //logger.debug("reading dir: "+dir.getPath());
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
86 list = dir.list();
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
87 Arrays.sort(list);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
88 //logger.debug(" done");
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
89 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
90 return (list != null);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
91 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
92
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
93 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
94 * @return
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
95 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
96 public File getDir() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
97 return dir;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
98 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
99
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
100 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
101 * @param dir
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
102 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
103 public void setDir(File dir) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
104 this.dir = dir;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
105 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
106
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
107 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
108 * @return
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
109 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
110 Directory getParent() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
111 return parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
112 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
113
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
114 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
115 * @param parent
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
116 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
117 void setParent(Directory parent) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
118 this.parent = parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
119 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
120
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
121
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
122 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
123 * @return Returns the filenames.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
124 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
125 public String[] getFilenames() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
126 return list;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
127 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
128
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
129 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
130 * @param filenames The filenames to set.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
131 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
132 public void setFilenames(String[] filenames) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
133 this.list = filenames;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
134 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
135
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
136 public void clearFilenames() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
137 this.list = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
138 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
139 }