On Wed, Oct 29, 2008 at 10:18 PM,  <[EMAIL PROTECTED]> wrote:
> Author: xor
> Date: 2008-10-29 14:18:43 +0000 (Wed, 29 Oct 2008)
> New Revision: 23170
>
> Modified:
>   trunk/plugins/FMSPlugin/WoT/FMSMessageManagerWoT.java
> Log:
> Implementation. Toad, please make the UpdatableSortedLinkedList use generics 
> and take a Comparator maybe.

You may use java.util.TreeSet / SortedSet.

UpdatableSortedLinkedList contain some ugly hack, impossible to
generify without
interface change.

>
> Modified: trunk/plugins/FMSPlugin/WoT/FMSMessageManagerWoT.java
> ===================================================================
> --- trunk/plugins/FMSPlugin/WoT/FMSMessageManagerWoT.java       2008-10-29 
> 14:16:44 UTC (rev 23169)
> +++ trunk/plugins/FMSPlugin/WoT/FMSMessageManagerWoT.java       2008-10-29 
> 14:18:43 UTC (rev 23170)
> @@ -3,30 +3,69 @@
>  * http://www.gnu.org/ for further details of the GPL. */
>  package plugins.FMSPlugin.WoT;
>
> +import java.util.ArrayList;
> +import java.util.Hashtable;
>  import java.util.Iterator;
> +import java.util.LinkedHashSet;
> +import java.util.LinkedList;
>
> +import freenet.keys.FreenetURI;
> +import freenet.support.UpdatableSortedLinkedList;
> +
>  import plugins.FMSPlugin.FMSBoard;
>  import plugins.FMSPlugin.FMSIdentityManager;
> +import plugins.FMSPlugin.FMSMessage;
>  import plugins.FMSPlugin.FMSMessageManager;
>  import plugins.FMSPlugin.FMSOwnIdentity;
>
> -public class FMSMessageManagerWoT extends FMSMessageManager {
> +public class FMSMessageManagerWoT implements FMSMessageManager {
> +
> +       /**
> +        * Contains all boards which where found in a message. References to 
> all messages of a board are stored in
> +        * the board. Adding a newly downloaded message therefore is done by 
> searching its board and calling
> +        * <code>addMessage()</code> on that board. Further, the message is 
> also added to mMessages, see below.
> +        */
> +       private Hashtable<String, FMSBoard> mBoards = new Hashtable<String, 
> FMSBoard>();
> +
> +       /**
> +        * Contains an alphabetically sorted list of all boards for retrieval 
> by boardIterator() for example.
> +        */
> +       // FIXME: Toad, please make the UpdatableSortedLinkedList use 
> generics.
> +       // FIXME: Then we should create a Comparator for FMSBoard
> +       private UpdatableSortedLinkedList<FMSBoard> mBoardsSorted = new 
> UpdateableSortedLinkedList<FMSBoard>();
> +
> +       /**
> +        * Contains all messages, even though they are also stored in their 
> FMSBoard. Used for checking whether
> +        * a message was already downloaded or not.
> +        */
> +       private Hashtable<FreenetURI, FMSMessageWoT> mMessages = new 
> Hashtable<FreenetURI, FMSMessageWoT>();
>
> -       public FMSMessageManagerWoT(FMSIdentityManager newIdentityManager) {
> -               super(newIdentityManager);
> -               // TODO Auto-generated constructor stub
> -       }
> +       private ArrayList<FMSOwnIdentityWoT> mOwnIdentites = new 
> ArrayList<FMSOwnIdentityWoT>();
>
> -       @Override
> -       public FMSBoard getBoardByName(String name) {
> -               // TODO Auto-generated method stub
> -               return null;
> +       public synchronized FMSBoard getBoardByName(String name) {
> +               return mBoards.get(name);
>        }
> -
> -       @Override
> -       public Iterator<FMSBoard> iterator(FMSOwnIdentity identity) {
> -               // TODO Auto-generated method stub
> -               return null;
> +
> +       public synchronized Iterator<FMSBoard> boardIterator(FMSOwnIdentity 
> identity) {
> +
>        }
> -
> +
> +       private boolean shouldDownloadMessage(FreenetURI uri) {
> +               return (mMessages.containsKey(uri));
> +       }
> +
> +       private void onMessageReceived(String blah) {
> +               FMSMessageWoT newMessage = new FMSMessageWoT(null, null, 
> null, null, null);
> +               String boardName = "";
> +               String boardDescription = "";
> +               FMSBoard board = mBoards.get(boardName);
> +               if(board == null) {
> +                       board = new FMSBoard(this, boardName, 
> boardDescription);
> +                       mBoards.put(board.getName(), board);
> +                       mBoardsSorted.put(board);
> +               }
> +
> +               mMessages.put(newMessage.getURI(), newMessage);
> +               board.addMessage(newMessage);
> +       }
>  }
>
> _______________________________________________
> cvs mailing list
> [EMAIL PROTECTED]
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to