@Override protected RestRequest decodePostRequest(HttpServletRequest httpRequest, String pathPayload) throws OwsExceptionReport { if (isContentOfPostRequestValid(httpRequest)) { InsertSensorRequest insertSensorRequest = new InsertSensorRequest(); insertSensorRequest.setVersion(bindingConstants.getSosVersion()); insertSensorRequest.setService(bindingConstants.getSosService()); insertSensorRequest.setProcedureDescriptionFormat(bindingConstants.getDefaultDescribeSensorOutputFormat()); // parse request in xml object and get procedure description XmlObject sensorPostContent = XmlHelper.parseXmlSosRequest(httpRequest); if (sensorPostContent instanceof SensorDocument) { SensorDocument xb_SensorRestDoc = (SensorDocument) sensorPostContent; SensorType xb_SensorRest = xb_SensorRestDoc.getSensor(); AbstractProcessType xb_ProcessRest = xb_SensorRest.getProcess(); SystemType xb_system = (SystemType) xb_ProcessRest.substitute(SensorMLConstants.SYSTEM_QNAME, SystemType.type); SosProcedureDescription procedureDescription = createSosProcedureDescriptionFromSmlSystem(xb_system); insertSensorRequest.setProcedureDescription(procedureDescription); // xmlobject class sosREST:Sensor + links // requires: SosInsertionMetadata insertionMetadata = setInsertionMetadata(insertSensorRequest, xb_system); insertSensorRequest.setMetadata(insertionMetadata); return new SensorsPostRequest(insertSensorRequest,xb_system); } } return null; }