package org.ebookdroid.opds;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public enum OPDSBookType {
/**
*
*/
PDF(false, "application/pdf"),
/**
*
*/
DJVU(false, "application/djvu", "image/djvu", "image/x-djvu", "image/vnd.djvu"),
/**
*
*/
FB2(true, "application/fb2", "text/fb2+xml"),
/**
*
*/
CBZ(false, "application/x-cbz");
/**
*
*/
// CBR(false, "application/x-cbr");
private final boolean supportZip;
private final Set<String> mimeTypes;
private OPDSBookType(final boolean supportZip, final String... mimeTypes) {
this.supportZip = supportZip;
this.mimeTypes = new LinkedHashSet<String>(Arrays.asList(mimeTypes));
}
public boolean isZipSupported() {
return supportZip;
}
public static OPDSBookType getByMimeType(final String mimeType) {
for (final OPDSBookType t : values()) {
if (t.mimeTypes.contains(mimeType)) {
return t;
}
if (isZippedContent(mimeType)) {
if (t.mimeTypes.contains(mimeType.substring(0, mimeType.length() - "+zip".length()))) {
return t;
}
}
}
return null;
}
public static boolean isZippedContent(final String mimeType) {
return mimeType.endsWith("+zip");
}
}