public DataProcessorDescription declareModel()

in streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/processor/buffergeometry/BufferGeomProcessor.java [75:141]


  public DataProcessorDescription declareModel() {
    return ProcessingElementBuilder
        .create("org.apache.streampipes.processors.geo.jvm.jts.processor.buffergeometry", 0)
        .category(DataProcessorType.GEO)
        .withAssets(ExtensionAssetType.DOCUMENTATION, ExtensionAssetType.ICON)
        .withLocales(Locales.EN)
        .requiredStream(StreamRequirementsBuilder
            .create()
            .requiredPropertyWithUnaryMapping(
                EpRequirements.semanticTypeReq("http://www.opengis.net/ont/geosparql#Geometry"),
                Labels.withId(GEOM_KEY),
                PropertyScope.MEASUREMENT_PROPERTY)
            .requiredPropertyWithUnaryMapping(
                EpRequirements.semanticTypeReq("http://data.ign.fr/def/ignf#CartesianCS"),
                Labels.withId(EPSG_KEY),
                PropertyScope.MEASUREMENT_PROPERTY)
            .build())
        .outputStrategy(OutputStrategies.append(
                EpProperties.stringEp(
                    Labels.withId(GEOM_KEY),
                    GEOM_RUNTIME,
                    "http://www.opengis.net/ont/geosparql#Geometry"
                ),
                EpProperties.numberEp(
                    Labels.withId(EPSG_KEY),
                    EPSG_RUNTIME,
                    "http://data.ign.fr/def/ignf#CartesianCS"
                )
            )
        )
        .requiredSingleValueSelection(
            Labels.withId(CAP_KEY),
            Options.from(
                CapStyle.Square.name(),
                CapStyle.Flat.name(),
                CapStyle.Round.name())
        )
        .requiredSingleValueSelection(
            Labels.withId(JOIN_KEY),
            Options.from(
                JoinStyle.Bevel.name(),
                JoinStyle.Mitre.name(),
                JoinStyle.Round.name())
        )
        .requiredSingleValueSelection(
            Labels.withId(SIDE_KEY),
            Options.from(
                BufferSide.Both.name(),
                BufferSide.Left.name(),
                BufferSide.Right.name())
        )
        .requiredIntegerParameter(
            Labels.withId(MITRE_LIMIT_KEY),
            5)
        .requiredIntegerParameter(
            Labels.withId(SEGMENTS_KEY),
            8
        )
        .requiredFloatParameter(
            Labels.withId(SIMPLIFY_FACTOR_KEY),
            0.01f
        )
        .requiredFloatParameter(
            Labels.withId(DISTANCE_KEY)
        )
        .build();
  }