Mercurial > dive4elements > gnv-client
comparison 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 |
comparison
equal
deleted
inserted
replaced
415:9f4a0b990d27 | 558:8032da9e8b70 |
---|---|
1 package de.intevation.gnv.action.mapviewer; | 1 package de.intevation.gnv.action.mapviewer; |
2 | 2 |
3 import java.io.ByteArrayInputStream; | |
3 import java.io.InputStream; | 4 import java.io.InputStream; |
5 import java.util.ArrayList; | |
4 import java.util.Collection; | 6 import java.util.Collection; |
7 import java.util.Iterator; | |
5 | 8 |
6 import javax.servlet.http.HttpServletRequest; | 9 import javax.servlet.http.HttpServletRequest; |
7 import javax.servlet.http.HttpServletResponse; | 10 import javax.servlet.http.HttpServletResponse; |
8 | 11 |
9 import org.apache.log4j.Logger; | 12 import org.apache.log4j.Logger; |
12 import org.apache.struts.action.ActionMapping; | 15 import org.apache.struts.action.ActionMapping; |
13 | 16 |
14 import de.intevation.gnv.action.ArtifactDatabaseActionBase; | 17 import de.intevation.gnv.action.ArtifactDatabaseActionBase; |
15 import de.intevation.gnv.action.mapviewer.parser.ExternalCallParser; | 18 import de.intevation.gnv.action.mapviewer.parser.ExternalCallParser; |
16 import de.intevation.gnv.action.mapviewer.parser.XMLExternalCallParser; | 19 import de.intevation.gnv.action.mapviewer.parser.XMLExternalCallParser; |
20 import de.intevation.gnv.action.sessionmodel.SessionModel; | |
21 import de.intevation.gnv.action.sessionmodel.SessionModelFactory; | |
17 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; | 22 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; |
23 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; | |
18 import de.intevation.gnv.artifactdatabase.objects.map.MapService; | 24 import de.intevation.gnv.artifactdatabase.objects.map.MapService; |
19 | 25 |
20 /** | 26 /** |
21 * | 27 * |
22 * @author Tim Englich <tim.englich@intevation.de> | 28 * @author Tim Englich <tim.englich@intevation.de> |
42 @Override | 48 @Override |
43 public ActionForward execute(ActionMapping mapping, ActionForm form, | 49 public ActionForward execute(ActionMapping mapping, ActionForm form, |
44 HttpServletRequest request, | 50 HttpServletRequest request, |
45 HttpServletResponse response) throws Exception { | 51 HttpServletResponse response) throws Exception { |
46 log.debug("MapViewerCallAction.execute"); | 52 log.debug("MapViewerCallAction.execute"); |
47 InputStream inputStream = request.getInputStream(); | 53 InputStream inputStream = null; |
54 String documentvalue = request.getParameter("document"); | |
55 if (documentvalue != null){ | |
56 inputStream = new ByteArrayInputStream(documentvalue.getBytes()); | |
57 }else{ | |
58 inputStream = request.getInputStream(); | |
59 } | |
60 | |
48 if (inputStream != null){ | 61 if (inputStream != null){ |
49 try { | 62 try { |
50 ExternalCallParser ecp = new XMLExternalCallParser(inputStream); | 63 ExternalCallParser ecp = new XMLExternalCallParser(inputStream); |
51 ecp.parse(); | 64 ecp.parse(); |
52 String geometry = ecp.getGeometry(); | 65 String geometry = ecp.getGeometry(); |
53 String srs = ecp.getSRS(); | 66 String srs = ecp.getSRS(); |
54 Collection<MapService> mapServices = ecp.getMapServices(); | 67 Collection<MapService> mapServices = ecp.getMapServices(); |
55 | 68 |
56 ArtifactDatabaseClientFactory | 69 Collection<ArtifactObject> availableFactories = |
70 ArtifactDatabaseClientFactory | |
57 .getInstance() | 71 .getInstance() |
58 .getArtifactDatabaseClient(getLocale(request)) | 72 .getArtifactDatabaseClient(getLocale(request)) |
59 .getArtifactFactoryMetaInformation(mapServices, | 73 .getArtifactFactoryMetaInformation(mapServices, |
60 geometry, | 74 geometry, |
61 srs); | 75 srs); |
62 | 76 |
63 // 2. Call Artifactfactories. | 77 Collection<ArtifactObject> providedFactories = |
64 // 3. Sort out which ArtifactFactories should not be used. | 78 ArtifactDatabaseClientFactory |
65 // 4. Store the retrieved Parameter to each ArtifactFactory | 79 .getInstance() |
80 .getArtifactDatabaseClient(getLocale(request)) | |
81 .getArtifactFactories(); | |
82 | |
83 // Sort out which ArtifactFactories should not be used. | |
84 Collection<ArtifactObject> usedFactories = | |
85 new ArrayList<ArtifactObject>(availableFactories.size()); | |
86 | |
87 Iterator<ArtifactObject> it = availableFactories.iterator(); | |
88 while (it.hasNext()){ | |
89 ArtifactObject ao = it.next(); | |
90 if (providedFactories.contains(ao)){ | |
91 usedFactories.add(ao); | |
92 } | |
93 } | |
94 | |
95 SessionModel sm = SessionModelFactory | |
96 .getInstance() | |
97 .getSessionModel(request); | |
98 sm.resetModel(); | |
99 sm.setArtifacteFactories(usedFactories); | |
66 } catch (Exception e) { | 100 } catch (Exception e) { |
67 log.error(e,e); | 101 log.error(e,e); |
68 } | 102 } |
69 }else{ | 103 }else{ |
70 log.error("Kein Anfragedokument übergeben."); | 104 log.error("Kein Anfragedokument übergeben."); |