Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/action/LoadAction.java @ 670:b89b31293772
Implemented first things to store/load projects.
gnv/trunk@793 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 17 Mar 2010 13:31:38 +0000 |
parents | |
children | 93b4dedc4e37 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/action/LoadAction.java Wed Mar 17 13:31:38 2010 +0000 @@ -0,0 +1,77 @@ +package de.intevation.gnv.action; + +import de.intevation.gnv.propertiesreader.PropertiesReaderFactory; +import de.intevation.gnv.propertiesreader.PropertiesReader; +import de.intevation.gnv.util.XMLUtils; + +import java.io.InputStream; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.fileupload.FileItemIterator; +import org.apache.commons.fileupload.FileItemStream; +import org.apache.commons.fileupload.servlet.ServletFileUpload; + +import org.apache.log4j.Logger; + +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; + +import org.w3c.dom.Document; + +/** + * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) + */ +public class LoadAction extends ArtifactDatabaseActionBase { + + public static final String RESOURCE_UPLOAD_FAILURE = "upload.failure"; + + private static Logger logger = Logger.getLogger(LoadAction.class); + + public LoadAction() { + super(); + } + + public ActionForward execute( + ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + throws Exception + { + logger.info("Import artifact."); + + ServletFileUpload upload = new ServletFileUpload(); + Document artifactDocument = null; + + FileItemIterator iter = upload.getItemIterator(request); + while (iter.hasNext()) { + FileItemStream item = (FileItemStream) iter.next(); + String name = item.getFieldName(); + + if (name.equals("document")) { + InputStream stream = item.openStream(); + artifactDocument = XMLUtils.readDocument(stream); + } + } + + // no document found or not valid + if (artifactDocument == null) { + logger.error("Upload failure: No document found or invalid."); + + request.setAttribute( + CommunicationKeys.REQUEST_EXCEPTION_PROJECT, + RESOURCE_UPLOAD_FAILURE); + + return super.getExceptionForward(mapping); + } + + // TODO Do something with our nice xml document + // Use DescribeUI Action to set required attributes which are parsed in + // jsp files. + return super.execute(mapping, form, request, response); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :