/*
* Created on 18/set/2011
* Copyright 2011 by Andrea Vacondio (andrea.vacondio@gmail.com).
*
* This file is part of the Sejda source code
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.sejda.model.image;
import java.util.EnumSet;
import java.util.Set;
/**
* Model for an image type with helper methods related to the ability of the image type to support multiple images written into the same file.
*
* @author Andrea Vacondio
*
*/
public enum ImageType {
PNG("image/png", "png", false),
JPEG("image/jpeg", "jpg", false),
GIF("image/gif", "gif", true),
TIFF("image/tiff", "tif", true);
private String mimeType;
private String extension;
private boolean supportMultiImage;
private ImageType(String mimeType, String extension, boolean supportMultiImage) {
this.mimeType = mimeType;
this.extension = extension;
this.supportMultiImage = supportMultiImage;
}
public String getMimeType() {
return mimeType;
}
/**
* @return true if the type supports multiple images into one image file.
*/
public boolean isSupportMultiImage() {
return supportMultiImage;
}
public String getExtension() {
return extension;
}
/**
* @return a set containing only those {@link ImageType} supporting multiple image.
*/
public static Set<ImageType> valuesSupportingMultipleImage() {
Set<ImageType> retSet = EnumSet.noneOf(ImageType.class);
for (ImageType current : ImageType.values()) {
if (current.isSupportMultiImage()) {
retSet.add(current);
}
}
return retSet;
}
}