package org.ebookdroid.opds.model;
public enum LinkKind {
FACET_FEED {
@Override
public boolean accept(final String rel, final String type) {
return type != null && type.contains("profile=opds-catalog")
&& "http://www.feedbooks.com/opds/facet".equals(rel);
}
},
NEXT_FEED {
@Override
public boolean accept(final String rel, final String type) {
return type != null && type.contains("profile=opds-catalog") && "next".equals(rel);
}
},
FEED {
@Override
public boolean accept(final String rel, final String type) {
return type != null && type.contains("profile=opds-catalog");
}
},
BOOK_DOWNLOAD {
@Override
public boolean accept(final String rel, final String type) {
return rel != null
&& (rel.equals("http://opds-spec.org/acquisition") || rel
.equals("http://opds-spec.org/acquisition/open-access"));
}
},
BOOK_THUMBNAIL {
@Override
public boolean accept(final String rel, final String type) {
return rel != null
&& (rel.equals("http://opds-spec.org/thumbnail") || rel
.equals("http://opds-spec.org/image/thumbnail"));
}
},
UNKNOWN;
public boolean accept(final String rel, final String type) {
return true;
}
public static LinkKind valueOf(final String rel, final String type) {
for (final LinkKind k : values()) {
if (k.accept(rel, type)) {
return k;
}
}
return UNKNOWN;
}
public static Link create(final String ref, final String rel, final String type) {
for (final LinkKind k : values()) {
if (k.accept(rel, type)) {
return new Link(k, ref, rel, type);
}
}
return new Link(UNKNOWN, ref, rel, type);
}
}