ingo@1022: /*
ingo@1022: * Copyright (c) 2010 by Intevation GmbH
ingo@1022: *
ingo@1022: * This program is free software under the LGPL (>=v2.1)
ingo@1022: * Read the file LGPL.txt coming with the software for details
ingo@1022: * or visit http://www.gnu.org/licenses/ if it does not exist.
ingo@1022: */
ingo@1022:
tim@8: package de.intevation.gnv.action;
tim@8:
tim@8: import java.util.Collection;
tim@8:
tim@8: import javax.servlet.http.HttpServletRequest;
tim@8: import javax.servlet.http.HttpServletResponse;
tim@8:
tim@8: import org.apache.log4j.Logger;
tim@8: import org.apache.struts.action.ActionForm;
tim@8: import org.apache.struts.action.ActionForward;
tim@8: import org.apache.struts.action.ActionMapping;
tim@8:
tim@963: import de.intevation.gnv.action.sessionmodel.SessionModel;
tim@963: import de.intevation.gnv.action.sessionmodel.SessionModelFactory;
tim@963: import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory;
tim@963: import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException;
tim@963: import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
tim@963:
tim@8: /**
ingo@690: * This controller fetches artifact factories from artifact server and stores
ingo@690: * them on a SessionModel
object.
sascha@699: *
sascha@684: * @author Tim Englich
sascha@684: * @author Ingo Weinzierl
tim@8: */
tim@36: public class FetchArtifactFactoriesAction extends ArtifactDatabaseActionBase {
tim@963:
tim@8: /**
tim@8: * the logger, used to log exceptions and additonaly information
tim@8: */
tim@36: private static Logger log = Logger
tim@36: .getLogger(FetchArtifactFactoriesAction.class);
tim@8:
tim@963: /**
tim@963: * Constructor
tim@963: */
tim@8: public FetchArtifactFactoriesAction() {
tim@8: super();
tim@8: }
tim@8:
ingo@690:
tim@8: @Override
tim@8: public ActionForward execute(ActionMapping mapping, ActionForm form,
tim@38: HttpServletRequest request,
tim@38: HttpServletResponse response) throws Exception {
tim@8: log.debug("ArtifactDatabaseActionBase.execute");
tim@34: try {
ingo@409: Collection artifactFactories =
ingo@409: ArtifactDatabaseClientFactory.getInstance()
ingo@409: .getArtifactDatabaseClient(getLocale(request))
tim@36: .getArtifactFactories();
ingo@409:
ingo@409: SessionModel sm = SessionModelFactory.getInstance().getSessionModel(
ingo@409: request);
ingo@409:
tim@34: sm.setArtifacteFactories(artifactFactories);
ingo@409:
tim@34: return super.execute(mapping, form, request, response);
ingo@409: }
ingo@665: catch (ArtifactDatabaseClientException e) {
ingo@665: log.error(e, e);
ingo@665: request.setAttribute(
ingo@715: CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID,
ingo@665: e.getMessage());
ingo@665:
ingo@665: return super.getExceptionForward(mapping);
ingo@665: }
ingo@409: catch (Exception e) {
tim@36: log.error(e, e);
tim@36: request.setAttribute(
ingo@409: CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID,
ingo@409: e.getMessage());
ingo@409:
tim@34: return super.getExceptionForward(mapping);
tim@34: }
tim@8: }
tim@8: }
ingo@409: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :