Search in sources :

Example 1 with TextObservationEntity

use of org.n52.series.db.beans.sta.TextObservationEntity in project sensorweb-server-sta by 52North.

the class ObservationService method castToConcreteObservationType.

private ObservationEntity<?> castToConcreteObservationType(ObservationEntity observation, DatasetEntity dataset) throws STACRUDException {
    ObservationEntity<?> data = null;
    String value = (String) observation.getValue();
    switch(dataset.getOmObservationType().getFormat()) {
        case OmConstants.OBS_TYPE_MEASUREMENT:
            QuantityObservationEntity quantityObservationEntity = new QuantityObservationEntity();
            if (observation.hasValue()) {
                if (value.equals("NaN") || value.equals("Inf") || value.equals("-Inf")) {
                    quantityObservationEntity.setValue(null);
                } else {
                    quantityObservationEntity.setValue(BigDecimal.valueOf(Double.parseDouble(value)));
                }
            }
            data = quantityObservationEntity;
            break;
        case OmConstants.OBS_TYPE_CATEGORY_OBSERVATION:
            CategoryObservationEntity categoryObservationEntity = new CategoryObservationEntity();
            if (observation.hasValue()) {
                categoryObservationEntity.setValue(value);
            }
            data = categoryObservationEntity;
            break;
        case OmConstants.OBS_TYPE_COUNT_OBSERVATION:
            CountObservationEntity countObservationEntity = new CountObservationEntity();
            if (observation.hasValue()) {
                countObservationEntity.setValue(Integer.parseInt(value));
            }
            data = countObservationEntity;
            break;
        case OmConstants.OBS_TYPE_TEXT_OBSERVATION:
            TextObservationEntity textObservationEntity = new TextObservationEntity();
            if (observation.hasValue()) {
                textObservationEntity.setValue(value);
            }
            data = textObservationEntity;
            break;
        case OmConstants.OBS_TYPE_TRUTH_OBSERVATION:
            BooleanObservationEntity booleanObservationEntity = new BooleanObservationEntity();
            if (observation.hasValue()) {
                booleanObservationEntity.setValue(Boolean.parseBoolean(value));
            }
            data = booleanObservationEntity;
            break;
        default:
            break;
    }
    if (data != null) {
        data.setDataset(dataset);
        if (observation.getStaIdentifier() != null) {
            if (getRepository().existsByStaIdentifier(observation.getStaIdentifier())) {
                throw new STACRUDException("Identifier already exists!", HTTPStatus.CONFLICT);
            } else {
                data.setIdentifier(observation.getIdentifier());
                data.setStaIdentifier(observation.getStaIdentifier());
            }
        } else {
            String uuid = UUID.randomUUID().toString();
            data.setIdentifier(uuid);
            data.setStaIdentifier(uuid);
        }
        data.setSamplingTimeStart(observation.getSamplingTimeStart());
        data.setSamplingTimeEnd(observation.getSamplingTimeEnd());
        data.setResultTime(observation.getResultTime());
        data.setValidTimeStart(observation.getValidTimeStart());
        data.setValidTimeEnd(observation.getValidTimeEnd());
        data.setSamplingGeometry(observation.getSamplingGeometry());
        if (observation.getParameters() != null) {
            parameterRepository.saveAll(observation.getParameters());
            data.setParameters(observation.getParameters());
        }
    }
    return data;
}
Also used : CategoryObservationEntity(org.n52.series.db.beans.sta.CategoryObservationEntity) BooleanObservationEntity(org.n52.series.db.beans.sta.BooleanObservationEntity) TextObservationEntity(org.n52.series.db.beans.sta.TextObservationEntity) CountObservationEntity(org.n52.series.db.beans.sta.CountObservationEntity) QuantityObservationEntity(org.n52.series.db.beans.sta.QuantityObservationEntity) STACRUDException(org.n52.shetland.ogc.sta.exception.STACRUDException)

Aggregations

BooleanObservationEntity (org.n52.series.db.beans.sta.BooleanObservationEntity)1 CategoryObservationEntity (org.n52.series.db.beans.sta.CategoryObservationEntity)1 CountObservationEntity (org.n52.series.db.beans.sta.CountObservationEntity)1 QuantityObservationEntity (org.n52.series.db.beans.sta.QuantityObservationEntity)1 TextObservationEntity (org.n52.series.db.beans.sta.TextObservationEntity)1 STACRUDException (org.n52.shetland.ogc.sta.exception.STACRUDException)1