UebernimmTopicGruppenProfilAction.java
001 /*
002  * Created on 28.04.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 import org.apache.struts.action.ActionMessage;
018 import org.apache.struts.action.ActionMessages;
019 
020 import de.fub.tip.actionforms.ChangeProfilActionForm;
021 import de.fub.tip.datenanzeige.ormapper.UserdataVO;
022 import de.fub.tip.datenbank.factory.ThemenBearbeiterFactory;
023 import de.fub.tip.datenbank.logik.ThemenBearbeiter;
024 import de.fub.tip.exceptions.NoDataFoundException;
025 import de.fub.tip.exceptions.NoUserLoggedInException;
026 
027 /**
028  * Sinn: Diese Aktion führt etwaige Änderungen am 
029  * Themengruppenprofil eines Benutzers durch,
030  * speichert das neue Profil in der Datenbank ab und informiert über 
031  * Erfolg/Misserfolg der Aktion.
032  
033  @author hirsch, 28.04.2004
034  @version 2004-04-30
035  
036  * $Id: UebernimmTopicGruppenProfilAction.java,v 1.6 2004/05/01 15:31:25 hirsch Exp $
037  */
038 public class UebernimmTopicGruppenProfilAction extends Action {
039     /** Logger zur Fehlersuche */
040   private static Logger logger = 
041       Logger.getLogger(UebernimmTopicGruppenProfilAction.class);
042 
043   /**
044    * ändert das Sehenswürdigkeitsgruppenprofil eines Benutzers
045    *
046    @param actionMapping ActionMapping
047    @param actionForm zugehörige ActionForm
048    @param request der aktuelle Request
049    @param response ServletResponse
050    *
051    @return ActionForward nächstes Ziel
052    */
053   public ActionForward execute(ActionMapping actionMapping,
054       ActionForm actionForm, HttpServletRequest request,
055       HttpServletResponse response ) { 
056 
057     logger.info("UebernimmTopicGruppenProfilAction.execute() called.");
058     DataSource dataSource = null;
059     ChangeProfilActionForm form = null;
060     ActionMessages messages = new ActionMessages();
061     ActionMessage message = null;
062 
063     try {
064             dataSource = this.getDataSource(request, "tip")
065             ThemenBearbeiter logik = (ThemenBearbeiter)
066               ThemenBearbeiterFactory.getInstance(dataSource).
067               getLogicObject();  
068 
069             form = (ChangeProfilActionFormactionForm;
070             
071             // Attribute aus der Session holen
072             UserdataVO user = (UserdataVOrequest.getSession().
073               getAttribute("user");
074             
075              logik.setTopicGroupProfileForUser(user, form.getSelnames());
076               
077         catch (SQLException e) {
078         logger.debug("UebernimmTopicGruppenProfilAction.SQLException "
079                 e + ", " + e.getLocalizedMessage());
080 
081         return actionMapping.findForward("dbproblem");
082 
083         catch (NoUserLoggedInException e) {
084         logger.debug("UebernimmTopicGruppenProfilAction." +
085             "NoUserLoggedIn "+ e + ", " + e.getLocalizedMessage());
086 
087         return actionMapping.findForward("loginproblem");
088         
089       catch (NoDataFoundException e) {
090       logger.debug("UebernimmTopicGruppenProfilAction." +
091           "nichts gefunden  "+ e + ", " + e.getLocalizedMessage());
092 
093         message = new ActionMessage("changeprofil.tgroup.failure");
094       messages.addActionMessages.GLOBAL_MESSAGE, message );
095       
096       saveMessagesrequest, messages );
097 
098       return actionMapping.findForward("success");
099       
100       // end of catch    
101     
102       // ActionMessage für Erfolgsfall schreiben
103     message =new ActionMessage("changeprofil.tgroup.meta");
104     messages.addActionMessages.GLOBAL_MESSAGE, message );
105 
106     if (form.getSelnames() != null) {
107     message = new ActionMessage("changeprofil.tgroup.success"
108             ""+form.getSelnames().length)
109     else {
110       message = new ActionMessage("changeprofil.tgroup.empty")
111     // end if
112     messages.addActionMessages.GLOBAL_MESSAGE, message );
113     
114     saveMessagesrequest, messages );
115         return actionMapping.findForward("success");
116   // end of execute  
117 // end of class