package org.openedit.entermedia.search; import java.util.Collection; import java.util.List; import org.openedit.Data; import org.openedit.data.Searcher; import org.openedit.entermedia.Asset; import org.openedit.entermedia.AssetArchive; import org.openedit.entermedia.Category; import com.openedit.WebPageRequest; import com.openedit.hittracker.HitTracker; import com.openedit.hittracker.SearchQuery; public interface AssetSearcher extends Searcher { public HitTracker search(SearchQuery inQuery); /** * Search for a category or any of its children */ public abstract HitTracker searchCategories(WebPageRequest inPageRequest, Category incategory) throws Exception; /** * Only searches for an exact category match. No children. */ public abstract void searchExactCategories(WebPageRequest inPageRequest, Category incategory) throws Exception; public abstract void updateIndex(Data inAsset); public abstract void updateIndex(List inAssets, boolean inOptimize); public abstract AssetArchive getAssetArchive(); public abstract void deleteFromIndex(Asset inAsset); public abstract void deleteFromIndex(String inId); public abstract void deleteFromIndex(HitTracker inOld); public abstract HitTracker getAllHits(); /** * Flush all pending writes. This operation is slow. */ public abstract void flush(); String nextAssetNumber(); public HitTracker searchByIds(Collection<String> inIds); public Asset getAssetBySourcePath(String inSourcepath, boolean autocreate); public Asset getAssetBySourcePath(String inSourcepath); }