Home | History | Annotate | Download | only in smack
      1 package org.jivesoftware.smack;
      2 
      3 import java.util.List;
      4 
      5 import org.jivesoftware.smack.packet.RosterPacket;
      6 
      7 /**
      8  * This is an interface for persistent roster storage needed to implement XEP-0237
      9  * @author Till Klocke
     10  *
     11  */
     12 
     13 public interface RosterStorage {
     14 
     15 	/**
     16 	 * This method returns a List object with all RosterEntries contained in this store.
     17 	 * @return List object with all entries in local roster storage
     18 	 */
     19 	public List<RosterPacket.Item> getEntries();
     20 	/**
     21 	 * This method returns the RosterEntry which belongs to a specific user.
     22 	 * @param bareJid The bare JID of the RosterEntry
     23 	 * @return The RosterEntry which belongs to that user
     24 	 */
     25 	public RosterPacket.Item getEntry(String bareJid);
     26 	/**
     27 	 * Returns the number of entries in this roster store
     28 	 * @return the number of entries
     29 	 */
     30 	public int getEntryCount();
     31 	/**
     32 	 * This methos returns the version number as specified by the "ver" attribute
     33 	 * of the local store. Should return an emtpy string if store is empty.
     34 	 * @return local roster version
     35 	 */
     36 	public String getRosterVersion();
     37 	/**
     38 	 * This method stores a new RosterEntry in this store or overrides an existing one.
     39 	 * If ver is null an IllegalArgumentException should be thrown.
     40 	 * @param entry the entry to save
     41 	 * @param ver the version this roster push contained
     42 	 */
     43 	public void addEntry(RosterPacket.Item item, String ver);
     44 	/**
     45 	 * Removes an entry from the persistent storage
     46 	 * @param bareJid The bare JID of the entry to be removed
     47 	 */
     48 	public void removeEntry(String bareJid);
     49 	/**
     50 	 * Update an entry which has been modified locally
     51 	 * @param entry the entry to be updated
     52 	 */
     53 	public void updateLocalEntry(RosterPacket.Item item);
     54 }
     55