java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java
author František Kučera <franta-hg@frantovo.cz>
Wed Feb 11 19:36:28 2009 +0100 (2009-02-11)
changeset 4 e3e2a3a4c36a
parent 3 08480e8e1199
child 5 62bddd9b51fb
permissions -rw-r--r--
Zobrazování, zatím vycpávkového, denního souhrnu.
     1 package cz.frantovo.hrisniciSpameri;
     2 
     3 import cz.frantovo.hrisniciSpameri.dto.Cil;
     4 import cz.frantovo.hrisniciSpameri.dto.Souhrn;
     5 import java.io.Serializable;
     6 import java.net.InetAddress;
     7 import java.net.UnknownHostException;
     8 import java.sql.Date;
     9 import java.text.DateFormat;
    10 import java.text.ParseException;
    11 import java.text.SimpleDateFormat;
    12 import java.util.ArrayList;
    13 import java.util.Collection;
    14 import java.util.logging.Level;
    15 import java.util.logging.Logger;
    16 
    17 /**
    18  * Beana zprostředkovávající denní souhrn hříšníků.
    19  * @author fiki
    20  */
    21 public class DenniSouhrn implements Serializable {
    22 
    23     private static final long serialVersionUID = 7932392366943861342L;
    24     private static final Logger log = Logger.getLogger(DenniSouhrn.class.getName());
    25     private static final long DEN = 1000 * 60 * 60 * 24;
    26     private static String formatDataVzor = "yyyy-mm-dd";
    27     public static DateFormat formatData = new SimpleDateFormat(formatDataVzor);
    28     private Date den;
    29 
    30     public Date getDen() {
    31         return den;
    32     }
    33 
    34     public void setDen(Date den) {
    35         if (den == null) {
    36             nastavVychoziDen();
    37         } else {
    38             this.den = den;
    39         }
    40         log.log(Level.INFO, "Den nastaven na: " + formatData.format(den));
    41     }
    42 
    43     public void setDen(String den) {
    44         if (den == null || den.length() != formatDataVzor.length()) {
    45             nastavVychoziDen();
    46         }
    47 
    48         try {
    49             this.den = new Date(formatData.parse(den).getTime());
    50         } catch (ParseException e) {
    51             log.log(Level.INFO, "Chybně zadané datum: " + den, e);
    52             nastavVychoziDen();
    53         }
    54     }
    55 
    56     /**
    57      * Ve výchozím stavu zobrazujeme souhrn za předešlý den.
    58      * @return včerejšek
    59      */
    60     private static Date getVychoziDen() {
    61         return new Date(System.currentTimeMillis() - DEN);
    62     }
    63 
    64     private void nastavVychoziDen() {
    65         log.log(Level.INFO, "Nastavuji den na výchozí hodnotu.");
    66         setDen(getVychoziDen());
    67     }
    68 
    69     public Collection<Souhrn> getSouhrn() {
    70         Collection<Souhrn> souhrn = new ArrayList<Souhrn>();
    71 
    72         Cil cil = new Cil(1, "Frantovo.cz", "http://frantovo.cz/blog/", null, null);
    73 
    74         for (int i = 1; i < 11; i++) {
    75             try {
    76                 Souhrn s = new Souhrn(getVychoziDen(), InetAddress.getByName("127.0.0.1"), 100 + i, cil);
    77                 souhrn.add(s);
    78             } catch (UnknownHostException e) {
    79                 log.log(Level.SEVERE, null, e);
    80             }
    81         }
    82 
    83         return souhrn;
    84     }
    85 }