use of org.codice.ddf.spatial.ogc.catalog.common.converter.XmlNode in project ddf by codice.
the class AbstractFeatureConverter method getValueForMetacardAttribute.
protected Serializable getValueForMetacardAttribute(AttributeFormat attributeFormat, HierarchicalStreamReader reader) {
Serializable ser = null;
switch(attributeFormat) {
case BOOLEAN:
ser = Boolean.valueOf(reader.getValue());
break;
case DOUBLE:
ser = Double.valueOf(reader.getValue());
break;
case FLOAT:
ser = Float.valueOf(reader.getValue());
break;
case INTEGER:
ser = Integer.valueOf(reader.getValue());
break;
case LONG:
ser = Long.valueOf(reader.getValue());
break;
case SHORT:
ser = Short.valueOf(reader.getValue());
break;
case XML:
case STRING:
ser = reader.getValue();
break;
case GEOMETRY:
XmlNode node = new XmlNode(reader);
String xml = node.toString();
GMLReader gmlReader = new GMLReader();
Geometry geo = null;
try {
geo = gmlReader.read(xml, null);
if (StringUtils.isNotBlank(srs) && !srs.equals(GeospatialUtil.EPSG_4326)) {
geo = GeospatialUtil.transformToEPSG4326LonLatFormat(geo, srs);
}
} catch (SAXException | IOException | ParserConfigurationException | GeoFormatException e) {
geo = null;
LOGGER.debug(ERROR_PARSING_MESSAGE, e);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
ser = wktWriter.write(geo);
}
break;
case BINARY:
try {
ser = reader.getValue().getBytes(UTF8_ENCODING);
} catch (UnsupportedEncodingException e) {
LOGGER.debug("Error encoding the binary value into the metacard.", e);
}
break;
case DATE:
ser = parseDateFromXml(reader);
break;
default:
break;
}
return ser;
}
use of org.codice.ddf.spatial.ogc.catalog.common.converter.XmlNode in project ddf by codice.
the class GmlGeometryConverter method unmarshal.
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
XmlNode gmlNode = new XmlNode(reader);
GMLReader gmlReader = new GMLReader();
Geometry geo = null;
try {
geo = gmlReader.read(gmlNode.toString(), null);
} catch (SAXException | IOException | ParserConfigurationException e) {
LOGGER.debug(ERROR_PARSING_MSG, e);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
return wktWriter.write(geo);
}
return null;
}
use of org.codice.ddf.spatial.ogc.catalog.common.converter.XmlNode in project ddf by codice.
the class AbstractFeatureConverterWfs20 method getValueForMetacardAttribute.
protected Serializable getValueForMetacardAttribute(AttributeFormat attributeFormat, HierarchicalStreamReader reader) {
Serializable ser = null;
switch(attributeFormat) {
case BOOLEAN:
ser = Boolean.valueOf(reader.getValue());
break;
case DOUBLE:
ser = Double.valueOf(reader.getValue());
break;
case FLOAT:
ser = Float.valueOf(reader.getValue());
break;
case INTEGER:
ser = Integer.valueOf(reader.getValue());
break;
case LONG:
ser = Long.valueOf(reader.getValue());
break;
case SHORT:
ser = Short.valueOf(reader.getValue());
break;
case XML:
case STRING:
ser = reader.getValue();
break;
case GEOMETRY:
XmlNode node = new XmlNode(reader);
String geometryXml = node.toString();
Geometry geo = null;
geo = (Geometry) readGml(geometryXml);
LOGGER.debug("coordinateOrder = {}", coordinateOrder);
if (GeospatialUtil.LAT_LON_ORDER.equals(coordinateOrder)) {
swapCoordinates(geo);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
ser = wktWriter.write(geo);
LOGGER.debug("wkt = {}", ser);
}
break;
case BINARY:
try {
ser = reader.getValue().getBytes(UTF8_ENCODING);
} catch (UnsupportedEncodingException e) {
LOGGER.debug("Error encoding the binary value into the metacard.", e);
}
break;
case DATE:
ser = parseDateFromXml(reader);
break;
default:
break;
}
return ser;
}
Aggregations