use of org.n52.svalbard.encode.Encoder in project arctic-sea by 52North.
the class AbstractOmV20XmlStreamWriter method writeFeatureOfIntererst.
/**
* Write om:featureOfInterest encoded or as xlink:href to stream
*
* @throws XMLStreamException
* If an error occurs when writing to stream
* @throws EncodingException
* If an error occurs when creating elements to be written
*/
protected void writeFeatureOfIntererst() throws XMLStreamException, EncodingException {
Optional<String> namespace = getDefaultFeatureEncodingNamespace();
AbstractFeature foi = getElement().getObservationConstellation().getFeatureOfInterest();
if (namespace.isPresent()) {
EncodingContext codingContext = EncodingContext.of(XmlEncoderFlags.ENCODE_NAMESPACE, namespace.get());
Encoder<XmlObject, AbstractFeature> encoder = getEncoder(GmlConstants.NS_GML_32, foi);
writeXmlObject(encoder.encode(foi, codingContext), OmConstants.QN_OM_20_FEATURE_OF_INTEREST);
} else {
empty(OmConstants.QN_OM_20_FEATURE_OF_INTEREST);
addXlinkHrefAttr(foi.getIdentifier());
if (foi.isSetName() && foi.getFirstName().isSetValue()) {
addXlinkTitleAttr(foi.getFirstName().getValue());
}
}
}
use of org.n52.svalbard.encode.Encoder in project arctic-sea by 52North.
the class Soap12XmlStreamWriter method writeBodyContent.
/**
* Encode and write the {@link OwsServiceResponse} to stream
*
* @param bodyResponse The service internal response to encode and write
*
* @throws XMLStreamException If an error occurs when writing to {@link OutputStream}
* @throws EncodingException If an encoding error occurs
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void writeBodyContent(OwsServiceResponse bodyResponse) throws XMLStreamException, EncodingException {
Encoder<Object, OwsServiceResponse> encoder = getEncoder(new OperationResponseEncoderKey(new OwsOperationKey(bodyResponse), MediaTypes.APPLICATION_XML));
if (encoder instanceof StreamingEncoder<?, ?>) {
EncodingContext ctx = getContext().with(XmlBeansEncodingFlags.DOCUMENT).without(XmlBeansEncodingFlags.PROPERTY_TYPE).without(XmlBeansEncodingFlags.TYPE).with(StreamingEncoderFlags.EMBEDDED, true);
((StreamingEncoder) encoder).encode(bodyResponse, getOutputStream(), ctx);
} else {
String soapBodyContent = ((XmlObject) encoder.encode(bodyResponse)).xmlText(getXmlOptions());
rawText(stripXmlDeclaration(soapBodyContent));
}
}
use of org.n52.svalbard.encode.Encoder in project arctic-sea by 52North.
the class Soap12XmlStreamWriter method getSchemaLocation.
protected Set<SchemaLocation> getSchemaLocation() throws EncodingException, XMLStreamException {
SoapResponse response = getElement();
Set<SchemaLocation> schemaLocations = Sets.newHashSet();
schemaLocations.add(SoapConstants.SOAP_12_SCHEMA_LOCATION);
if (response.isSetBodyContent()) {
Encoder<Object, OwsServiceResponse> encoder = getEncoder(response.getBodyContent());
if (encoder != null && encoder instanceof SchemaAwareEncoder) {
schemaLocations.addAll(((SchemaAwareEncoder<?, ?>) encoder).getSchemaLocations());
}
}
return schemaLocations;
}
use of org.n52.svalbard.encode.Encoder in project arctic-sea by 52North.
the class AbstractSwesRequestEncoderTest method shouldThrowExceptionIfVersionIsMissing.
@Test
public void shouldThrowExceptionIfVersionIsMissing() throws EncodingException {
thrown.expect(UnsupportedEncoderInputException.class);
thrown.expectMessage(Is.is("Encoder " + AbstractSwesRequestEncoderSeam.class.getSimpleName() + " can not encode 'missing version'"));
encoder.validateInput(new OwsServiceRequest("SOS", "") {
});
}
use of org.n52.svalbard.encode.Encoder in project arctic-sea by 52North.
the class AbstractSwesRequestEncoderTest method shouldThrowExceptionIfServiceIsMissing.
@Test
public void shouldThrowExceptionIfServiceIsMissing() throws EncodingException {
thrown.expect(UnsupportedEncoderInputException.class);
thrown.expectMessage(Is.is("Encoder " + AbstractSwesRequestEncoderSeam.class.getSimpleName() + " can not encode 'missing service'"));
encoder.validateInput(new OwsServiceRequest() {
});
}
Aggregations