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 :

http://dive4elements.wald.intevation.org