Mercurial > hg > digilib-old
view servlet/src/digilib/io/DocuDirent.java @ 176:67ff8c7fecb9
Servlet version 1.17b2
- new mapping file for "virtual directories"
- direct file URLs now work without extension (even with wrong ones)
author | robcast |
---|---|
date | Mon, 10 Nov 2003 20:59:00 +0100 |
parents | e743b853efca |
children | afe7ff98bb71 |
line wrap: on
line source
/* DocuDirent.java -- Abstract directory entry in a DocuDirectory Digital Image Library servlet components Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please read license.txt for the full details. A copy of the GPL may be found at http://www.gnu.org/copyleft/lgpl.html You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Created on 15.09.2003 by casties * */ package digilib.io; import java.io.File; import java.util.HashMap; /** Abstract directory entry in a DocuDirectory. * * @author casties * */ public abstract class DocuDirent { /** the file class of this file */ protected static int fileClass = FileOps.CLASS_NONE; /** HashMap with metadata */ protected HashMap fileMeta = null; /** Is the Metadata valid */ protected boolean metaChecked = false; /** the parent directory */ protected Directory parent = null; /** Checks metadata and does something with it. * */ public abstract void checkMeta(); /** * gets the (default) File * @return */ public abstract File getFile(); /** Reads meta-data for this Fileset if there is any. * */ public void readMeta() { if ((fileMeta != null) || (getFile() != null)) { // there is already metadata or there is no file return; } // metadata is in the file {filename}.meta String fn = getFile().getAbsolutePath(); File mf = new File(fn + ".meta"); if (mf.canRead()) { XMLMetaLoader ml = new XMLMetaLoader(); try { // read meta file HashMap meta = ml.loadURL(mf.getAbsolutePath()); if (meta == null) { return; } fileMeta = (HashMap) meta.get(getName()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** The name of the file. * * If this is a Fileset, the method returns the name of the default file * (for image filesets the highest resolution file). * * @return */ public String getName() { File f = getFile(); return (f != null) ? f.getName() : null; } /** The filename sans extension. * * @return */ public String getBasename() { File f = getFile(); if (f == null) { return null; } return FileOps.basename(f.getName()); } /** Returns the parent Directory. * * @return DocuDirectory */ public Directory getParent() { return parent; } /** Sets the parent Directory. * * @param parent The parent to set */ public void setParent(Directory parent) { this.parent = parent; } /** Returns the meta-data for this file(set). * * @return HashMap */ public HashMap getFileMeta() { return fileMeta; } /** Sets the meta-data for this file(set) * . * @param fileMeta The fileMeta to set */ public void setFileMeta(HashMap fileMeta) { this.fileMeta = fileMeta; } /** * @return */ public boolean isMetaChecked() { return metaChecked; } /** * @return */ public static int getFileClass() { return fileClass; } }