java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java
changeset 164 e146e2e3b80b
parent 145 0efefbf5f8b6
child 165 cdfc1e9e3a1b
     1.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Tue Jan 11 15:27:51 2011 +0100
     1.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Wed Jan 12 16:15:37 2011 +0100
     1.3 @@ -1,5 +1,8 @@
     1.4  package cz.frantovo.nekurak.dto;
     1.5  
     1.6 +import java.util.logging.Level;
     1.7 +import java.util.logging.Logger;
     1.8 +
     1.9  /**
    1.10   * Agregovaný výsledek hlasování o tom,
    1.11   * zda se má v daném (jednom) podniku kouřit nebo ne.
    1.12 @@ -7,8 +10,15 @@
    1.13   */
    1.14  public class VysledekHlasovani {
    1.15  
    1.16 +	private static final Logger log = Logger.getLogger(VysledekHlasovani.class.getSimpleName());
    1.17 +
    1.18  	private int hlasuAno;
    1.19  	private int hlasuNe;
    1.20 +	private Podnik podnik;
    1.21 +
    1.22 +	public VysledekHlasovani(Podnik podnik) {
    1.23 +		this.podnik = podnik;
    1.24 +	}
    1.25  
    1.26  	/**
    1.27  	 * @return počet hlasů pro kuřácký podnik
    1.28 @@ -31,4 +41,26 @@
    1.29  	public void setHlasuNe(int pocet) {
    1.30  		this.hlasuNe = pocet;
    1.31  	}
    1.32 +
    1.33 +	public Boolean getSpokojenost() {
    1.34 +		int k = podnik.getKurackost().getId();
    1.35 +
    1.36 +		if (k == 0) {
    1.37 +			/** neznámý stav → neznámá spokojenost */
    1.38 +			return null;
    1.39 +		} else if (k == 1 || k == 4) {
    1.40 +			/** zakouřený podnik */
    1.41 +			return hlasuAno > hlasuNe;
    1.42 +		} else if (k == 2) {
    1.43 +			/** nekuřácký podnik */
    1.44 +			return hlasuAno < hlasuNe;
    1.45 +		} else if (k == 3) {
    1.46 +			/** důkladně oddělené části → pokud hlasování vyšlo mezi 35% a 65% bude spokojenost */
    1.47 +			int soucet = hlasuAno + hlasuNe;
    1.48 +			return hlasuAno > 0.35 * soucet && hlasuAno < 0.65 * soucet;
    1.49 +		} else {
    1.50 +			log.log(Level.SEVERE, "Neznámá hodnota kuřáckosti: {0} u podniku: {1}", new Integer[] {k, podnik.getId()});
    1.51 +			return null;
    1.52 +		}
    1.53 +	}
    1.54  }