package cz.nkp.differ.images;
import cz.nkp.differ.exceptions.ImageDifferException;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Map;
/**
*
* @author xrosecky
*/
public class ImageLoaderFactory implements ImageLoader {
private Map<String, ImageLoader> loaders = null;
private ImageLoader defaultImageLoader = null;
public Map<String, ImageLoader> getLoaders() {
return loaders;
}
public void setLoaders(Map<String, ImageLoader> loaders) {
this.loaders = loaders;
}
public ImageLoader getDefaultImageLoader() {
return defaultImageLoader;
}
public void setDefaultImageLoader(ImageLoader defaultImageLoader) {
this.defaultImageLoader = defaultImageLoader;
}
@Override
public BufferedImage load(File file) throws ImageDifferException {
String extension = getExtension(file.getName());
ImageLoader imageLoader = null;
if (loaders != null) {
imageLoader = loaders.get(extension);
}
if (imageLoader == null) {
imageLoader = defaultImageLoader;
}
return imageLoader.load(file);
}
private static String getExtension(String fileName) {
String extension = "";
int dotAt = fileName.lastIndexOf('.');
if (dotAt != -1) {
extension = fileName.substring(dotAt + 1);
}
return extension;
}
}