1. import java.util.HashMap;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. /**
  5.  * Write a description of class Person here.
  6.  *
  7.  * @author (your name)
  8.  * @version (a version number or a date)
  9.  */
  10. public class Person
  11. {
  12.     // instance variables - replace the example below with your own
  13.     private String mName;
  14.     private int mMood;
  15.     private HashMap<String, EventGenerator> mWeekEvent;
  16.     private EventGenerator mGenEvent;
  17.  
  18.     /**
  19.      * Konstruktor för klassen person. Fyller automatiskt listan med veckans händelser.
  20.      * Anropas med en sträng för namn på personen.
  21.      *
  22.      * @param name  Namnet på personen.
  23.      */
  24.     public Person(String name)
  25.     {
  26.         mName = name;
  27.         mMood = 200;
  28.         mWeekEvent = new HashMap<String, EventGenerator>();
  29.         mGenEvent = new EventGenerator();
  30.     }
  31.  
  32.     public void listWeek()
  33.     {
  34.         ArrayList<String> mWeekday = new ArrayList<String>();
  35.        
  36.         mWeekday.add(new String("Måndag"));
  37.         mWeekday.add(new String("Tisdag"));
  38.         mWeekday.add(new String("Onsdag"));
  39.         mWeekday.add(new String("Torsdag"));
  40.         mWeekday.add(new String("Fredag"));
  41.         mWeekday.add(new String("Lördag"));
  42.         mWeekday.add(new String("Söndag"));
  43.  
  44.         System.out.println("Hej, " + mName);
  45.         System.out.println(" Du startar med gott humör på nivå: " + mMood);
  46.         System.out.println(" Din vecka slumpar sig såhär...");
  47.         // Skapar en array med veckans dagar.
  48.         // Skulle man vilja att veckan börjar på någon annan dag, eller att listWeek() endast
  49.         // ska gälla för ett visst antal dagar, är det enkelt att modifiera, då den kommande
  50.         // while-loopen inte plockar upp ett fast värde, utan storleken på samlingen.
  51.         Iterator<String> it = mWeekday.iterator();
  52.         while(it.hasNext()) {
  53.             String thisDay = it.next();
  54.            
  55.             // Vänta en sekund...
  56.             wait(1000);
  57.             System.out.println(thisDay);
  58.             generateDayEvent();
  59.             affectMood(thisDay);
  60.             System.out.println(" Ditt humör är nu på: " + mMood);
  61.         }
  62.     }
  63.  
  64.     private void affectMood(String day)
  65.     {
  66. //        mMood += day.getAffectMood();
  67.     }
  68.    
  69.     public void generateDayEvent()
  70.     {
  71.         mWeekEvent.put("Måndag",
  72.                        mGenEvent.generateEvent());
  73.     }
  74.    
  75.     /**
  76.      * Wait for a specified number of milliseconds before finishing.
  77.      * This provides an easy way to specify a small delay which can be
  78.      * used when producing animations.
  79.      * @param  milliseconds  the number
  80.      */
  81.     private void wait(int milliseconds)
  82.     {
  83.         try
  84.         {
  85.             Thread.sleep(milliseconds);
  86.         }
  87.         catch (Exception e)
  88.         {
  89.             // ignoring exception at the moment
  90.         }
  91.     }
  92. }
  93.  
  94.