/* * MessageCollection.java * * Created on den 10 september 2001, 13:18 */ package ip1.u6; import java.util.*; /** * * @author Henrik Johansson * @version 1.0 */ public class MessageCollection { private Collection messages; private MessageDB db; /** Skapar ny MessageCollection. MessageCollection samlar * Message-objekt, i samband med att en användare begär * åtkomst av dessa, hämtas de från databasen med hjälp av * MessageDB. */ public MessageCollection() { db = new MessageDB(); messages = new TreeSet(db.getMessages()); } /** Updaterar databasen i en egen tråd. För att undvika * användarseghet. */ private class UpdateDB implements Runnable { private Message msg; UpdateDB(Message msg) { this.msg = msg; (new Thread(this)).start(); } public void run() { db.addMessage(msg); } } /** Sparar Message-objekt. När nytt meddelande skall sparas * undan lägger användaren in det i MessageCollection med * hjälp av add(Message). MessageCollection kommer då utan * användarens ingripande lagra detta i databasen. * @param message Meddelande som skall sparas. * @return returnerar Message-objektet som skall lagras. * För att programeraren skall kunna skapa, lagra * och visa upp det på en kodrad. */ public Message add(Message message) { messages.add(message); new UpdateDB(message); return message; } /** Ger Iterator. För att kunna iterera genom samtliga objekt * i samlingen och därmed databasen. * @return Iterator */ public Iterator iterator() { return messages.iterator(); } }