package com.gmail.dpierron.calibre.opds; /** * */ import com.gmail.dpierron.calibre.datamodel.Book; import com.gmail.dpierron.calibre.datamodel.Option; import com.gmail.dpierron.tools.i18n.Localization; import com.gmail.dpierron.tools.Helper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jdom2.Element; import java.io.IOException; import java.util.List; public class FeaturedBooksSubCatalog extends SubCatalog { private final static Logger logger = LogManager.getLogger(FeaturedBooksSubCatalog.class); private SplitOption splitOption; public FeaturedBooksSubCatalog(List<Book> books) { this(books, SplitOption.DontSplitNorPaginate); setCatalogType(Constants.FEATURED_TYPE); } public FeaturedBooksSubCatalog(List<Book> books, SplitOption splitOption) { super(books); this.splitOption = splitOption; sortBooks(); setCatalogType(Constants.FEATURED_TYPE); } public boolean isBookTheStepUnit() { return true; } private void sortBooks() { sortBooksByTimestamp(getBooks()); } public Element getFeaturedCatalog(Breadcrumbs pBreadcrumbs, boolean inSubDir) throws IOException { if (Helper.isNullOrEmpty(getBooks())) return null; String filename = getCatalogBaseFolderFileName(); String title = currentProfile.getFeaturedCatalogTitle(); String urn = Constants.INITIAL_URN_PREFIX + getCatalogType(); String summary = ""; if (getBooks().size() > 1) summary = Localization.Main.getText("allbooks.alphabetical", getBooks().size()); else if (getBooks().size() == 1) summary = Localization.Main.getText("allbooks.alphabetical.single"); if (logger.isTraceEnabled()) logger.trace("getSubCatalogEntry Breadcrumbs=" + pBreadcrumbs.toString()); /* return getListOfBooks(pBreadcrumbs, getBooks(), inSubDir, 0, title, summary, urn, filename, splitOption, // #751211: Use external icons option useExternalIcons ? getIconPrefix(inSubDir) + Icons.ICONFILE_FEATURED : Icons.ICON_FEATURED, null); */ return null; } /** * * @param pBreadcrumbs * @param obj * @param options * @return * @throws IOException */ public Element getDetailedEntry(Breadcrumbs pBreadcrumbs, Object obj, Option... options) throws IOException { assert false : "getDetailedEntry should never be called"; return null; } }