Mercurial > hg > digilib-old
diff servlet/src/digilib/io/DocuDirCache.java @ 270:b21915a3fc24
Servlet version 1.21b3
- searching in directories got faster (real binarySearch now!)
- cached file lists get disposed
- some code cleaning (Map types instead of HashMap)
author | robcast |
---|---|
date | Tue, 12 Oct 2004 16:06:43 +0200 |
parents | beed92ee6022 |
children | 87dca7119596 |
line wrap: on
line diff
--- a/servlet/src/digilib/io/DocuDirCache.java Tue Oct 12 16:06:43 2004 +0200 +++ b/servlet/src/digilib/io/DocuDirCache.java Tue Oct 12 16:06:43 2004 +0200 @@ -27,6 +27,7 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Map; import org.apache.log4j.Logger; @@ -38,21 +39,23 @@ public class DocuDirCache { /** general logger for this class */ - protected Logger logger = Logger.getLogger(this.getClass()); + Logger logger = Logger.getLogger(this.getClass()); /** HashMap of directories */ - protected HashMap map = null; + Map map = null; /** names of base directories */ - private String[] baseDirNames = null; + String[] baseDirNames = null; /** array of allowed file classes (image/text) */ private int[] fileClasses = null; /** number of files in the whole cache (approximate) */ - private long numFiles = 0; + long numFiles = 0; /** number of cache hits */ - private long hits = 0; + long hits = 0; /** number of cache misses */ - private long misses = 0; + long misses = 0; /** use safe (but slow) indexing */ boolean safeDirIndex = false; + /** the root directory element */ + public static Directory ROOT = null; /** * Constructor with array of base directory names and file classes. @@ -111,8 +114,8 @@ */ public void putDir(DocuDirectory newDir) { put(newDir); - String parent = newDir.getParentDirName(); - if (parent != null) { + String parent = FileOps.parent(newDir.getDirName()); + if (parent != "") { // check the parent in the cache DocuDirectory pd = (DocuDirectory) map.get(parent); if (pd == null) { @@ -146,7 +149,7 @@ l.add(dd); } } else { - if (dd.getParentDirName().equals(dirname)) { + if (FileOps.parent(dd.getDirName()).equals(dirname)) { l.add(dd); } }