@Override protected void encodeResponse(ObjectNode json, GetDataAvailabilityResponse t) throws EncodingException { ArrayNode a = json.putArray(GetDataAvailabilityConstants.DATA_AVAILABILITY); for (DataAvailability da : t.getDataAvailabilities()) { ObjectNode objectNode = a.addObject(); objectNode.put(JSONConstants.FEATURE_OF_INTEREST, da.getFeatureOfInterest().getHref()) .put(JSONConstants.PROCEDURE, da.getProcedure().getHref()) .put(JSONConstants.OBSERVED_PROPERTY, da.getObservedProperty().getHref()) .set(JSONConstants.PHENOMENON_TIME, encodeObjectToJson(da.getPhenomenonTime())); if (t.isSetResponseFormat() && GetDataAvailabilityConstants.NS_GDA_20.equals(t.getResponseFormat())) { if (da.isSetOffering()) { objectNode.put(JSONConstants.OFFERING, da.getOffering().getHref()); } if (da.isSetFormatDescriptors()) { ObjectNode fdNode = objectNode.putObject(GetDataAvailabilityConstants.FORMAT_DESCRIPTOR); encodeProcedureFormatDescriptor(da.getFormatDescriptor().getProcedureDescriptionFormatDescriptor(), fdNode); encodeObservationFormatDescriptor(da.getFormatDescriptor().getObservationFormatDescriptors(), fdNode); } } if (da.isSetCount()) { objectNode.put(JSONConstants.COUNT, da.getCount()); } } }
@Override protected void wirteDataAvailabilityMember(DataAvailability da) throws XMLStreamException, EncodingException { start(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_MEMBER); attr(GmlConstants.QN_ID_32, DATA_AVAILABILITY_PREFIX + dataAvailabilityCount++); writeProcedure(da, GetDataAvailabilityConstants.GDA_PROCEDURE); writeObservedProperty(da, GetDataAvailabilityConstants.GDA_OBSERVED_PROPERTY); writeFeatureOfInterest(da, GetDataAvailabilityConstants.GDA_FEATURE_OF_INTEREST); writePhenomenonTime(da, GetDataAvailabilityConstants.GDA_PHENOMENON_TIME); if (da.isSetCount()) { writeCount(da.getCount(), GetDataAvailabilityConstants.GDA_COUNT); } if (da.isSetResultTime()) { writeResultTimes(da.getResultTimes(), GetDataAvailabilityConstants.GDA_EXTENSION); } if (da.isSetOffering()) { writeOffering(da.getOffering(), GetDataAvailabilityConstants.GDA_EXTENSION); } if (da.isSetFormatDescriptors()) { Set<String> observationTypes = da.getFormatDescriptor().getObservationFormatDescriptors().stream() .map(ObservationFormatDescriptor::getObservationTypes).flatMap(Set::stream).collect(toSet()); writeObservationTypes(observationTypes); } if (da.isSetMetadata()) { writeMetadata(da.getMetadata(), GetDataAvailabilityConstants.GDA_EXTENSION); } end(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_MEMBER); }
@Override protected void wirteDataAvailabilityMember(DataAvailability da) throws XMLStreamException, EncodingException { start(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_MEMBER); attr(GmlConstants.QN_ID_32, DATA_AVAILABILITY_PREFIX + dataAvailabilityCount++); writeProcedure(da, GetDataAvailabilityConstants.GDA_PROCEDURE); writeObservedProperty(da, GetDataAvailabilityConstants.GDA_OBSERVED_PROPERTY); writeFeatureOfInterest(da, GetDataAvailabilityConstants.GDA_FEATURE_OF_INTEREST); writePhenomenonTime(da, GetDataAvailabilityConstants.GDA_PHENOMENON_TIME); if (da.isSetCount()) { writeCount(da.getCount(), GetDataAvailabilityConstants.GDA_COUNT); } if (da.isSetResultTime()) { writeResultTimes(da.getResultTimes(), GetDataAvailabilityConstants.GDA_EXTENSION); } if (da.isSetOffering()) { writeOffering(da.getOffering(), GetDataAvailabilityConstants.GDA_EXTENSION); } if (da.isSetFormatDescriptors()) { Set<String> observationTypes = da.getFormatDescriptor().getObservationFormatDescriptors().stream() .map(ObservationFormatDescriptor::getObservationTypes).flatMap(Set::stream).collect(toSet()); writeObservationTypes(observationTypes); } if (da.isSetMetadata()) { writeMetadata(da.getMetadata(), GetDataAvailabilityConstants.GDA_EXTENSION); } end(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_MEMBER); }
@Override protected void wirteDataAvailabilityMember(DataAvailability da) throws XMLStreamException, EncodingException { start(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_20_MEMBER); attr(GmlConstants.QN_ID_32, DATA_AVAILABILITY_PREFIX + dataAvailabilityCount++); writeProcedure(da, GetDataAvailabilityConstants.GDA_20_PROCEDURE); writeObservedProperty(da, GetDataAvailabilityConstants.GDA_20_OBSERVED_PROPERTY); writeFeatureOfInterest(da, GetDataAvailabilityConstants.GDA_20_FEATURE_OF_INTEREST); writePhenomenonTime(da, GetDataAvailabilityConstants.GDA_20PHENOMENON_TIME); if (da.isSetCount()) { writeCount(da.getCount(), GetDataAvailabilityConstants.GDA_20_COUNT); } if (da.isSetResultTime()) { writeResultTimes(da.getResultTimes(), GetDataAvailabilityConstants.GDA_20_EXTENSION); } if (da.isSetOffering()) { writeOffering(da.getOffering()); } if (da.isSetFormatDescriptors()) { writeFormatDescriptor(da.getFormatDescriptor()); } if (da.isSetMetadata()) { writeMetadata(da.getMetadata(), GetDataAvailabilityConstants.GDA_20_EXTENSION); } end(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_20_MEMBER); }
@Override protected void wirteDataAvailabilityMember(DataAvailability da) throws XMLStreamException, EncodingException { start(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_20_MEMBER); attr(GmlConstants.QN_ID_32, DATA_AVAILABILITY_PREFIX + dataAvailabilityCount++); writeProcedure(da, GetDataAvailabilityConstants.GDA_20_PROCEDURE); writeObservedProperty(da, GetDataAvailabilityConstants.GDA_20_OBSERVED_PROPERTY); writeFeatureOfInterest(da, GetDataAvailabilityConstants.GDA_20_FEATURE_OF_INTEREST); writePhenomenonTime(da, GetDataAvailabilityConstants.GDA_20PHENOMENON_TIME); if (da.isSetCount()) { writeCount(da.getCount(), GetDataAvailabilityConstants.GDA_20_COUNT); } if (da.isSetResultTime()) { writeResultTimes(da.getResultTimes(), GetDataAvailabilityConstants.GDA_20_EXTENSION); } if (da.isSetOffering()) { writeOffering(da.getOffering()); } if (da.isSetFormatDescriptors()) { writeFormatDescriptor(da.getFormatDescriptor()); } if (da.isSetMetadata()) { writeMetadata(da.getMetadata(), GetDataAvailabilityConstants.GDA_20_EXTENSION); } end(GetDataAvailabilityConstants.GDA_DATA_AVAILABILITY_20_MEMBER); }