package nl.siegmann.epublib.domain;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
/**
* MediaType is used to tell the type of content a resource is.
*
* Examples of mediatypes are image/gif, text/css and application/xhtml+xml
*
* All allowed mediaTypes are maintained bye the MediaTypeService.
*
* @see nl.siegmann.epublib.service.MediatypeService
*
* @author paul
*
*/
public class MediaType implements Serializable {
/**
*
*/
private static final long serialVersionUID = -7256091153727506788L;
private String name;
private String defaultExtension;
private Collection<String> extensions;
public MediaType(String name, String defaultExtension) {
this(name, defaultExtension, new String[] {defaultExtension});
}
public MediaType(String name, String defaultExtension,
String[] extensions) {
this(name, defaultExtension, Arrays.asList(extensions));
}
public int hashCode() {
if (name == null) {
return 0;
}
return name.hashCode();
}
public MediaType(String name, String defaultExtension,
Collection<String> extensions) {
super();
this.name = name;
this.defaultExtension = defaultExtension;
this.extensions = extensions;
}
public String getName() {
return name;
}
public String getDefaultExtension() {
return defaultExtension;
}
public Collection<String> getExtensions() {
return extensions;
}
public boolean equals(Object otherMediaType) {
if(! (otherMediaType instanceof MediaType)) {
return false;
}
return name.equals(((MediaType) otherMediaType).getName());
}
public String toString() {
return name;
}
}