diff --git a/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/GeoJvmInit.java b/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/GeoJvmInit.java index abaca77156..0d312ea32a 100644 --- a/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/GeoJvmInit.java +++ b/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/GeoJvmInit.java @@ -32,6 +32,7 @@ import org.apache.streampipes.processors.geo.jvm.jts.processor.latlngtojtspoint.LatLngToJtsPointProcessor; import org.apache.streampipes.processors.geo.jvm.jts.processor.reprojection.ReprojectionProcessor; import org.apache.streampipes.processors.geo.jvm.jts.processor.trajectory.TrajectoryFromPointsProcessor; +import org.apache.streampipes.processors.geo.jvm.jts.processor.validation.GeometryValidationProcessor; import org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversine.HaversineDistanceCalculatorProcessor; import org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversinestatic.HaversineStaticDistanceCalculatorProcessor; import org.apache.streampipes.processors.geo.jvm.latlong.processor.geocoder.googlemaps.GoogleMapsGeocoderProcessor; @@ -70,7 +71,8 @@ public SpServiceDefinition provideServiceDefinition() { new LatLngToJtsPointProcessor(), new TrajectoryFromPointsProcessor(), new SpeedCalculatorProcessor(), - new ReprojectionProcessor()) + new ReprojectionProcessor(), + new GeometryValidationProcessor()) .registerMessagingFormats( new JsonDataFormatFactory(), new CborDataFormatFactory(), diff --git a/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/processor/validation/GeometryValidationProcessor.java b/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/processor/validation/GeometryValidationProcessor.java index 0b3936e4de..edb0254aae 100644 --- a/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/processor/validation/GeometryValidationProcessor.java +++ b/streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/processor/validation/GeometryValidationProcessor.java @@ -79,7 +79,7 @@ public DataProcessorDescription declareModel() { ValidationOutput.INVALID.name() ) ) - .requiredMultiValueSelection( + .requiredSingleValueSelection( Labels.withId(VALIDATION_TYPE_KEY), Options.from( ValidationType.IsEmpty.name(), @@ -109,9 +109,9 @@ public void onInvocation(ProcessorParams parameters, SpOutputCollector spOutputC if (readValidationType.equals(ValidationType.IsEmpty.name())) { this.validationType = ValidationType.IsEmpty.getNumber(); // 1 } else if (readValidationType.equals(ValidationType.IsValid.name())) { - this.validationType = ValidationType.IsValid.getNumber(); // 2 + this.validationType = ValidationType.IsSimple.getNumber(); // 2 } else { - this.validationType = ValidationType.IsSimple.getNumber(); // 3 + this.validationType = ValidationType.IsValid.getNumber(); // 3 } } @@ -126,7 +126,7 @@ public void onEvent(Event event, SpOutputCollector collector) throws SpRuntimeEx switch (validationType) { case 1: - itIsValid = geometry.isEmpty(); + itIsValid = !geometry.isEmpty(); break; case 2: itIsValid = geometry.isSimple(); @@ -135,7 +135,7 @@ public void onEvent(Event event, SpOutputCollector collector) throws SpRuntimeEx IsValidOp validater = new IsValidOp(geometry); validater.setSelfTouchingRingFormingHoleValid(true); itIsValid = validater.isValid(); - if (itIsValid = false) { + if (!itIsValid) { validater.getValidationError(); } }