use of org.n52.shetland.ogc.gml.ReferenceType in project arctic-sea by 52North.
the class OmDecoderv20 method getResult.
private ObservationValue<?> getResult(OMObservationType omObservation) throws DecodingException {
XmlObject xbResult = omObservation.getResult();
if (xbResult.schemaType() == XmlAnyTypeImpl.type) {
// Template observation for InsertResultTemplate operation
if (!xbResult.getDomNode().hasChildNodes()) {
return new SingleObservationValue<>(new NilTemplateValue());
} else {
try {
xbResult = XmlObject.Factory.parse(xbResult.xmlText().trim());
} catch (XmlException e) {
LOGGER.error("Error while parsing NamedValueValue", e);
}
}
}
if (xbResult.schemaType() == XmlBoolean.type) {
// TruthObservation
XmlBoolean xbBoolean = (XmlBoolean) xbResult;
BooleanValue booleanValue = new BooleanValue(xbBoolean.getBooleanValue());
return new SingleObservationValue<>(booleanValue);
} else if (xbResult.schemaType() == XmlInteger.type) {
// CountObservation
XmlInteger xbInteger = (XmlInteger) xbResult;
CountValue countValue = new CountValue(Integer.parseInt(xbInteger.getBigIntegerValue().toString()));
return new SingleObservationValue<>(countValue);
} else if (xbResult.schemaType() == XmlString.type) {
// TextObservation
XmlString xbString = (XmlString) xbResult;
TextValue stringValue = new TextValue(xbString.getStringValue());
return new SingleObservationValue<>(stringValue);
} else {
// result elements with other encoding like SWE_ARRAY_OBSERVATION
Object decodedObject = decodeXmlObject(xbResult);
if (decodedObject instanceof ObservationValue) {
return (ObservationValue<?>) decodedObject;
} else if (decodedObject instanceof GmlMeasureType) {
GmlMeasureType measureType = (GmlMeasureType) decodedObject;
QuantityValue quantitiyValue = new QuantityValue(measureType.getValue(), measureType.getUnit());
return new SingleObservationValue<>(quantitiyValue);
} else if (decodedObject instanceof ReferenceType) {
if (omObservation.isSetType() && omObservation.getType().isSetHref() && omObservation.getType().getHref().equals(OmConstants.OBS_TYPE_REFERENCE_OBSERVATION)) {
return new SingleObservationValue<>(new ReferenceValue((ReferenceType) decodedObject));
}
return new SingleObservationValue<>(new CategoryValue(((ReferenceType) decodedObject).getHref()));
} else if (decodedObject instanceof Geometry) {
return new SingleObservationValue<>(new GeometryValue((Geometry) decodedObject));
} else if (decodedObject instanceof AbstractGeometry) {
SingleObservationValue<Geometry> result = new SingleObservationValue<>();
result.setValue(new GeometryValue(((AbstractGeometry) decodedObject).getGeometry()));
return result;
} else if (decodedObject instanceof SweDataArray) {
return new SingleObservationValue<>(new SweDataArrayValue((SweDataArray) decodedObject));
} else if (decodedObject instanceof SweDataRecord) {
return new SingleObservationValue<>(new ComplexValue((SweDataRecord) decodedObject));
}
throw new DecodingException(Sos2Constants.InsertObservationParams.observation, "The requested result type '{}' is not supported by this service!", decodedObject.getClass().getSimpleName());
}
}
use of org.n52.shetland.ogc.gml.ReferenceType in project arctic-sea by 52North.
the class RelatedOfferingTypeDecoder method parseRelatedOffering.
private OfferingContext parseRelatedOffering(RelatedOffering relatedOffering) throws DecodingException {
ReferenceType role = decodeXmlElement(relatedOffering.getOfferingContext().getRole());
ReferenceType relOff = decodeXmlElement(relatedOffering.getOfferingContext().getRelatedOffering());
return new OfferingContext(role, relOff);
}
use of org.n52.shetland.ogc.gml.ReferenceType in project arctic-sea by 52North.
the class WmlObservationProcessDecoderv20Test method getReferencedNamedValue.
private NamedValue<ReferenceType> getReferencedNamedValue() {
NamedValue<ReferenceType> nv = new NamedValue<ReferenceType>();
nv.setName(getNameValueOfferingName());
nv.setValue(new ReferenceValue(new ReferenceType(REF_OFFERING)));
return nv;
}
use of org.n52.shetland.ogc.gml.ReferenceType in project arctic-sea by 52North.
the class WmlTVPEncoderv20Test method shouldEncodeInterpolationType.
@Test
public void shouldEncodeInterpolationType() throws EncodingException, XmlException {
final InterpolationType type = WaterMLConstants.InterpolationType.MinPrec;
mv.setDefaultPointMetadata(new DefaultPointMetadata().setDefaultTVPMeasurementMetadata(new DefaultTVPMeasurementMetadata().setInterpolationtype(type)));
XmlObject encodedElement = encoder.encode(mv);
TVPDefaultMetadataPropertyType defaultPointMetadata = ((MeasurementTimeseriesDocument) encodedElement).getTimeseries().getDefaultPointMetadataArray(0);
DefaultTVPMeasurementMetadataDocument tvpMeasurementMetadataDocument = DefaultTVPMeasurementMetadataDocument.Factory.parse(defaultPointMetadata.xmlText());
ReferenceType interpolationType = tvpMeasurementMetadataDocument.getDefaultTVPMeasurementMetadata().getInterpolationType();
Assert.assertThat(interpolationType.getHref(), Is.is("http://www.opengis.net/def/waterml/2.0/interpolationType/MinPrec"));
Assert.assertThat(interpolationType.getTitle(), Is.is("MinPrec"));
}
use of org.n52.shetland.ogc.gml.ReferenceType in project arctic-sea by 52North.
the class ObservationDecoder method parseNamedValue.
private NamedValue<?> parseNamedValue(JsonNode parameter) throws DecodingException {
JsonNode namedValue = parameter.path(JSONConstants.NAMED_VALUE);
NamedValue<?> nv = parseNamedValueValue(namedValue.path(JSONConstants.VALUE));
ReferenceType referenceType = new ReferenceType(namedValue.path(JSONConstants.NAME).asText());
nv.setName(referenceType);
return nv;
}
Aggregations