| package org.jivesoftware.smack; |
| |
| import java.util.List; |
| |
| import org.jivesoftware.smack.packet.RosterPacket; |
| |
| /** |
| * This is an interface for persistent roster storage needed to implement XEP-0237 |
| * @author Till Klocke |
| * |
| */ |
| |
| public interface RosterStorage { |
| |
| /** |
| * This method returns a List object with all RosterEntries contained in this store. |
| * @return List object with all entries in local roster storage |
| */ |
| public List<RosterPacket.Item> getEntries(); |
| /** |
| * This method returns the RosterEntry which belongs to a specific user. |
| * @param bareJid The bare JID of the RosterEntry |
| * @return The RosterEntry which belongs to that user |
| */ |
| public RosterPacket.Item getEntry(String bareJid); |
| /** |
| * Returns the number of entries in this roster store |
| * @return the number of entries |
| */ |
| public int getEntryCount(); |
| /** |
| * This methos returns the version number as specified by the "ver" attribute |
| * of the local store. Should return an emtpy string if store is empty. |
| * @return local roster version |
| */ |
| public String getRosterVersion(); |
| /** |
| * This method stores a new RosterEntry in this store or overrides an existing one. |
| * If ver is null an IllegalArgumentException should be thrown. |
| * @param entry the entry to save |
| * @param ver the version this roster push contained |
| */ |
| public void addEntry(RosterPacket.Item item, String ver); |
| /** |
| * Removes an entry from the persistent storage |
| * @param bareJid The bare JID of the entry to be removed |
| */ |
| public void removeEntry(String bareJid); |
| /** |
| * Update an entry which has been modified locally |
| * @param entry the entry to be updated |
| */ |
| public void updateLocalEntry(RosterPacket.Item item); |
| } |