use of org.n52.shetland.ogc.sos.SosObservationOffering in project arctic-sea by 52North.
the class CapabilitiesDecoder method decode.
@Override
@SuppressFBWarnings("NP_LOAD_OF_KNOWN_NULL_VALUE")
public SosCapabilities decode(Capabilities c) throws DecodingException {
if (c != null) {
OwsCapabilities owsCapabilities = parseCapabilitiesBaseType(SosConstants.SOS, c);
FilterCapabilities filterCapabilities = parseFilterCapabilities(c.getFilterCapabilities());
Collection<SosObservationOffering> contents = parseContents(c.getContents());
return new SosCapabilities(owsCapabilities, filterCapabilities, contents);
}
throw new UnsupportedDecoderInputException(this, c);
}
use of org.n52.shetland.ogc.sos.SosObservationOffering in project arctic-sea by 52North.
the class CapabilitiesDecoder method parseOffering.
private SosObservationOffering parseOffering(ObservationOfferingType obsOffType) {
SosObservationOffering observationOffering = new SosObservationOffering();
observationOffering.setOffering(obsOffType.getId());
observationOffering.setProcedures(parseProcedure(obsOffType));
observationOffering.setProcedureDescriptionFormat(parseProcedureDescriptionFormat(obsOffType));
observationOffering.setObservableProperties(parseObservableProperties(obsOffType));
observationOffering.setRelatedFeatures(parseRelatedFeatures(obsOffType));
observationOffering.setObservedArea(parseObservedArea(obsOffType));
observationOffering.setPhenomenonTime(parsePhenomenonTime(obsOffType));
observationOffering.setResultTime(parseResultTime(obsOffType));
observationOffering.setResponseFormats(parseResponseFormats(obsOffType));
observationOffering.setObservationTypes(parseObservationTypes(obsOffType));
observationOffering.setFeatureOfInterestTypes(parseFeatureOfInterestTypes(obsOffType));
return observationOffering;
}
use of org.n52.shetland.ogc.sos.SosObservationOffering in project arctic-sea by 52North.
the class CapabilitiesTypeDecoder method decode.
@Override
@SuppressFBWarnings("NP_LOAD_OF_KNOWN_NULL_VALUE")
public SosCapabilities decode(CapabilitiesType ct) throws DecodingException {
if (ct != null) {
OwsCapabilities owsCapabilities = parseCapabilitiesBaseType(SosConstants.SOS, ct);
FilterCapabilities filterCapabilities = parseFilterCapabilities(ct.getFilterCapabilities());
Collection<SosObservationOffering> contents = parseContents(ct.getContents());
return new SosCapabilities(owsCapabilities, filterCapabilities, contents);
}
throw new UnsupportedDecoderInputException(this, ct);
}
use of org.n52.shetland.ogc.sos.SosObservationOffering in project arctic-sea by 52North.
the class CapabilitiesTypeDecoder method parseOffering.
private SosObservationOffering parseOffering(AbstractContentsType.Offering offering) {
SosObservationOffering observationOffering = new SosObservationOffering();
if (offering.getDomNode().hasChildNodes()) {
final Node node = XmlHelper.getNodeFromNodeList(offering.getDomNode().getChildNodes());
try {
ObservationOfferingPropertyType offeringType = ObservationOfferingPropertyType.Factory.parse(node);
ObservationOfferingType obsOffPropType = offeringType.getObservationOffering();
observationOffering.setOffering(parseOffering(obsOffPropType));
observationOffering.setProcedures(parseProcedure(obsOffPropType));
observationOffering.setProcedureDescriptionFormat(parseProcedureDescriptionFormat(obsOffPropType));
observationOffering.setObservableProperties(parseObservableProperties(obsOffPropType));
observationOffering.setRelatedFeatures(parseRelatedFeatures(obsOffPropType));
observationOffering.setObservedArea(parseObservedArea(obsOffPropType));
observationOffering.setPhenomenonTime(parsePhenomenonTime(obsOffPropType));
observationOffering.setResultTime(parseResultTime(obsOffPropType));
observationOffering.setResponseFormats(parseResponseFormats(obsOffPropType));
observationOffering.setObservationTypes(parseObservationTypes(obsOffPropType));
observationOffering.setFeatureOfInterestTypes(parseFeatureOfInterestTypes(obsOffPropType));
observationOffering.setExtensions(parseOfferingExtension(obsOffPropType));
} catch (XmlException | DecodingException ex) {
LOGGER.error(ex.getLocalizedMessage(), ex);
}
}
return observationOffering;
}
use of org.n52.shetland.ogc.sos.SosObservationOffering in project arctic-sea by 52North.
the class SosV1GetCapabilitiesResponseEncoder method setContents.
/**
* Sets the content section to the Capabilities document.
*
* @param xbContents SOS 2.0 contents section
* @param offerings SOS offerings for contents
* @param version SOS response version
*
* @throws EncodingException * if an error occurs.
*/
protected void setContents(Contents xbContents, Collection<SosObservationOffering> offerings, String version) throws EncodingException {
// Contents xbContType = xbContents.addNewContents();
ObservationOfferingList xbObservationOfferings = xbContents.addNewObservationOfferingList();
for (SosObservationOffering offering : offerings) {
ObservationOfferingType xbObservationOffering = xbObservationOfferings.addNewObservationOffering();
// TODO check NAme or ID
xbObservationOffering.setId(NcName.makeValid(offering.getOffering().getIdentifier()));
// envelope
if (offering.isSetObservedArea()) {
xbObservationOffering.addNewBoundedBy().addNewEnvelope().set(encodeObjectToXml(GmlConstants.NS_GML, offering.getObservedArea()));
}
// set gml:name to offering's id (not ncname resolved)
for (CodeType name : offering.getOffering().getName()) {
xbObservationOffering.addNewName().set(encodeObjectToXml(GmlConstants.NS_GML, name));
}
// set up time
if (offering.getPhenomenonTime() instanceof TimePeriod) {
xbObservationOffering.addNewTime().set(encodeObjectToXml(SweConstants.NS_SWE_101, offering.getPhenomenonTime()));
}
offering.getObservableProperties().forEach(phenomenon -> xbObservationOffering.addNewObservedProperty().setHref(phenomenon));
offering.getFeatureOfInterestTypes().forEach(featureOfInterestType -> xbObservationOffering.addNewFeatureOfInterest().setHref(featureOfInterestType));
offering.getProcedureDescriptionFormats().forEach(procedureDescriptionFormat -> xbObservationOffering.addNewProcedure().setHref(procedureDescriptionFormat));
offering.getProcedures().forEach(procedure -> xbObservationOffering.addNewProcedure().setHref(procedure));
offering.getFeatureOfInterest().forEach(featureOfInterest -> xbObservationOffering.addNewFeatureOfInterest().setHref(featureOfInterest));
offering.getResultModels().forEach(xbObservationOffering::addResultModel);
offering.getResponseFormats().forEach(responseFormat -> xbObservationOffering.addNewResponseFormat().setStringValue(responseFormat));
offering.getResponseModes().forEach(responseMode -> xbObservationOffering.addNewResponseMode().setStringValue(responseMode));
}
}
Aggregations