package com.gmail.dpierron.calibre.opds.indexer; import java.util.Map; import java.util.TreeMap; /** * a keyword, with all the catalog items it links to */ public class Keyword implements Comparable<Keyword> { long id; String word; Map<ItemType, CatalogItem> catalogItems; public Keyword(long id, String word) { this.id = id; this.word = word; } public void addCatalogItem(ItemType type, BookEntry bookEntry) { if (catalogItems == null) { catalogItems = new TreeMap<ItemType, CatalogItem>(); catalogItems.put(type, new CatalogItem(type, bookEntry)); } else { CatalogItem item = catalogItems.get(type); if (item == null) { item = new CatalogItem(type); catalogItems.put(type, item); } item.addBook(bookEntry); } } public int compareTo(Keyword o) { return word.compareTo(o.word); } public String toString() { return "" + word + (catalogItems != null ? ":" + catalogItems : ""); } public int size() { if (catalogItems == null) return 0; int size = 0; for (CatalogItem catalogItem : catalogItems.values()) { size += catalogItem.size(); } return size; } }