use of org.n52.shetland.ogc.ows.extension.Extension in project arctic-sea by 52North.
the class SwesExtensionDecoderv20 method decode.
@Override
public SwesExtension<?> decode(XmlObject xmlObject) throws DecodingException, UnsupportedDecoderInputException {
if (isSwesExtension(xmlObject)) {
XmlObject[] children = xmlObject.selectPath("./*");
if (children.length == 1) {
Object xmlObj = decodeXmlElement(children[0]);
if (xmlObj instanceof SweAbstractDataComponent) {
SwesExtension<SweAbstractDataComponent> extension = new SwesExtension<>();
extension.setValue((SweAbstractDataComponent) xmlObj);
return extension;
}
}
}
throw new UnsupportedDecoderXmlInputException(this, xmlObject);
}
use of org.n52.shetland.ogc.ows.extension.Extension in project arctic-sea by 52North.
the class SwesExtensionEncoderv20Test method shouldEncodeSweTypeBoolean.
@Test
public void shouldEncodeSweTypeBoolean() throws EncodingException {
String identifier = "test-identifier";
String definition = "test-definition";
Boolean value = Boolean.TRUE;
SweBoolean sweBoolean = new SweBoolean();
sweBoolean.setDefinition(definition);
sweBoolean.setIdentifier(identifier);
sweBoolean.setValue(value);
SwesExtension<SweBoolean> extension = new SwesExtension<>();
extension.setValue(sweBoolean);
XmlObject encodedObject = encoder.encode(extension);
Assert.assertThat(encodedObject, Matchers.instanceOf(BooleanPropertyType.class));
BooleanType xbBoolean = ((BooleanPropertyType) encodedObject).getBoolean();
Assert.assertThat(xbBoolean.getDefinition(), Is.is(definition));
Assert.assertThat(xbBoolean.getIdentifier(), Is.is(identifier));
Assert.assertThat(xbBoolean.getValue(), Is.is(value));
}
use of org.n52.shetland.ogc.ows.extension.Extension in project arctic-sea by 52North.
the class SosDecoderv20Test method should_decode_text_swesExtensions.
@Test
public void should_decode_text_swesExtensions() throws XmlException, OwsExceptionReport, DecodingException {
final GetObservationDocument doc = GetObservationDocument.Factory.parse("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<sos:GetObservation service=\"SOS\" version=\"2.0.0\"\n" + " xmlns:sos=\"http://www.opengis.net/sos/2.0\"\n" + " xmlns:swe=\"http://www.opengis.net/swe/2.0\"\n" + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n" + " xmlns:swes=\"http://www.opengis.net/swes/2.0\"\n" + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sos.xsd\">\n" + " <swes:extension>\n" + " <swe:Text definition=\"my-text-extension\">\n" + " <swe:value>true</swe:value>\n" + " </swe:Text>\n" + " </swes:extension>\n" + "</sos:GetObservation>");
final OwsServiceCommunicationObject decodedObject = decoder.decode(doc);
assertThat(decodedObject, instanceOf(GetObservationRequest.class));
final GetObservationRequest request = (GetObservationRequest) decodedObject;
assertThat(request.getExtension("my-text-extension").map(e -> e.getValue()).map(v -> (SweText) v).map(v -> v.getValue()).orElse(null), is("true"));
}
Aggregations