001 /*
002 * Created on 02.03.2004
003 */
004 package de.fub.tip.actions;
005
006 import java.sql.SQLException;
007
008 import javax.servlet.http.HttpServletRequest;
009 import javax.servlet.http.HttpServletResponse;
010 import javax.sql.DataSource;
011
012 import org.apache.log4j.Logger;
013 import org.apache.struts.action.Action;
014 import org.apache.struts.action.ActionForm;
015 import org.apache.struts.action.ActionForward;
016 import org.apache.struts.action.ActionMapping;
017
018 import de.fub.tip.datenanzeige.container.SightGruppeVOContainer;
019 import de.fub.tip.datenanzeige.container.SightVOContainer;
020 import de.fub.tip.datenanzeige.ormapper.LocationVO;
021 import de.fub.tip.datenanzeige.ormapper.UserdataVO;
022 import de.fub.tip.datenbank.factory.NachSehenswuerdigkeitenPrueferFactory;
023 import de.fub.tip.datenbank.logik.NachSehenswuerdigkeitenPruefer;
024 import de.fub.tip.exceptions.NoSightsAvailableException;
025 import de.fub.tip.exceptions.NoUserLoggedInException;
026
027 /**
028 * Sinn: zeigt den Inhalt der aktuellen Umgebung an, <br>
029 * basiert auf den vorher eingegebenen Daten zur aktuellen Position und<br>
030 * zum angemeldeten Benutzer
031 *
032 * @author hirsch, 02.03.2004
033 * @version 2004-04-30
034 * $Id: EventAreaAction.java,v 1.21 2004/06/10 13:29:00 hirsch Exp $
035 *
036 */
037 public class EventAreaAction extends Action {
038 /** Logger zur Fehlersuche */
039 private static Logger logger =
040 Logger.getLogger(EventAreaAction.class);
041 /** zum Herstellen einer Datenbankverbindung
042 * wird die Datenquelle von Struts übergeben
043 */
044 private DataSource dataSource = null;
045
046 /**
047 * sammelt die Daten der Umgebung zusammen und<br>
048 * leitet an Anzeige weiter, wenn Daten gefunden wurden
049 *
050 * @param actionMapping ActionMapping
051 * @param actionForm zugehörige ActionForm
052 * @param request der aktuelle Request
053 * @param response ServletResponse
054 *
055 * @return ActionForward nächstes Ziel
056 */
057 public ActionForward execute(ActionMapping actionMapping,
058 ActionForm actionForm, HttpServletRequest request,
059 HttpServletResponse response ) {
060
061 SightGruppeVOContainer containerErgebnis = null;
062 SightVOContainer alleSehensw = null;
063
064 try {
065 dataSource = this.getDataSource(request, "tip");
066 NachSehenswuerdigkeitenPruefer nsp =
067 (NachSehenswuerdigkeitenPruefer)
068 NachSehenswuerdigkeitenPrueferFactory.getInstance(
069 dataSource).getLogicObject();
070
071 // Attribute aus der Session holen
072 LocationVO location = (LocationVO) request.getSession().
073 getAttribute("location");
074 UserdataVO user = (UserdataVO) request.getSession().
075 getAttribute("user");
076
077 containerErgebnis = nsp.getAllSightsAround(location, user);
078 alleSehensw = nsp.getAllSights(location, user);
079
080 } catch (NoSightsAvailableException e) {
081 logger.debug("EventAreaAction.NoSightsAvailableException: "+e);
082 logger.debug(e.getMessage());
083
084 return actionMapping.findForward("success");
085
086 } catch (SQLException e) {
087 logger.debug("EventAreaAction.SQLException: "+e);
088 logger.debug(e.getMessage());
089
090 return actionMapping.findForward("dbproblem");
091
092 } catch (ClassCastException e) {
093 logger.debug("EventAreaAction.ClassCastException: "+e);
094 logger.debug(e.getMessage());
095
096 return actionMapping.findForward("loginproblem");
097
098 } catch (NullPointerException e) {
099 logger.debug("EventAreaAction.NullPointerException: "+e);
100 logger.debug(e.getMessage());
101
102 return actionMapping.findForward("loginproblem");
103
104 } catch (NoUserLoggedInException e) {
105 logger.debug("EventAreaAction.NoUserLoggedInException: "+e);
106 logger.debug(e.getMessage());
107
108 return actionMapping.findForward("loginproblem");
109 } // end of catch
110
111 if( containerErgebnis != null ) {
112 request.setAttribute("sightgroups", containerErgebnis);
113 logger.debug("EventAreaAction.Container als " +
114 "Parameter sightgroups gespeichert.");
115 } // end if
116
117 if( alleSehensw != null ) {
118 request.setAttribute("sights", alleSehensw);
119 logger.debug("EventAreaAction.Container2 als " +
120 "Parameter sights gespeichert.");
121 } // end if
122
123 return actionMapping.findForward("success");
124 } // end of execute
125 } // end of class
|