use of net.opengis.sensorML.x101.OutputsDocument.Outputs.OutputList in project arctic-sea by 52North.
the class SensorMLEncoderv101 method createOutputs.
/**
* Creates the outputs section of the SensorML description.
*
* @param sosOutputs
* SOS SWE representation.
*
* @return XML Outputs element
*
* @throws EncodingException
* if the encoding fails
*/
private Outputs createOutputs(final List<SmlIo> sosOutputs) throws EncodingException {
Outputs outputs = Outputs.Factory.newInstance(getXmlOptions());
OutputList outputList = outputs.addNewOutputList();
Set<String> definitions = Sets.newHashSet();
int counter = 1;
Set<String> outputNames = Sets.newHashSet();
for (SmlIo sosSMLIo : sosOutputs) {
if (sosSMLIo.isSetValue() && !definitions.contains(sosSMLIo.getIoValue().getDefinition())) {
if (!sosSMLIo.isSetName() || outputNames.contains(sosSMLIo.getIoName())) {
sosSMLIo.setIoName(getValidOutputName(counter++, outputNames));
}
outputNames.add(sosSMLIo.getIoName());
addIoComponentPropertyType(outputList.addNewOutput(), sosSMLIo);
definitions.add(sosSMLIo.getIoValue().getDefinition());
}
}
return outputs;
}
use of net.opengis.sensorML.x101.OutputsDocument.Outputs.OutputList in project arctic-sea by 52North.
the class SensorMLDecoderV101Test method should_decode_io_from_sml.
@Test
public void should_decode_io_from_sml() throws DecodingException {
SensorMLDocument xbSmlDoc = getSensorMLDoc();
SystemType xbSystem = (SystemType) xbSmlDoc.getSensorML().addNewMember().addNewProcess().substitute(SensorMLConstants.SYSTEM_QNAME, SystemType.type);
InputList xbInputList = xbSystem.addNewInputs().addNewInputList();
OutputList xbOutputList = xbSystem.addNewOutputs().addNewOutputList();
IoComponentPropertyType input1 = xbInputList.addNewInput();
input1.setName("input1");
input1.addNewBoolean();
IoComponentPropertyType input2 = xbInputList.addNewInput();
input2.setName("input2");
input2.addNewCount();
IoComponentPropertyType output1 = xbOutputList.addNewOutput();
output1.setName("output1");
output1.addNewQuantity();
IoComponentPropertyType output2 = xbOutputList.addNewOutput();
output2.setName("output2");
DataArrayType dataArray = getDataArray();
output2.setAbstractDataArray1(dataArray);
XmlHelper.substituteElement(output2.getAbstractDataArray1(), dataArray);
IoComponentPropertyType output3 = xbOutputList.addNewOutput();
output3.setName("output3");
DataRecordType dataRecord = DataRecordType.Factory.newInstance();
output3.setAbstractDataRecord(dataRecord);
XmlHelper.substituteElement(output3.getAbstractDataRecord(), dataRecord);
AbstractProcess absProcess = decodeAbstractProcess(xbSmlDoc);
assertThat(absProcess.getInputs().get(0).getIoValue().getDataComponentType(), is(SweDataComponentType.Boolean));
// assertThat(
// ((SweAbstractSimpleType)absProcess.getInputs().get(0).getIoValue()).getDataComponentType(),
// is (SweDataComponentType.Boolean));
assertThat(absProcess.getInputs().get(1).getIoValue().getDataComponentType(), is(SweDataComponentType.Count));
// assertThat(
// ((SweAbstractSimpleType)absProcess.getInputs().get(1).getIoValue()).getDataComponentType(),
// is (SweDataComponentType.Count));
assertThat(absProcess.getOutputs().get(0).getIoValue().getDataComponentType(), is(SweDataComponentType.Quantity));
// assertThat(
// ((SweAbstractSimpleType)absProcess.getOutputs().get(0).getIoValue()).getDataComponentType(),
// is (SweDataComponentType.Quantity));
assertThat(absProcess.getOutputs().get(1).getIoValue().getDataComponentType(), is(SweDataComponentType.DataArray));
assertThat(absProcess.getOutputs().get(2).getIoValue().getDataComponentType(), is(SweDataComponentType.DataRecord));
}
Aggregations