/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.gwt2.plugin.wms.client.capabilities.v1_1_1; import com.google.gwt.xml.client.Element; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; import org.geomajas.gwt2.client.service.AbstractXmlNodeWrapper; import org.geomajas.gwt2.plugin.wms.client.service.WmsService; import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsRequestInfo; import java.util.ArrayList; import java.util.List; /** * Implementation of the {@link org.geomajas.gwt2.plugin.wms.client.capabilities.WmsRequestInfo} for WMS version 1.1.1. * * @author Pieter De Graef */ public class WmsRequestInfo111 extends AbstractXmlNodeWrapper implements WmsRequestInfo { private static final long serialVersionUID = 100L; private List<String> formats = new ArrayList<String>(); private WmsService.WmsRequest request; public WmsRequestInfo111(Node node) { super(node); } @Override public WmsService.WmsRequest getRequestType() { if (request == null) { parse(getNode()); } return request; } @Override public List<String> getFormats() { if (request == null) { parse(getNode()); } return formats; } protected void parse(Node node) { if (node instanceof Element) { formats = new ArrayList<String>(); Element formatListEl = (Element) node; NodeList formatList = formatListEl.getElementsByTagName("Format"); for (int i = 0; i < formatList.getLength(); i++) { Node formatNode = formatList.item(i); formats.add(getValueRecursive(formatNode)); } } request = WmsService.WmsRequest.fromString(node.getNodeName()); } }