159
|
1 /* DocuDirent.java -- Abstract directory entry in a DocuDirectory
|
|
2
|
|
3 Digital Image Library servlet components
|
|
4
|
|
5 Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de)
|
|
6
|
|
7 This program is free software; you can redistribute it and/or modify it
|
|
8 under the terms of the GNU General Public License as published by the
|
|
9 Free Software Foundation; either version 2 of the License, or (at your
|
|
10 option) any later version.
|
|
11
|
|
12 Please read license.txt for the full details. A copy of the GPL
|
|
13 may be found at http://www.gnu.org/copyleft/lgpl.html
|
|
14
|
|
15 You should have received a copy of the GNU General Public License
|
|
16 along with this program; if not, write to the Free Software
|
|
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
18
|
|
19 * Created on 15.09.2003 by casties
|
|
20 *
|
|
21 */
|
|
22 package digilib.io;
|
|
23
|
|
24 import java.io.File;
|
|
25 import java.util.HashMap;
|
|
26
|
|
27 /** Abstract directory entry in a DocuDirectory.
|
|
28 *
|
|
29 * @author casties
|
|
30 *
|
|
31 */
|
|
32 public abstract class DocuDirent {
|
|
33
|
|
34 /** the file class of this file */
|
|
35 protected static int fileClass = FileOps.CLASS_NONE;
|
|
36 /** HashMap with metadata */
|
|
37 protected HashMap fileMeta = null;
|
|
38 /** Is the Metadata valid */
|
|
39 protected boolean metaChecked = false;
|
|
40 /** the parent directory */
|
|
41 protected Directory parent = null;
|
|
42
|
|
43 /** Checks metadata and does something with it.
|
|
44 *
|
|
45 */
|
|
46 public abstract void checkMeta();
|
|
47
|
|
48 /**
|
|
49 * gets the (default) File
|
|
50 * @return
|
|
51 */
|
|
52 public abstract File getFile();
|
|
53
|
|
54 /** Reads meta-data for this Fileset if there is any.
|
|
55 *
|
|
56 */
|
|
57 public void readMeta() {
|
|
58 if ((fileMeta != null) || (getFile() != null)) {
|
|
59 // there is already metadata or there is no file
|
|
60 return;
|
|
61 }
|
|
62 // metadata is in the file {filename}.meta
|
|
63 String fn = getFile().getAbsolutePath();
|
|
64 File mf = new File(fn + ".meta");
|
|
65 if (mf.canRead()) {
|
|
66 XMLMetaLoader ml = new XMLMetaLoader();
|
|
67 try {
|
|
68 // read meta file
|
|
69 HashMap meta = ml.loadURL(mf.getAbsolutePath());
|
|
70 if (meta == null) {
|
|
71 return;
|
|
72 }
|
|
73 fileMeta = (HashMap) meta.get(getName());
|
|
74 } catch (Exception e) {
|
|
75 // TODO Auto-generated catch block
|
|
76 e.printStackTrace();
|
|
77 }
|
|
78 }
|
|
79 }
|
|
80
|
|
81 /** The name of the (hires) image file.
|
|
82 *
|
|
83 * @return
|
|
84 */
|
|
85 public String getName() {
|
|
86 File f = getFile();
|
|
87 return (f != null) ? f.getName() : null;
|
|
88 }
|
|
89
|
|
90 /** Returns the parent DocuDirectory.
|
|
91 *
|
|
92 * @return DocuDirectory
|
|
93 */
|
|
94 public Directory getParent() {
|
|
95 return parent;
|
|
96 }
|
|
97
|
|
98 /**
|
|
99 * Sets the parent.
|
|
100 * @param parent The parent to set
|
|
101 */
|
|
102 public void setParent(Directory parent) {
|
|
103 this.parent = parent;
|
|
104 }
|
|
105
|
|
106 /** Returns the meta-data for this fileset.
|
|
107 *
|
|
108 * @return HashMap
|
|
109 */
|
|
110 public HashMap getFileMeta() {
|
|
111 return fileMeta;
|
|
112 }
|
|
113
|
|
114 /**
|
|
115 * Sets the fileMeta.
|
|
116 * @param fileMeta The fileMeta to set
|
|
117 */
|
|
118 public void setFileMeta(HashMap fileMeta) {
|
|
119 this.fileMeta = fileMeta;
|
|
120 }
|
|
121
|
|
122 /**
|
|
123 * @return
|
|
124 */
|
|
125 public boolean isMetaChecked() {
|
|
126 return metaChecked;
|
|
127 }
|
|
128
|
|
129 /**
|
|
130 * @return
|
|
131 */
|
|
132 public static int getFileClass() {
|
|
133 return fileClass;
|
|
134 }
|
|
135
|
|
136 }
|