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