java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java
author František Kučera <franta-hg@frantovo.cz>
Wed Feb 08 12:44:51 2012 +0100 (2012-02-08)
changeset 77 fdeb54809e23
parent 74 48066e753dd6
permissions -rw-r--r--
odsazení
     1 package cz.frantovo.sql.vyuka.web;
     2 
     3 import cz.frantovo.sql.vyuka.dao.HistorieDAO;
     4 import cz.frantovo.sql.vyuka.dao.PiskovisteDAO;
     5 import cz.frantovo.sql.vyuka.dao.PruvodceDAO;
     6 import cz.frantovo.sql.vyuka.dto.Pruvodce;
     7 import cz.frantovo.sql.vyuka.dto.Uzivatel;
     8 import cz.frantovo.sql.vyuka.dto.VysledekSQL;
     9 
    10 /**
    11  * Webová beana, která poskytuje data Ajaxovému JSPčku.
    12  *
    13  * @author fiki
    14  */
    15 public class Ajax {
    16 
    17 	private final Uzivatel uzivatel = new Uzivatel();
    18 	private String sqlPrikaz;
    19 	private long idPruvodce;
    20 	private String kodPruvodce;
    21 
    22 	/**
    23 	 * Nastaví informace o klientovi (uživateli).
    24 	 *
    25 	 * @param ipAdresa IP adresa, ze které přišel HTTP požadavek
    26 	 * @param ipPresmerovano HTTP hlavička x-forwarded-for (přidává proxy).
    27 	 * @param idSezeni javovská HTTP relace
    28 	 */
    29 	public void setKlient(String ipAdresa, String ipPresmerovano, String idSezeni) {
    30 		if (("127.0.0.1".equals(ipAdresa) || "10.0.0.31".equals(ipAdresa)) && ipPresmerovano != null) {
    31 			uzivatel.setIpAdresa(ipPresmerovano);
    32 		} else {
    33 			uzivatel.setIpAdresa(ipAdresa);
    34 		}
    35 		uzivatel.setIdSezeni(idSezeni);
    36 	}
    37 
    38 	public void setSqlPrikaz(String sqlPrikaz) {
    39 		this.sqlPrikaz = sqlPrikaz;
    40 	}
    41 
    42 	public void setIdPruvodce(long idPruvodce) {
    43 		this.idPruvodce = idPruvodce;
    44 	}
    45 
    46 	public void setKodPruvodce(String kodPruvodce) {
    47 		this.kodPruvodce = kodPruvodce;
    48 	}
    49 
    50 	/**
    51 	 * @return Historie SQL příkazů daného uživatele.
    52 	 */
    53 	public VysledekSQL getHistorie() {
    54 		HistorieDAO h = new HistorieDAO();
    55 		return h.nactiHistorii(uzivatel);
    56 	}
    57 
    58 	/**
    59 	 * Vykoná zadaný SQL příkaz v databázi.
    60 	 *
    61 	 * @return Výsledek dotazu – tabulka, hláška nebo chyba.
    62 	 */
    63 	public VysledekSQL getSQLVysledek() {
    64 		PiskovisteDAO p = new PiskovisteDAO();
    65 		return p.vykonejSQL(sqlPrikaz, uzivatel);
    66 	}
    67 
    68 	/**
    69 	 * Načte stránku průvodce – podle ID.
    70 	 *
    71 	 * @return průvodce nebo chybová hláška.
    72 	 */
    73 	public Pruvodce getPruvodcePodleId() {
    74 		PruvodceDAO dao = new PruvodceDAO();
    75 		Pruvodce p = dao.getPruvodce(idPruvodce);
    76 		return osetriChybuPruvodce(p);
    77 	}
    78 
    79 	/**
    80 	 * Načte stránku průvodce – podle kódu.
    81 	 *
    82 	 * @param kod kód průvodce, kterého hledáme.
    83 	 * @return průvodce nebo chybová hláška.
    84 	 */
    85 	public Pruvodce getPruvodcePodleKodu() {
    86 		PruvodceDAO dao = new PruvodceDAO();
    87 		Pruvodce p = dao.getPruvodce(kodPruvodce);
    88 		return osetriChybuPruvodce(p);
    89 	}
    90 
    91 	/**
    92 	 * Načte stránku průvodce.
    93 	 * idPruvodce = id, ke kterému hledáme předchozí stránku (záznam před).
    94 	 *
    95 	 * @return průvodce nebo chybová hláška.
    96 	 */
    97 	public Pruvodce getPruvodcePredchozi() {
    98 		PruvodceDAO dao = new PruvodceDAO();
    99 		Pruvodce p = dao.getPruvodcePredchozi(idPruvodce);
   100 		return osetriChybuPruvodce(p);
   101 	}
   102 
   103 	/**
   104 	 * Načte stránku průvodce.
   105 	 * idPruvodce = id, ke kterému hledáme následující stránku (záznam po).
   106 	 *
   107 	 * @return průvodce nebo chybová hláška.
   108 	 */
   109 	public Pruvodce getPruvodceNasledujici() {
   110 		PruvodceDAO dao = new PruvodceDAO();
   111 		Pruvodce p = dao.getPruvodceNasledujici(idPruvodce);
   112 		return osetriChybuPruvodce(p);
   113 	}
   114 
   115 	/**
   116 	 * @param p Stránka průvodce načtená z databáze.
   117 	 * @return zadaná stránka, nebo chybová hláška, pokud bylo načteno „null“
   118 	 */
   119 	private static Pruvodce osetriChybuPruvodce(Pruvodce p) {
   120 		if (p == null) {
   121 			p = new Pruvodce();
   122 			p.setKod("chyba");
   123 			p.setNadpis("pruvodce.chyba.nadpis");
   124 			p.setObsah("pruvodce.chyba.obsah");
   125 			p.setLokalizovat(true);
   126 		}
   127 		return p;
   128 	}
   129 }