changeset 571:6e8488acb499

fixed default file class for DocuDir.size()
author robcast
date Wed, 22 Dec 2010 14:46:00 +0100
parents fd2ef7e46119
children 800f2bb57f1f
files client/digitallibrary/dirInfo-xml.jsp servlet/src/digilib/io/DocuDirectory.java servlet/src/digilib/servlet/Scaler.java
diffstat 3 files changed, 21 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/client/digitallibrary/dirInfo-xml.jsp	Tue Dec 21 20:24:09 2010 +0100
+++ b/client/digitallibrary/dirInfo-xml.jsp	Wed Dec 22 14:46:00 2010 +0100
@@ -1,3 +1,4 @@
+<%@page import="digilib.io.FileOps"%>
 <%@ page language="java" %><%!
 // create DocumentBean instance for all JSP requests
 digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
@@ -22,17 +23,19 @@
 digilib.io.DocuDirCache dirCache = (digilib.io.DocuDirCache) dlConfig.getValue("servlet.dir.cache");
 // get directory
 digilib.io.DocuDirectory dir = dirCache.getDirectory(dlRequest.getFilePath());
+FileOps.FileClass fc = FileOps.FileClass.IMAGE;
+int dirSize = dir.size();
 
 %><!-- Automatically generated XML snippet with directory info -->
+<huhu/>
 <dir><% if (dir != null) { %>
-  <size><%= dir.size() %></size>
+  <size><%= dirSize %></size>
   <name><%= dir.getDirName() %></name>
   <fsname><%= dir.getDir().getPath() %></fsname> 
 <%
     if (!dlRequest.hasOption("mo", "dir")) {
-      int l = dir.size();
-      for (int i = 0; i < l; i++) {
-        digilib.io.DocuDirent f = dir.get(i);
+      for (int i = 0; i < dirSize; i++) {
+        digilib.io.DocuDirent f = dir.get(i, fc);
         String fn = (f != null) ? f.getName() : "null";
 %>  <file>
     <index><%= i+1 %></index>
--- a/servlet/src/digilib/io/DocuDirectory.java	Tue Dec 21 20:24:09 2010 +0100
+++ b/servlet/src/digilib/io/DocuDirectory.java	Wed Dec 22 14:46:00 2010 +0100
@@ -40,6 +40,9 @@
 	/** list of files (DocuDirent) */
 	private List<List<DocuDirent>> list = null;
 
+	/** default FileClass for unspecified calls */
+	public static FileClass defaultFileClass = FileClass.IMAGE;
+	
 	/** directory object is valid (exists on disk) */
 	private boolean isValid = false;
 
@@ -108,7 +111,7 @@
 	 *  
 	 */
 	public int size() {
-		return ((list != null) && (list.get(0) != null)) ? list.get(0).size() : 0;
+	    return size(defaultFileClass);
 	}
 
 	/**
@@ -118,7 +121,13 @@
 	 *            fileClass
 	 */
 	public int size(FileClass fc) {
-		return ((list != null) && (list.get(fc.ordinal()) != null)) ? list.get(fc.ordinal()).size() : 0;
+        if (list != null) {
+            List<DocuDirent> l = list.get(fc.ordinal());
+            if (l != null) {
+                return l.size();
+            }
+        }
+        return 0;
 	}
 
 	/**
@@ -128,10 +137,7 @@
 	 * @return
 	 */
 	public ImageFileset get(int index) {
-		if ((list == null) || (list.get(0) == null) || (index >= list.get(0).size())) {
-			return null;
-		}
-		return (ImageFileset) list.get(0).get(index);
+		return (ImageFileset) get(index, defaultFileClass);
 	}
 
 	/**
@@ -468,12 +474,7 @@
 	 * @return DocuDirent
 	 */
 	public DocuDirent find(String fn) {
-		FileClass fc = FileOps.classForFilename(fn);
-		int i = indexOf(fn, fc);
-		if (i >= 0) {
-			return (DocuDirent) list.get(0).get(i);
-		}
-		return null;
+		return find(fn, defaultFileClass);
 	}
 
 	/**
--- a/servlet/src/digilib/servlet/Scaler.java	Tue Dec 21 20:24:09 2010 +0100
+++ b/servlet/src/digilib/servlet/Scaler.java	Wed Dec 22 14:46:00 2010 +0100
@@ -32,7 +32,7 @@
 public class Scaler extends HttpServlet {
 
     /** digilib servlet version (for all components) */
-    public static final String version = "1.8.2a";
+    public static final String version = "1.8.2b";
 
     /** servlet error codes */
     public static enum Error {UNKNOWN, AUTH, FILE, IMAGE};