annotate gnv/src/main/java/de/intevation/gnv/action/mapviewer/MapViewerCallAction.java @ 558:8032da9e8b70

Added further business logic for the MapViewer-Interface gnv/trunk@654 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 01 Feb 2010 15:08:39 +0000
parents b88e881e8e94
children 4df3347d6d1d
rev   line source
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.action.mapviewer;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
3 import java.io.ByteArrayInputStream;
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 import java.io.InputStream;
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
5 import java.util.ArrayList;
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.util.Collection;
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
7 import java.util.Iterator;
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 import javax.servlet.http.HttpServletRequest;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 import javax.servlet.http.HttpServletResponse;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 import org.apache.log4j.Logger;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 import org.apache.struts.action.ActionForm;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 import org.apache.struts.action.ActionForward;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 import org.apache.struts.action.ActionMapping;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 import de.intevation.gnv.action.ArtifactDatabaseActionBase;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 import de.intevation.gnv.action.mapviewer.parser.ExternalCallParser;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 import de.intevation.gnv.action.mapviewer.parser.XMLExternalCallParser;
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
20 import de.intevation.gnv.action.sessionmodel.SessionModel;
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
21 import de.intevation.gnv.action.sessionmodel.SessionModelFactory;
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory;
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
23 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 import de.intevation.gnv.artifactdatabase.objects.map.MapService;
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 /**
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 *
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 * @author Tim Englich <tim.englich@intevation.de>
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 *
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 */
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 public class MapViewerCallAction extends ArtifactDatabaseActionBase {
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 /**
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 * the logger, used to log exceptions and additonaly information
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 */
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 private static Logger log = Logger.getLogger(MapViewerCallAction.class);
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 /**
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 * Constructor
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 */
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 public MapViewerCallAction() {
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 super();
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 }
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 /**
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 * @see de.intevation.gnv.action.ArtifactDatabaseActionBase#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 */
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 @Override
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 public ActionForward execute(ActionMapping mapping, ActionForm form,
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 HttpServletRequest request,
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 HttpServletResponse response) throws Exception {
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 log.debug("MapViewerCallAction.execute");
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
53 InputStream inputStream = null;
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
54 String documentvalue = request.getParameter("document");
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
55 if (documentvalue != null){
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
56 inputStream = new ByteArrayInputStream(documentvalue.getBytes());
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
57 }else{
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
58 inputStream = request.getInputStream();
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
59 }
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
60
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 if (inputStream != null){
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 try {
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 ExternalCallParser ecp = new XMLExternalCallParser(inputStream);
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 ecp.parse();
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 String geometry = ecp.getGeometry();
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 String srs = ecp.getSRS();
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 Collection<MapService> mapServices = ecp.getMapServices();
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
69 Collection<ArtifactObject> availableFactories =
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
70 ArtifactDatabaseClientFactory
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 .getInstance()
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 .getArtifactDatabaseClient(getLocale(request))
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 .getArtifactFactoryMetaInformation(mapServices,
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 geometry,
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 srs);
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76
558
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
77 Collection<ArtifactObject> providedFactories =
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
78 ArtifactDatabaseClientFactory
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
79 .getInstance()
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
80 .getArtifactDatabaseClient(getLocale(request))
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
81 .getArtifactFactories();
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
82
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
83 // Sort out which ArtifactFactories should not be used.
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
84 Collection<ArtifactObject> usedFactories =
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
85 new ArrayList<ArtifactObject>(availableFactories.size());
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
86
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
87 Iterator<ArtifactObject> it = availableFactories.iterator();
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
88 while (it.hasNext()){
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
89 ArtifactObject ao = it.next();
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
90 if (providedFactories.contains(ao)){
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
91 usedFactories.add(ao);
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
92 }
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
93 }
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
94
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
95 SessionModel sm = SessionModelFactory
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
96 .getInstance()
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
97 .getSessionModel(request);
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
98 sm.resetModel();
8032da9e8b70 Added further business logic for the MapViewer-Interface
Tim Englich <tim.englich@intevation.de>
parents: 402
diff changeset
99 sm.setArtifacteFactories(usedFactories);
402
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 } catch (Exception e) {
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101 log.error(e,e);
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102 }
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 }else{
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104 log.error("Kein Anfragedokument übergeben.");
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
105 }
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 return super.execute(mapping, form, request, response);
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
107 }
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
108
b88e881e8e94 Added the first Implementation (not complete and not ready to use) for the Interface from the MapViewer to the GNV
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
109 }

http://dive4elements.wald.intevation.org