PointDecoder.java
package de.turnertech.ows.gml;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import de.turnertech.ows.srs.SpatialReferenceSystem;
public class PointDecoder implements GmlDecoder<Point> {
@Override
public Point decode(Node root, GmlDecoderContext context) {
Point returnElement = new Point();
Node srsNode = root.getAttributes().getNamedItem("srsName");
SpatialReferenceSystem srs = null;
if(srsNode != null) {
srs = SpatialReferenceSystem.from(srsNode.getNodeValue());
if(srs != null) {
context.getSrsDeque().push(srs);
}
}
NodeList children = root.getChildNodes();
for(int i = 0; i < children.getLength(); ++i) {
Node child = children.item(i);
if(child.getNodeType() != Node.ELEMENT_NODE) {
continue;
}
if("pos".equals(child.getNodeName())) {
DirectPosition pos = new DirectPositionDecoder().decode(child, context);
returnElement.setPos(pos);
}
}
if(srs != null) {
context.getSrsDeque().pop();
}
return returnElement;
}
}