1 package org.columba.mail.folder.headercache; 19 20 import java.util.Hashtable ; 21 import java.util.Set ; 22 23 import org.columba.mail.message.ICloseableIterator; 24 import org.columba.mail.message.IColumbaHeader; 25 import org.columba.mail.message.IHeaderList; 26 27 public class MemoryHeaderList implements IHeaderList { 28 protected Hashtable map; 29 30 public MemoryHeaderList() { 31 map = new Hashtable (); 32 } 33 34 public void add(IColumbaHeader header, Object uid) { 35 if( header.get("columba.uid") == null) { 36 header.set("columba.uid", uid); 37 } 38 39 map.put(uid, header); 40 } 41 42 public int count() { 43 return map.size(); 44 } 45 46 public boolean exists(Object uid) { 47 return map.containsKey(uid); 48 } 49 50 public Set keySet() { 51 return map.keySet(); 52 } 53 54 55 public void clear() { 56 map.clear(); 57 } 58 59 public IColumbaHeader get(Object uid) { 60 return (IColumbaHeader) map.get(uid); 61 } 62 63 public Object [] getUids() { 64 return map.keySet().toArray(); 65 } 66 67 public IColumbaHeader remove(Object uid) { 68 return (IColumbaHeader)map.remove(uid); 69 } 70 71 public ICloseableIterator headerIterator() { 72 return new DefaultCloseableIterator( map.values().iterator() ); 73 } 74 75 public void update(Object uid, IColumbaHeader header) { 76 } 78 79 public ICloseableIterator keyIterator() { 80 return new DefaultCloseableIterator(map.keySet().iterator()); 81 } 82 } 83 | Popular Tags |