package com.gmail.dpierron.calibre.datamodel;
import com.gmail.dpierron.tools.Helper;
import java.util.List;
public class EBookFormat implements Comparable<EBookFormat> {
public final static EBookFormat EPUB = new EBookFormat("EPUB", "application/epub+zip");
// List of formats that are recognised by Calibre2opds as valid formats
// Initialised from the mimetypes file/resource
private static List<EBookFormat> supportedFormats;
private String mime;
private final String name;
public EBookFormat(String name, String mime) {
this.name = name;
this.mime = mime;
}
private int priority = -1;
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
public String getMime() {
return mime;
}
public int compareTo(EBookFormat o) {
if (o == null)
return -1;
else {
if (getPriority() == o.getPriority())
return 0;
else
return (getPriority() > o.getPriority() ? -1 : 1);
}
}
public String toString() {
return name;
}
public String getName() {
return name;
}
public static EBookFormat fromFormat(String sFormat) {
// The following should only ever happen in test mode!
// It is not cnvenient in test to call the routine to initialise
// the list of formats so we simply assume it is valid
// We therefore 'fudge' a return value to get tests to work
if (supportedFormats == null) {
return new EBookFormat(sFormat,"mimetestdummy");
}
for (EBookFormat format : supportedFormats) {
if (format.getName().equalsIgnoreCase(sFormat))
return format;
}
return null;
}
public static List<EBookFormat> getSupportedFormats () {
return supportedFormats;
}
/**
* Set the list of supported formats.
* This list should be initialied by the ConfigurationManager
*
* @param formatList
*/
public static void setSupportedFormats(List<EBookFormat> formatList) {
supportedFormats = formatList;
}
}