Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 3497:88feb3347aa5
Implement a ProxyServlet
Implement a ProxyServlet to be able to restrict the access to the
mapserver too. All queries to the provided map services should go throught
this new ProxyServlet. Currently the ProxyServlet can only handle HTTP GET
requests.
flys-client/trunk@5221 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Bjoern Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Thu, 16 Aug 2012 14:42:36 +0000 |
parents | 01b18db3b288 |
children |
line wrap: on
line source
package de.intevation.flys.client.shared.model; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.HashMap; import java.io.Serializable; public class ToLoad implements Serializable { public class StringPair { public String first; public String second; public StringPair(String first, String second) { this.first = first; this.second = second; } public int hashCode() { return first.hashCode() + second.hashCode(); } public boolean equals(StringPair other) { return (this.second.equals(other.second)) && (this.first.equals(other.first)); } } public static final String SYNTHETIC_KEY = "key-"; protected Map<String, Map<StringPair, ArtifactFilter>> artifacts; public ToLoad() { artifacts = new HashMap<String, Map<StringPair, ArtifactFilter>>(); } public static final String uniqueKey(Map<?, ?> map) { int idx = map.size(); String key = SYNTHETIC_KEY + idx; while (map.containsKey(key)) { key = SYNTHETIC_KEY + ++idx; } return key; } public void add( String artifactName, String factory, String out, String name, String ids, String displayName ) { if (artifactName == null) { artifactName = uniqueKey(artifacts); } Map<StringPair, ArtifactFilter> artifact = artifacts.get(artifactName); if (artifact == null) { artifact = new HashMap<StringPair, ArtifactFilter>(); artifacts.put(artifactName, artifact); } ArtifactFilter filter = artifact.get(factory); if (filter == null) { filter = new ArtifactFilter(factory); artifact.put(new StringPair(factory, displayName), filter); } filter.add(out, name, ids); } public boolean isEmpty() { return artifacts.isEmpty(); } public List<Recommendation> toRecommendations() { List<Recommendation> recommendations = new ArrayList<Recommendation>(); for (Map.Entry<String, Map<StringPair, ArtifactFilter>> all: artifacts.entrySet() ) { String masterArtifact = all.getKey(); if (masterArtifact.startsWith(SYNTHETIC_KEY)) { // system data masterArtifact = null; } for (Map.Entry<StringPair, ArtifactFilter> entry: all.getValue().entrySet() ) { StringPair pair = entry.getKey(); String factory = pair.first; ArtifactFilter artifactFilter = entry.getValue(); String ids; Recommendation.Filter filter; if (masterArtifact == null) { // system data ids = artifactFilter.collectIds(); filter = null; } else { // user specific ids = null; filter = artifactFilter.toFilter(); } Recommendation recommendation = new Recommendation( factory, ids, masterArtifact, filter); recommendation.setDisplayName(pair.second); recommendations.add(recommendation); } } return recommendations; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :