package com.belladati.sdk.view.impl;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Collection;
import com.belladati.sdk.exception.impl.UnknownViewTypeException;
import com.belladati.sdk.filter.Filter;
import com.belladati.sdk.impl.BellaDatiServiceImpl;
import com.belladati.sdk.view.ImageView;
import com.fasterxml.jackson.databind.JsonNode;
public class ImageViewImpl extends ViewImpl implements ImageView {
public ImageViewImpl(BellaDatiServiceImpl service, JsonNode node) throws UnknownViewTypeException {
super(service, node);
}
@Override
public Image loadContent(Filter<?>... filters) {
return (Image) super.loadContent(filters);
}
@Override
public Image loadContent(Collection<Filter<?>> filters) {
return (Image) super.loadContent(filters);
}
@Override
public void updateImage(File image) {
service.editImageView(getId(), image);
}
/**
* This class is a holder for an image
*
* @author Pavol Kovac
*/
public static class ImageImpl implements Image {
private final String id;
private final BufferedImage image;
/**
* Constructor accepting image ID and image itself
*
* @param id of the image
* @param image itself
*/
public ImageImpl(String id, BufferedImage image) {
this.id = id;
this.image = image;
}
@Override
public String getId() {
return id;
}
@Override
public BufferedImage getImage() {
return image;
}
@Override
public String toString() {
return "Image(id: " + id + ")";
}
@Override
public boolean equals(Object obj) {
if (obj instanceof ImageImpl) {
return id.equals(((ImageImpl) obj).id);
}
return false;
}
@Override
public int hashCode() {
return id.hashCode();
}
}
}