/** * Wraps a map in case insensitive one. * * <p>If the instance is already a case insensitive map it is returned as is. */ public static Map wrap(Map other) { if (other instanceof CaseInsensitiveMap) { return other; } return new CaseInsensitiveMap(other); } }
protected Map caseInsensitiveKvp(Map input) { // make it case insensitive like the servlet+dispatcher maps Map result = new HashMap(); for (Iterator it = input.keySet().iterator(); it.hasNext(); ) { String key = (String) it.next(); result.put(key.toUpperCase(), input.get(key)); } return new CaseInsensitiveMap(result); }
protected Map caseInsensitiveKvp(HashMap input) { // make it case insensitive like the servlet+dispatcher maps Map result = new HashMap(); for (Iterator it = input.keySet().iterator(); it.hasNext(); ) { String key = (String) it.next(); result.put(key.toUpperCase(), input.get(key)); } return new CaseInsensitiveMap(result); } }
public Object parse(String value) throws Exception { List parsers = GeoServerExtensions.extensions(KvpParser.class, applicationContext); Map formatOptions = new CaseInsensitiveMap(new TreeMap());
@Test public void testWholeMap() { Map source = new HashMap(); source.put("AbC", "test"); CaseInsensitiveMap cim = new CaseInsensitiveMap(source); assertEquals("test", cim.get("abc")); } }
Map<String, FileItem> kvpFileItems = new CaseInsensitiveMap(new LinkedHashMap()); try { for (FileItem item : (List<FileItem>) up.parseRequest(httpRequest)) {
@SuppressWarnings("unchecked") public void putHttpRequestHeader(String headerName, String value) { if (httpRequestHeaders == null) { httpRequestHeaders = new CaseInsensitiveMap(new HashMap<String, String>()); } httpRequestHeaders.put(headerName, value); }
private Map<String, DimensionDescriptor> getDimensionDescriptors( StructuredGridCoverage2DReader reader, String coverageName) throws IOException { Map<String, DimensionDescriptor> result = new HashMap<String, DimensionDescriptor>(); List<DimensionDescriptor> dimensionDescriptors = reader.getDimensionDescriptors(coverageName); for (DimensionDescriptor dd : dimensionDescriptors) { result.put(dd.getName(), dd); } return new CaseInsensitiveMap(result); }
protected Map caseInsensitiveKvp(HashMap input) { // make it case insensitive like the servlet+dispatcher maps Map result = new HashMap(); for (Iterator it = input.keySet().iterator(); it.hasNext(); ) { String key = (String) it.next(); result.put(key.toUpperCase(), input.get(key)); } return new CaseInsensitiveMap(result); } }
protected Map caseInsensitiveKvp(HashMap input) { // make it case insensitive like the servlet+dispatcher maps Map result = new HashMap(); for (Iterator it = input.keySet().iterator(); it.hasNext(); ) { String key = (String) it.next(); result.put(key.toUpperCase(), input.get(key)); } return new CaseInsensitiveMap(result); }
private RenderedImageMap renderInternalLayer(Layer layer, Map kvpTemplate) throws Exception { GetMapRequest request = getMapReader.createRequest(); // prepare raw and parsed KVP maps to mimick a GetMap request CaseInsensitiveMap rawKvp = new CaseInsensitiveMap(new HashMap()); rawKvp.putAll(kvpTemplate); rawKvp.put("format", "image/png"); // fake format, we are building a RenderedImage rawKvp.put("layers", layer.getName()); for (Parameter parameter : layer.getParameters()) { rawKvp.put(parameter.key, parameter.value); } // for merging layers, unless the request stated otherwise rawKvp.putIfAbsent("transparent", "true"); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Internal render of map with key/value params: " + rawKvp); } CaseInsensitiveMap kvp = new CaseInsensitiveMap(new HashMap()); kvp.putAll(rawKvp); List<Throwable> exceptions = KvpUtils.parse(kvp); if (exceptions != null && exceptions.size() > 0) { throw new WPSException( "Failed to build map for layer: " + layer.getName(), exceptions.get(0)); } // parse getMapReader.read(request, kvp, rawKvp); // render GetMap mapBuilder = new GetMap(wms); return (RenderedImageMap) mapBuilder.run(request); }
/** * Simulates what the Dispatcher is doing when parsing a KVP request * * @param href * @param reader */ protected Object kvpParse(String href, KvpRequestReader reader) throws Exception { Map original = new KvpMap(KvpUtils.parseQueryString(href)); KvpUtils.normalize(original); Map parsed = new KvpMap(original); List<Throwable> errors = KvpUtils.parse(parsed); if (errors.size() > 0) { throw new WPSException("Failed to parse KVP request", errors.get(0)); } // hack to allow wcs filters to work... we should really upgrade the WCS models instead... Request r = Dispatcher.REQUEST.get(); if (r != null) { Map kvp = new HashMap(r.getKvp()); r.setKvp(new CaseInsensitiveMap(parsed)); } return reader.read(reader.createRequest(), parsed, original); }
/** * Simulates what the Dispatcher is doing when parsing a KVP request * * @param href * @param reader * @return */ Object kvpParse(String href, KvpRequestReader reader) throws Exception { Map original = new KvpMap(KvpUtils.parseQueryString(href)); KvpUtils.normalize(original); Map parsed = new KvpMap(original); List<Throwable> errors = KvpUtils.parse(parsed); if (errors.size() > 0) { throw new WPSException("Failed to parse KVP request", errors.get(0)); } // hack to allow wcs filters to work... we should really upgrade the WCS models instead... Request r = Dispatcher.REQUEST.get(); if (r != null) { Map kvp = new HashMap(r.getKvp()); r.setKvp(new CaseInsensitiveMap(parsed)); } return reader.read(reader.createRequest(), parsed, original); }
@SuppressWarnings("unchecked") protected GetCoverageType parse(String url) throws Exception { Map<String, Object> rawKvp = new CaseInsensitiveMap(KvpUtils.parseQueryString(url)); Map<String, Object> kvp = new CaseInsensitiveMap(parseKvp(rawKvp)); WCS20GetCoverageRequestReader reader = new WCS20GetCoverageRequestReader(); GetCoverageType gc = (GetCoverageType) reader.createRequest(); return (GetCoverageType) reader.read(gc, kvp, rawKvp); }
@SuppressWarnings("unchecked") protected GetCoverageType parse(String url) throws Exception { Map<String, Object> rawKvp = new CaseInsensitiveMap(KvpUtils.parseQueryString(url)); Map<String, Object> kvp = new CaseInsensitiveMap(parseKvp(rawKvp)); WCS20GetCoverageRequestReader reader = new WCS20GetCoverageRequestReader(); GetCoverageType gc = (GetCoverageType) reader.createRequest(); return (GetCoverageType) reader.read(gc, kvp, rawKvp); }
@Test public void testExpandRequestVariable() throws Exception { // setup environment Request request = new Request(); Map kvp = new CaseInsensitiveMap(new HashMap()); kvp.put("time", "2008-10-31T00:00:00.000Z"); request.setRawKvp(kvp); Dispatcher.REQUEST.set(request); TextDecoration decoration = new TextDecoration(); Map<String, String> options = new HashMap<>(); options.put( "message", "<#setting datetime_format=\"yyyy-MM-dd'T'HH:mm:ss.SSSX\">\n" + "<#setting locale=\"en_US\">\n" + "<#setting time_zone=\"GMT\">" + "<#if time??>\n" + "${time?datetime?string[\"dd.MM.yyyy\"]}" + "</#if>"); decoration.loadOptions(options); GetMapRequest getMap = new GetMapRequest(); WMSMapContent wmsMapContent = new WMSMapContent(getMap); String message = decoration.evaluateMessage(wmsMapContent); assertEquals("31.10.2008", message); } }
void encodeKMLLink(Folder container, Layer layer, String name, int drawOrder, Envelope box) { // copy the format options CaseInsensitiveMap fo = new CaseInsensitiveMap(new HashMap()); fo.putAll(mapContent.getRequest().getFormatOptions()); // we want to pass through format options except for superoverlay, we need to // turn it off so we get actual placemarks back, and not more links fo.remove("superoverlay"); // get the regionate mode String overlayMode = (String) fo.get("overlayMode"); if ("overview".equalsIgnoreCase(overlayMode)) { // overview mode, turn off regionation fo.remove("regionateBy"); } else { // specify regionateBy=auto if not specified if (!fo.containsKey("regionateBy")) { fo.put("regionateBy", "auto"); } } String foEncoded = WMSRequests.encodeFormatOptions(fo); // encode the link NetworkLink nl = container.createAndAddNetworkLink(); nl.setName(name); addRegion(nl, box, 128, -1); nl.setVisibility(true); Link link = nl.createAndSetLink(); String url = WMSRequests.getGetMapUrl(request, layer, 0, box, new String[] { "width", "256", "height", "256", "format_options", foEncoded, "superoverlay", "true"}); link.setHref(url); }
/** * See GEOS-5003 */ public void testNullsInDimensionAndTimeParameters() throws Exception { TileLayerInfoUtil.updateAcceptAllFloatParameterFilter(tileLayerInfo, "ELEVATION", true); TileLayerInfoUtil.updateAcceptAllRegExParameterFilter(tileLayerInfo, "TIME", true); tileLayer = new GeoServerTileLayer(layer, gridSetBroker, tileLayerInfo); GetMapRequest request = new GetMapRequest(); @SuppressWarnings("unchecked") Map<String, String> rawKvp = new CaseInsensitiveMap(new HashMap<String, String>()); request.setRawKvp(rawKvp); StringBuilder target = new StringBuilder(); boolean cachingPossible; request.setElevation(Arrays.asList((Object) null)); cachingPossible = mediator.isCachingPossible(tileLayer, request, target); assertTrue(cachingPossible); assertEquals(0, target.length()); request.setElevation(Collections.emptyList()); request.setTime(Arrays.asList((Object) null)); cachingPossible = mediator.isCachingPossible(tileLayer, request, target); assertTrue(cachingPossible); assertEquals(0, target.length()); }
Map<String, String> rawKvp = new CaseInsensitiveMap(new HashMap<String, String>()); request.setRawKvp(rawKvp);
Map<String, String> rawKvp = new CaseInsensitiveMap(new HashMap<String, String>()); request.setRawKvp(rawKvp); request.setFormat("image/png");