package org.rr.pm.image;
import org.rr.commons.mufs.IResourceHandler;
abstract class AImageProvider implements IImageProvider {
protected IResourceHandler resourceLoader = null;
/**
* The {@link ImageInfo} instance providing some informations from the image header.
*/
protected ImageInfo imageInfo;
AImageProvider(IResourceHandler resourceLoader) {
this.resourceLoader = resourceLoader;
}
/**
* Gets the {@link IResourceHandler} which provides the data for this
* {@link JpgImageProvider} instance.
*/
@Override
public IResourceHandler getResourceHandler() {
return this.resourceLoader;
}
@Override
public int getHeight() {
final ImageInfo imageInfo = getImageInfo();
if(imageInfo!=null) {
return imageInfo.getHeight();
}
return -1;
}
@Override
public int getWidth() {
final ImageInfo imageInfo = getImageInfo();
if(imageInfo!=null) {
return imageInfo.getWidth();
}
return -1;
}
/**
* Gets the {@link ImageInfo} instance provding some informations from the image header.
*
* @return the desired {@link ImageInfo} instance.
*/
@Override
public ImageInfo getImageInfo() {
if(this.imageInfo==null) {
this.imageInfo = new ImageInfo(this.getResourceHandler());
}
return this.imageInfo;
}
}