package org.richfaces.photoalbum.util;
import org.richfaces.json.JSONObject;
import org.richfaces.photoalbum.model.Image;
/**
* Class to handle local (photoalbum.domain.Image) and remote images (JSONobject)
*
* @author mpetrov
*
*/
public class ImageHandler {
private Image localImage;
private JSONObject remoteImage;
private int type;
public static final int LOCAL = 1;
public static final int FACEBOOK = 2;
public static final int GOOGLE = 3;
public ImageHandler(Object o) {
setImage(o);
}
public void setImage(Object o) {
if (o == null) {
return;
}
if (o instanceof Image) {
localImage = (Image) o;
type = LOCAL;
} else if (o instanceof JSONObject) {
remoteImage = (JSONObject) o;
String imageType = remoteImage.optString("type");
if (imageType.equals("facebook")) {
type = FACEBOOK;
} else if (imageType.equals("google")) {
type = GOOGLE;
}
}
}
public boolean isLocalImage() {
return type == LOCAL;
}
public boolean isFacebookImage() {
return type == FACEBOOK;
}
public boolean isGoogleImage() {
return type == GOOGLE;
}
public Object getImage() {
return isLocalImage() ? localImage : remoteImage;
}
public String getName() {
return isLocalImage() ? localImage.getName() : remoteImage.optString("name");
}
public String getThumbUrl() {
return isLocalImage() ? localImage.getFullPath() : remoteImage.optString("thumbUrl");
}
public String getUrl() {
return isLocalImage() ? localImage.getFullPath() : remoteImage.optString("url");
}
public String getId() {
return isLocalImage() ? localImage.getId().toString() : remoteImage.optString("id");
}
public String getAlbumId() {
return isLocalImage() ? localImage.getAlbum().getId().toString() : remoteImage.optString("fullAlbumId");
}
public int getType() {
return type;
}
public String getDescription() {
return isLocalImage() ? localImage.getDescription() : "";
}
}