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();
}