annotate servlet/src/digilib/io/Directory.java @ 295:90bab835fc25

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