/*
* 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.Node;
import com.google.gwt.xml.client.NodeList;
import org.geomajas.gwt2.client.service.AbstractXmlNodeWrapper;
import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsLayerLegendUrlInfo;
import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsLayerStyleInfo;
/**
* Implementation of the {@link WmsLayerStyleInfo} for WMS version 1.1.1.
*
* @author Pieter De Graef
*/
public class WmsLayerStyleInfo111 extends AbstractXmlNodeWrapper implements WmsLayerStyleInfo {
private static final long serialVersionUID = 100L;
private String name;
private String title;
private String abstractt;
private WmsLayerLegendUrlInfo legendUrl;
public WmsLayerStyleInfo111(Node node) {
super(node);
}
public String getName() {
if (name == null) {
parse(getNode());
}
return name;
}
public String getTitle() {
if (title == null) {
parse(getNode());
}
return title;
}
public String getAbstract() {
if (abstractt == null) {
parse(getNode());
}
return abstractt;
}
public WmsLayerLegendUrlInfo getLegendUrl() {
if (legendUrl == null) {
parse(getNode());
}
return legendUrl;
}
// ------------------------------------------------------------------------
// AbstractNodeInfo implementation:
// ------------------------------------------------------------------------
protected void parse(Node node) {
NodeList childNodes = node.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node child = childNodes.item(i);
String nodeName = child.getNodeName();
if ("Name".equalsIgnoreCase(nodeName)) {
name = getValueRecursive(child);
} else if ("Title".equalsIgnoreCase(nodeName)) {
title = getValueRecursive(child);
} else if ("Abstract".equalsIgnoreCase(nodeName)) {
abstractt = getValueRecursive(child);
} else if ("LegendURL".equalsIgnoreCase(nodeName)) {
legendUrl = createLegendInfo(child);
}
}
}
protected WmsLayerLegendUrlInfo createLegendInfo(Node node) {
return new WmsLayerLegendUrlInfo111(node);
}
}