use of org.n52.shetland.aqd.EReportingHeader in project arctic-sea by 52North.
the class EReportingHeaderJSONDecoder method decodeJSON.
@Override
public EReportingHeader decodeJSON(JsonNode node, boolean validate) throws DecodingException {
EReportingHeader header = new EReportingHeader();
header.setChange(decodeJsonToObject(node.path(AQDJSONConstants.CHANGE), EReportingChange.class));
header.setIdentifier(decodeJsonToObject(node.path(AQDJSONConstants.INSPIRE_ID), Identifier.class));
header.setReportingAuthority(decodeJsonToObject(node.path(AQDJSONConstants.REPORTING_AUTHORITY), RelatedParty.class));
header.setReportingPeriod(parseReferenceableTime(node.path(AQDJSONConstants.REPORTING_PERIOD)));
for (JsonNode child : node.path(AQDJSONConstants.CONTENT)) {
header.addContent(decodeJsonToReferencable(child, AbstractFeature.class));
}
for (JsonNode child : node.path(AQDJSONConstants.DELETE)) {
header.addDelete(decodeJsonToReferencable(child, AbstractFeature.class));
}
return header;
}
use of org.n52.shetland.aqd.EReportingHeader in project arctic-sea by 52North.
the class EReportingHeaderJSONDecoderTest method test.
@Test
public void test() throws OwsExceptionReport, URISyntaxException, EncodingException, DecodingException {
EReportingHeader header = getHeader();
JsonNode encode = getEncoder().encode(header);
EReportingHeader o = getDecoder().decode(encode);
assertThat(o.getInspireID() != null, is(true));
assertThat(o.getInspireID().getLocalId(), equalTo(header.getInspireID().getLocalId()));
assertThat(o.getInspireID().getValue(), equalTo(header.getInspireID().getValue()));
assertThat(o.getInspireID().getVersionId(), equalTo(header.getInspireID().getVersionId()));
assertThat(o.getChange(), equalTo(header.getChange()));
assertThat(o.getReportingPeriod().isInstance(), is(true));
assertThat(o.getReportingPeriod().getInstance().isPresent(), is(true));
assertThat(o.getReportingPeriod().getInstance().get(), equalTo(header.getReportingPeriod().getInstance().get()));
assertThat(o.getReportingAuthority() != null, is(true));
assertThat(o.getReportingAuthority(), instanceOf(RelatedParty.class));
assertThat(o.getReportingAuthority().getIndividualName().isNil(), is(true));
assertThat(o.getReportingAuthority().getIndividualName().getNilReason().isPresent(), is(true));
assertThat(o.getReportingAuthority().getIndividualName().getNilReason().get(), equalTo(header.getReportingAuthority().getIndividualName().getNilReason().get()));
assertThat(o.getReportingAuthority().getOrganisationName().isPresent(), is(true));
assertThat(o.getReportingAuthority().getOrganisationName().get(), equalTo(header.getReportingAuthority().getOrganisationName().get()));
assertThat(o.getReportingAuthority().getPositionName().isPresent(), is(true));
assertThat(o.getReportingAuthority().getPositionName().get(), equalTo(header.getReportingAuthority().getPositionName().get()));
assertThat(o.getReportingAuthority().getRoles() != null, is(true));
assertThat(o.getReportingAuthority().getRoles().size(), is(2));
assertThat(o.getReportingAuthority().getRoles().get(0).isPresent(), is(true));
assertThat(o.getReportingAuthority().getRoles().get(0).get().getHref().isPresent(), is(true));
assertThat(o.getReportingAuthority().getRoles().get(0).get().getHref().get(), equalTo(header.getReportingAuthority().getRoles().get(0).get().getHref().get()));
assertThat(o.getReportingAuthority().getRoles().get(1).isNil(), is(true));
assertThat(o.getReportingAuthority().getRoles().get(1).getNilReason().isPresent(), is(true));
assertThat(o.getReportingAuthority().getRoles().get(1).getNilReason(), equalTo(header.getReportingAuthority().getRoles().get(1).getNilReason()));
assertThat(o.getReportingAuthority().getContact().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().size(), is(2));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(0).isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(0).get(), equalTo(header.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(0).get()));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(1).isNil(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(1).getNilReason().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(1).getNilReason(), equalTo(o.getReportingAuthority().getContact().get().getTelephoneFacsimile().get().get(1).getNilReason()));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneVoice().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneVoice().get().size(), is(1));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneVoice().get().get(0).isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getTelephoneVoice().get().get(0).get(), equalTo(header.getReportingAuthority().getContact().get().getTelephoneVoice().get().get(0).get()));
assertThat(o.getReportingAuthority().getContact().get().getHoursOfService().isPresent(), is(true));
checkPtFreeText(o.getReportingAuthority().getContact().get().getHoursOfService().get(), header.getReportingAuthority().getContact().get().getHoursOfService().get());
assertThat(o.getReportingAuthority().getContact().get().getWebsite().isNil(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getWebsite().getNilReason().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getWebsite().getNilReason().get(), equalTo(header.getReportingAuthority().getContact().get().getWebsite().getNilReason().get()));
assertThat(o.getReportingAuthority().getContact().get().getElectronicMailAddress().isNil(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getElectronicMailAddress().getNilReason().isPresent(), is(true));
assertThat(o.getReportingAuthority().getContact().get().getElectronicMailAddress().getNilReason().get(), equalTo(header.getReportingAuthority().getContact().get().getWebsite().getNilReason().get()));
checkAddress(o.getReportingAuthority().getContact().get().getAddress(), header.getReportingAuthority().getContact().get().getAddress());
assertThat(o.getReportingAuthority().getContact().get().getAddress().get().getAdminUnits() != null, is(true));
assertThat(o.getReportingAuthority().getContact().get().getAddress().get().getAdminUnits().size(), is(1));
chekGeographicalName(o.getReportingAuthority().getContact().get().getAddress().get().getAdminUnits().get(0), header.getReportingAuthority().getContact().get().getAddress().get().getAdminUnits().get(0));
}
use of org.n52.shetland.aqd.EReportingHeader in project arctic-sea by 52North.
the class AqdEncoder method encodeGetObservationResponse.
private XmlObject encodeGetObservationResponse(GetObservationResponse response, EncodingContext ctx) throws EncodingException {
try {
FeatureCollection featureCollection = getFeatureCollection(response);
// TODO get FLOW from response
EReportingHeader eReportingHeader = getEReportingHeader(getReportObligationType(response));
featureCollection.addMember(eReportingHeader);
TimePeriod timePeriod = new TimePeriod();
TimeInstant resultTime = new TimeInstant(new DateTime(DateTimeZone.UTC));
int counter = 1;
ObservationStream observationCollection = response.getObservationCollection();
while (observationCollection.hasNext()) {
OmObservation observation = observationCollection.next();
if (observation.getValue() instanceof ObservationStream) {
ObservationStream value = (ObservationStream) observation.getValue();
if (value instanceof StreamingValue) {
value = value.merge();
}
while (value.hasNext()) {
processObservation(value.next(), timePeriod, resultTime, featureCollection, eReportingHeader, counter++);
}
} else {
processObservation(observation, timePeriod, resultTime, featureCollection, eReportingHeader, counter++);
}
}
if (!timePeriod.isEmpty()) {
eReportingHeader.setReportingPeriod(Referenceable.of((Time) timePeriod));
}
return encodeObjectToXml(GmlConstants.NS_GML_32, featureCollection, ctx.with(XmlEncoderFlags.ENCODE_NAMESPACE, OmConstants.NS_OM_2).with(XmlBeansEncodingFlags.DOCUMENT));
} catch (OwsExceptionReport ex) {
throw new EncodingException(ex);
}
}
use of org.n52.shetland.aqd.EReportingHeader in project arctic-sea by 52North.
the class AqdEncoder method encodeEReportingHeader.
private XmlObject encodeEReportingHeader(EReportingHeader element, EncodingContext ctx) throws EncodingException {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
EncodingContext context = ctx.with(EncoderFlags.ENCODER_REPOSITORY, getEncoderRepository()).with(XmlEncoderFlags.XML_OPTIONS, (Supplier<XmlOptions>) this::getXmlOptions);
new EReportingHeaderEncoder(context, baos, element).write();
if (context.has(XmlStreamEncoderFlags.XML_WRITER)) {
return null;
}
return XmlObject.Factory.parse(baos.toString("UTF8"));
} catch (XMLStreamException | XmlException | UnsupportedEncodingException xmlse) {
throw new EncodingException("Error encoding response", xmlse);
}
}
use of org.n52.shetland.aqd.EReportingHeader in project arctic-sea by 52North.
the class AqdGetObservationResponseEncoder method create.
@Override
protected XmlObject create(GetObservationResponse response) throws EncodingException {
try {
FeatureCollection featureCollection = createFeatureCollection(response);
// TODO get FLOW from response
EReportingHeader eReportingHeader = getEReportingHeader(getReportObligationType(response));
featureCollection.addMember(eReportingHeader);
TimePeriod timePeriod = new TimePeriod();
TimeInstant resultTime = new TimeInstant(new DateTime(DateTimeZone.UTC));
int counter = 1;
while (response.getObservationCollection().hasNext()) {
OmObservation observation = response.getObservationCollection().next();
processObservation(observation, timePeriod, resultTime, featureCollection, eReportingHeader, counter++);
}
if (!timePeriod.isEmpty()) {
eReportingHeader.setReportingPeriod(Referenceable.of((Time) timePeriod));
}
EncodingContext ctx = EncodingContext.empty().with(XmlEncoderFlags.ENCODE_NAMESPACE, OmConstants.NS_OM_2).with(XmlBeansEncodingFlags.DOCUMENT);
return encodeGml(ctx, featureCollection);
} catch (OwsExceptionReport ex) {
throw new EncodingException(ex);
}
}
Aggregations