@Override protected InsertSensorRequest decodeRequest(JsonNode node) throws OwsExceptionReport { final InsertSensorRequest r = new InsertSensorRequest(); final SosInsertionMetadata meta = new SosInsertionMetadata(); meta.setFeatureOfInterestTypes(parseStringOrStringList(node.path(FEATURE_OF_INTEREST_TYPE))); meta.setObservationTypes(parseStringOrStringList(node.path(OBSERVATION_TYPE))); r.setMetadata(meta); r.setObservableProperty(parseStringOrStringList(node.path(OBSERVABLE_PROPERTY))); r.setProcedureDescriptionFormat(node.path(PROCEDURE_DESCRIPTION_FORMAT).textValue()); r.setRelatedFeature(parseFeatureRelationships(node.path(RELATED_FEATURE))); r.setProcedureDescription(parseProcedureDescription(node.path(PROCEDURE_DESCRIPTION), r.getProcedureDescriptionFormat())); return r; }
@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; }