annotate servlet/src/digilib/io/ImageFile.java @ 290:5d0c0da080ec gen2 scaleable_1

digilib servlet version 2 ("scaleable digilib") - first stab at using thread pools to limit resource use - using Dug Leas util.concurrent - doesn't mix with tomcat :-(
author robcast
date Thu, 21 Oct 2004 20:53:37 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
290
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
1 /* ImageFile.java -- digilib image file class.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
2
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
3 Digital Image Library servlet components
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
4
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
5 Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de)
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
6
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
7 This program is free software; you can redistribute it and/or modify it
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
9 Free Software Foundation; either version 2 of the License, or (at your
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
10 option) any later version.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
11
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
12 Please read license.txt for the full details. A copy of the GPL
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
13 may be found at http://www.gnu.org/copyleft/lgpl.html
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
14
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
16 along with this program; if not, write to the Free Software
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
18
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
19 * Created on 25.02.2003
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
20 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
21
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
22 package digilib.io;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
23
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
24 import java.io.File;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
25
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
26 import digilib.image.ImageSize;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
27
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
28 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
29 * @author casties
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
30 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
31 public class ImageFile {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
32
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
33 // file name
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
34 private String filename = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
35 // parent ImageFileset
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
36 private ImageFileset parent = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
37 // parent directory
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
38 private Directory dir = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
39 // mime file type
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
40 private String mimetype = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
41 // image size in pixels
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
42 private ImageSize pixelSize = null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
43
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
44 public ImageFile(String fn, ImageFileset parent, Directory dir) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
45 this.filename = fn;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
46 this.parent = parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
47 this.dir = dir;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
48 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
49
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
50 public ImageFile(String fn) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
51 File f = new File(fn);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
52 this.dir = new Directory(f.getParentFile());
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
53 this.filename = f.getName();
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
54 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
55
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
56 /** Returns the file name (without path).
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
57 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
58 * @return
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
59 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
60 public String getName() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
61 return filename;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
62 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
63
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
64
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
65 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
66 * @return File
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
67 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
68 public File getFile() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
69 if (dir == null) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
70 return null;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
71 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
72 File f = new File(dir.getDir(), filename);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
73 return f;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
74 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
75
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
76 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
77 * @return ImageSize
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
78 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
79 public ImageSize getSize() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
80 return pixelSize;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
81 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
82
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
83 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
84 * @return String
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
85 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
86 public String getMimetype() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
87 return mimetype;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
88 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
89
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
90 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
91 * Sets the imageSize.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
92 * @param imageSize The imageSize to set
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
93 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
94 public void setSize(ImageSize imageSize) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
95 this.pixelSize = imageSize;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
96 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
97
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
98 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
99 * Sets the mimetype.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
100 * @param mimetype The mimetype to set
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
101 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
102 public void setMimetype(String filetype) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
103 this.mimetype = filetype;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
104 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
105
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
106 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
107 * @return ImageFileset
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
108 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
109 public ImageFileset getParent() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
110 return parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
111 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
112
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
113 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
114 * Sets the parent.
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
115 * @param parent The parent to set
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
116 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
117 public void setParent(ImageFileset parent) {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
118 this.parent = parent;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
119 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
120
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
121 /**
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
122 * @return boolean
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
123 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
124 public boolean isChecked() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
125 return (pixelSize != null);
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
126 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
127
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
128 /** Returns the aspect ratio of the image (width/height).
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
129 *
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
130 * @return
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
131 */
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
132 public float getAspect() {
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
133 return (pixelSize != null) ? pixelSize.getAspect() : 0;
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
134 }
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
135
5d0c0da080ec digilib servlet version 2 ("scaleable digilib")
robcast
parents:
diff changeset
136 }