java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java
author František Kučera <franta-hg@frantovo.cz>
Wed, 12 Jan 2011 16:15:37 +0100
changeset 164 e146e2e3b80b
parent 145 0efefbf5f8b6
child 165 cdfc1e9e3a1b
permissions -rw-r--r--
Spokojenost: soulad kuřáckosti podniku s výsledky hlasování.
     1 package cz.frantovo.nekurak.dto;
     2 
     3 import java.util.logging.Level;
     4 import java.util.logging.Logger;
     5 
     6 /**
     7  * Agregovaný výsledek hlasování o tom,
     8  * zda se má v daném (jednom) podniku kouřit nebo ne.
     9  * @author fiki
    10  */
    11 public class VysledekHlasovani {
    12 
    13 	private static final Logger log = Logger.getLogger(VysledekHlasovani.class.getSimpleName());
    14 
    15 	private int hlasuAno;
    16 	private int hlasuNe;
    17 	private Podnik podnik;
    18 
    19 	public VysledekHlasovani(Podnik podnik) {
    20 		this.podnik = podnik;
    21 	}
    22 
    23 	/**
    24 	 * @return počet hlasů pro kuřácký podnik
    25 	 */
    26 	public int getHlasuAno() {
    27 		return hlasuAno;
    28 	}
    29 
    30 	public void setHlasuAno(int pocet) {
    31 		this.hlasuAno = pocet;
    32 	}
    33 
    34 	/**
    35 	 * @return počet hlasů pro nekuřácký podnik
    36 	 */
    37 	public int getHlasuNe() {
    38 		return hlasuNe;
    39 	}
    40 
    41 	public void setHlasuNe(int pocet) {
    42 		this.hlasuNe = pocet;
    43 	}
    44 
    45 	public Boolean getSpokojenost() {
    46 		int k = podnik.getKurackost().getId();
    47 
    48 		if (k == 0) {
    49 			/** neznámý stav → neznámá spokojenost */
    50 			return null;
    51 		} else if (k == 1 || k == 4) {
    52 			/** zakouřený podnik */
    53 			return hlasuAno > hlasuNe;
    54 		} else if (k == 2) {
    55 			/** nekuřácký podnik */
    56 			return hlasuAno < hlasuNe;
    57 		} else if (k == 3) {
    58 			/** důkladně oddělené části → pokud hlasování vyšlo mezi 35% a 65% bude spokojenost */
    59 			int soucet = hlasuAno + hlasuNe;
    60 			return hlasuAno > 0.35 * soucet && hlasuAno < 0.65 * soucet;
    61 		} else {
    62 			log.log(Level.SEVERE, "Neznámá hodnota kuřáckosti: {0} u podniku: {1}", new Integer[] {k, podnik.getId()});
    63 			return null;
    64 		}
    65 	}
    66 }