changeset 579:efd7a223f819 stream

try: ImageInput as interface, ImageFile inherits from Dirent and implements ImageInput
author robcast
date Wed, 22 Dec 2010 19:17:52 +0100
parents 790cbfb58b52
children f210731dc6cc
files servlet/src/digilib/image/ImageLoaderDocuImage.java servlet/src/digilib/image/JAIDocuImage.java servlet/src/digilib/io/ImageFile.java servlet/src/digilib/io/ImageInput.java servlet/src/digilib/io/ImageInputImpl.java servlet/src/digilib/io/ImageSet.java
diffstat 6 files changed, 154 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/servlet/src/digilib/image/ImageLoaderDocuImage.java	Wed Dec 22 18:32:06 2010 +0100
+++ b/servlet/src/digilib/image/ImageLoaderDocuImage.java	Wed Dec 22 19:17:52 2010 +0100
@@ -50,8 +50,8 @@
 import digilib.io.FileOpException;
 import digilib.io.FileOps;
 import digilib.io.ImageFile;
+import digilib.io.ImageInput;
 import digilib.io.ImageSet;
-import digilib.io.ImageInput;
 
 /** Implementation of DocuImage using the ImageLoader API of Java 1.4 and Java2D. */
 public class ImageLoaderDocuImage extends ImageInfoDocuImage {
--- a/servlet/src/digilib/image/JAIDocuImage.java	Wed Dec 22 18:32:06 2010 +0100
+++ b/servlet/src/digilib/image/JAIDocuImage.java	Wed Dec 22 19:17:52 2010 +0100
@@ -47,8 +47,8 @@
 import digilib.io.FileOpException;
 import digilib.io.FileOps;
 import digilib.io.ImageFile;
+import digilib.io.ImageInput;
 import digilib.io.ImageSet;
-import digilib.io.ImageInput;
 
 /** A DocuImage implementation using Java Advanced Imaging Library. */
 /**
--- a/servlet/src/digilib/io/ImageFile.java	Wed Dec 22 18:32:06 2010 +0100
+++ b/servlet/src/digilib/io/ImageFile.java	Wed Dec 22 19:17:52 2010 +0100
@@ -28,7 +28,7 @@
 /**
  * @author casties
  */
-public class ImageFile extends ImageInput {
+public class ImageFile extends DocuDirent implements ImageInput {
 	
 	// file name
 	private String filename = null;
@@ -36,6 +36,11 @@
 	private ImageSet parent = null;
 	// parent directory
 	private Directory dir = null;
+    // mime file type
+    protected String mimetype = null;
+    // image size in pixels
+    protected ImageSize pixelSize = null;
+
 
 	public ImageFile(String fn, ImageSet parent, Directory dir) {
 		this.filename = fn;
@@ -50,12 +55,6 @@
 	}
 	
 	
-	@Override
-	public boolean hasFile() {
-		// this is File-based
-		return true;
-	}
-
 	/** Returns the file name (without path).
 	 * 
 	 * @return
@@ -68,7 +67,6 @@
 	/**
 	 * @return File
 	 */
-	@Override
 	public File getFile() {
 		if (dir == null) {
 			return null;
@@ -77,21 +75,6 @@
 		return f;
 	}
 
-	/**
-	 * @return ImageSet
-	 */
-	public ImageSet getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the parent.
-	 * @param parent The parent to set
-	 */
-	public void setParent(ImageSet parent) {
-		this.parent = parent;
-	}
-
 	/* (non-Javadoc)
 	 * @see digilib.io.ImageInput#setSize(digilib.image.ImageSize)
 	 */
@@ -102,5 +85,63 @@
 			this.parent.setAspect(imageSize);
 		}
 	}
+    /* (non-Javadoc)
+     * @see digilib.io.ImageInput#getSize()
+     */
+    public ImageSize getSize() {
+        return pixelSize;
+    }
+
+    /* (non-Javadoc)
+     * @see digilib.io.ImageInput#getMimetype()
+     */
+    public String getMimetype() {
+        return mimetype;
+    }
+
+    /* (non-Javadoc)
+     * @see digilib.io.ImageInput#setMimetype(java.lang.String)
+     */
+    public void setMimetype(String filetype) {
+        this.mimetype = filetype;
+    }
+
+    /* (non-Javadoc)
+     * @see digilib.io.ImageInput#isChecked()
+     */
+    public boolean isChecked() {
+        return (pixelSize != null);
+    }
+    
+    /* (non-Javadoc)
+     * @see digilib.io.ImageInput#getAspect()
+     */
+    public float getAspect() {
+        return (pixelSize != null) ? pixelSize.getAspect() : 0;
+    }
+
+    @Override
+    public ImageSet getParentSet() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void setParentSet(ImageSet parent) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public void checkMeta() {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public File getInput() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
 }
--- a/servlet/src/digilib/io/ImageInput.java	Wed Dec 22 18:32:06 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/* ImageInput-- digilib image input interface.
-
-  Digital Image Library servlet components
-
-  Copyright (C) 2010 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 20.12.2010
- */
-
-package digilib.io;
-
-import digilib.image.ImageSize;
-
-public abstract class ImageInput {
-
-	// mime file type
-	protected String mimetype = null;
-	// image size in pixels
-	protected ImageSize pixelSize = null;
-
-	/**
-	 * @return ImageSize
-	 */
-	public ImageSize getSize() {
-		return pixelSize;
-	}
-
-	/**
-	 * Sets the imageSize.
-	 * @param imageSize The imageSize to set
-	 */
-	public void setSize(ImageSize imageSize) {
-		this.pixelSize = imageSize;
-	}
-
-	/**
-	 * @return String
-	 */
-	public String getMimetype() {
-		return mimetype;
-	}
-
-	/**
-	 * Sets the mimetype.
-	 * @param mimetype The mimetype to set
-	 */
-	public void setMimetype(String filetype) {
-		this.mimetype = filetype;
-	}
-
-	/** returns if this image has been checked 
-	 * (i.e. has size and mimetype) 
-	 * @return boolean
-	 */
-	public boolean isChecked() {
-		return (pixelSize != null);
-	}
-	
-	/** Returns the aspect ratio of the image (width/height).
-	 * 
-	 * @return
-	 */
-	public float getAspect() {
-		return (pixelSize != null) ? pixelSize.getAspect() : 0;
-	}
-	
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servlet/src/digilib/io/ImageInputImpl.java	Wed Dec 22 19:17:52 2010 +0100
@@ -0,0 +1,81 @@
+/* ImageInput-- digilib image input interface.
+
+  Digital Image Library servlet components
+
+  Copyright (C) 2010 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 20.12.2010
+ */
+
+package digilib.io;
+
+import digilib.image.ImageSize;
+
+public abstract class ImageInputImpl implements ImageInput {
+
+	// mime file type
+	protected String mimetype = null;
+	// image size in pixels
+	protected ImageSize pixelSize = null;
+
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#getSize()
+     */
+	@Override
+    public ImageSize getSize() {
+		return pixelSize;
+	}
+
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#setSize(digilib.image.ImageSize)
+     */
+	@Override
+    public void setSize(ImageSize imageSize) {
+		this.pixelSize = imageSize;
+	}
+
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#getMimetype()
+     */
+	@Override
+    public String getMimetype() {
+		return mimetype;
+	}
+
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#setMimetype(java.lang.String)
+     */
+	@Override
+    public void setMimetype(String filetype) {
+		this.mimetype = filetype;
+	}
+
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#isChecked()
+     */
+	@Override
+    public boolean isChecked() {
+		return (pixelSize != null);
+	}
+	
+	/* (non-Javadoc)
+     * @see digilib.io.ImageInput#getAspect()
+     */
+	@Override
+    public float getAspect() {
+		return (pixelSize != null) ? pixelSize.getAspect() : 0;
+	}
+	
+}
\ No newline at end of file
--- a/servlet/src/digilib/io/ImageSet.java	Wed Dec 22 18:32:06 2010 +0100
+++ b/servlet/src/digilib/io/ImageSet.java	Wed Dec 22 19:17:52 2010 +0100
@@ -38,7 +38,7 @@
 	protected static FileClass fileClass = FileClass.IMAGE;
 	
 	/** list of files (ImageFile) */
-	private List<ImageInput> list = null;
+	private List<ImageInputImpl> list = null;
 
 	/** aspect ratio (width/height) */
 	private float aspect = 0f;
@@ -62,7 +62,7 @@
 	 * @param initialCapacity
 	 */
 	public ImageSet() {
-		list = new ArrayList<ImageInput>();
+		list = new ArrayList<ImageInputImpl>();
 	}
 
 	/**
@@ -76,7 +76,7 @@
 	public ImageSet(File file, Map<Integer,Object> hints) {
 		Directory[] dirs = (Directory[]) hints.get(FileOps.HINT_BASEDIRS);
 		int nb = dirs.length;
-		list = new ArrayList<ImageInput>(nb);
+		list = new ArrayList<ImageInputImpl>(nb);
 		parent = dirs[0];
 		fill(dirs, file, hints);
 	}
@@ -140,7 +140,7 @@
 	 * @return
 	 */
 	public ImageInput getNextSmaller(ImageSize size) {
-		for (ListIterator<ImageInput> i = getHiresIterator(); i.hasNext();) {
+		for (ListIterator<ImageInputImpl> i = getHiresIterator(); i.hasNext();) {
 			ImageInput f = i.next();
 			try {
 				if (!f.isChecked()) {
@@ -168,7 +168,7 @@
 	 * @return
 	 */
 	public ImageInput getNextBigger(ImageSize size) {
-		for (ListIterator<ImageInput> i = getLoresIterator(); i.hasPrevious();) {
+		for (ListIterator<ImageInputImpl> i = getLoresIterator(); i.hasPrevious();) {
 			ImageInput f = i.previous();
 			try {
 				if (!f.isChecked()) {
@@ -210,7 +210,7 @@
 	 * 
 	 * @return
 	 */
-	public ListIterator<ImageInput> getHiresIterator() {
+	public ListIterator<ImageInputImpl> getHiresIterator() {
 		return list.listIterator();
 	}
 
@@ -224,7 +224,7 @@
 	 * 
 	 * @return
 	 */
-	public ListIterator<ImageInput> getLoresIterator() {
+	public ListIterator<ImageInputImpl> getLoresIterator() {
 		return list.listIterator(list.size());
 	}