package com.reucon.openfire.plugin.archive; import com.reucon.openfire.plugin.archive.model.Conversation; import java.util.Collection; import java.util.Date; /** * Maintains an index for message retrieval. */ public interface IndexManager { /** * Asynchronously indexes the given object. * @param object the object to index. * @return <code>true</code> if successfully queued for indexing, <code>false</code> otherwise. */ boolean indexObject(Object object); /** * Rebuilds the index. * * @return the number of messages indexed or -1 on error. */ int rebuildIndex(); Collection<String> searchParticipant(String token); Collection<Conversation> findConversations(String[] participants, Date startDate, Date endDate, String keywords); void destroy(); }