Mercurial > hg > digilib-old
view servlet/src/digilib/io/AliasingDocuDirCache.java @ 410:395db075906d
removed mark divs and images, they are added programmatically now;
moved resetParameters() function to baselib.js;
moved all initalization code to onload function;
added "about" div with slots for version number display;
added "overlay" div for better mousemove control (for "zoom area");
added "debug" div and script
author | hertzhaft |
---|---|
date | Tue, 13 Dec 2005 13:36:28 +0100 |
parents | 86e50ca164f1 |
children | e758a49258e8 |
line wrap: on
line source
/* * AliasingDocuDirCache -- DocuDirCache using alias entries from config file * * 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 04.11.2003 */ package digilib.io; import java.io.File; import java.util.Iterator; import java.util.Map; import digilib.servlet.DigilibConfiguration; /** * @author casties * */ public class AliasingDocuDirCache extends DocuDirCache { /** * @param baseDirs * @param fileClasses * @param confFileName * @throws FileOpException */ public AliasingDocuDirCache(String[] baseDirs, int[] fileClasses, File confFile, DigilibConfiguration dlConfig) throws FileOpException { // create standard DocuDirCache super(baseDirs, fileClasses, dlConfig); Map pathMap = null; // read alias config file try { // load into pathMap XMLListLoader mapLoader = new XMLListLoader("digilib-aliases", "mapping", "link", "dir"); pathMap = mapLoader.loadURL(confFile.toURL().toString()); } catch (Exception e) { throw new FileOpException("ERROR loading mapping file: " + e); } if (pathMap == null) { throw new FileOpException("ERROR: unable to load mapping file!"); } /* * load map entries into cache */ for (Iterator i = pathMap.keySet().iterator(); i.hasNext();) { String link = (String) i.next(); String dir = (String) pathMap.get(link); if (dir == null) { logger.error("Key mismatch in mapping file!"); break; } DocuDirectory destDir = new DocuDirectory(dir, this); if (destDir.isValid()) { logger.debug("Aliasing dir: " + link); // add the alias name putName(FileOps.normalName(link), destDir); // add the real dir putDir(destDir); } } } /** * Adds a DocuDirectory under another name to the cache. * * @param name * @param newdir */ public void putName(String name, DocuDirectory newdir) { if (map.containsKey(name)) { logger .warn("Duplicate key in AliasingDocuDirCache.put -- ignored!"); } else { map.put(name, newdir); } } }