01: package com.openedit.modules.image;
02:
03: import java.io.File;
04: import java.util.Iterator;
05: import java.util.List;
06:
07: import org.apache.commons.logging.Log;
08: import org.apache.commons.logging.LogFactory;
09:
10: import com.openedit.OpenEditException;
11:
12: public class CompositeImageConverter implements ImageConverter {
13: private static final Log log = LogFactory
14: .getLog(CompositeImageConverter.class);
15:
16: protected List fieldConverters;
17:
18: public boolean canConvert(String inPath) {
19: for (Iterator iter = getConverters().iterator(); iter.hasNext();) {
20: ImageConverter convert = (ImageConverter) iter.next();
21: if (convert.canConvert(inPath)) {
22: return true;
23: }
24: }
25: //log.error("Can't find convert for " + inPath);
26: return false;
27: }
28:
29: public boolean canResize(String inPath) {
30: for (Iterator iter = getConverters().iterator(); iter.hasNext();) {
31: ImageConverter convert = (ImageConverter) iter.next();
32: if (convert.canResize(inPath)) {
33: return true;
34: }
35: }
36: // log.error("Can't find resize for " + inPath);
37: return false;
38: }
39:
40: public boolean convert(File inIn, File inOut,
41: ConvertInstructions inStructions) throws OpenEditException {
42: for (Iterator iter = getConverters().iterator(); iter.hasNext();) {
43: ImageConverter convert = (ImageConverter) iter.next();
44: if (convert.canConvert(inIn.getPath())) {
45: return convert.convert(inIn, inOut, inStructions);
46: }
47: }
48: return false;
49: }
50:
51: public boolean resizeImage(File inImageFile, File inOutImageFile,
52: ConvertInstructions inStructions) throws Exception {
53: for (Iterator iter = getConverters().iterator(); iter.hasNext();) {
54: ImageConverter convert = (ImageConverter) iter.next();
55: if (convert.canResize(inImageFile.getPath())) {
56: return convert.resizeImage(inImageFile, inOutImageFile,
57: inStructions);
58: }
59: }
60: return false;
61: }
62:
63: public List getConverters() {
64: return fieldConverters;
65: }
66:
67: public void setConverters(List inConverters) {
68: fieldConverters = inConverters;
69: }
70:
71: }
|