EventAreaAction.java
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 = (LocationVOrequest.getSession().
073         getAttribute("location");
074       UserdataVO user = (UserdataVOrequest.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     ifcontainerErgebnis != null ) {
112       request.setAttribute("sightgroups", containerErgebnis);
113       logger.debug("EventAreaAction.Container als " +
114         "Parameter sightgroups gespeichert.");
115     // end if
116 
117     ifalleSehensw != 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