rdf4j-postgis  Version 0.1.0.0
GeometricUnaryFunction Class Referenceabstract

Inherits Function.

Inherited by OctagonalEnvelope, PointOnSurface, Boundary, BoundingDiagonal, Centroid, ConcaveHull, ConvexHull, GeometricMedian, MinimumBoundingCircle, MinimumBoundingCircleCenter, MinimumClearanceLine, MinimumDiameterLine, MinimumRectangle, Normalize, CollectionHomogenize, DissolvePoints, DissolveSegments, FlipCoordinates, Force2D, Force3D, Force3DM, Force4D, ForceCollection, MakeValid, MakeValidDiscarded, Multi, Normalize, Points, Polygonize, Reverse, RotateX, ShiftLongitude, SimplifyPreserveTopology, TransScale, Transform, Translate, EndPoint, LineSelfIntersectionPoint, SelfIntersections, StartPoint, LineFromMultiPoint, Dissolve, LineMerge, ApproximateMedialAxis, Circumcentre, ExteriorRing, ForcePolygonCCW, ForcePolygonCW, LinesFromRings, and RingsCutAtNodes.

Collaboration diagram for GeometricUnaryFunction:

Public Member Functions

Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Protected Member Functions

abstract Geometry operation (Geometry geom)
 

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
16  {
17  if (args.length != 1) {
18  throw new ValueExprEvaluationException(getURI() + " requires exactly 1 argument, got " + args.length);
19  }
20 
21  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
22  if(l instanceof VectorLiteral) {
23  Geometry geom=((VectorLiteral)l).read(args[0].stringValue());
24  Geometry result = operation(geom);
25  return valueFactory.createLiteral(((VectorLiteral) l).unparse(result),((Literal)args[0]).getDatatype());
26  }
27  throw new ValueExprEvaluationException("Argument given is not a geometry literal");
28  }

References LiteralRegistry.getLiteral(), and GeometricUnaryFunction.operation().

Referenced by BoundaryTest.testBoundary(), BoundingDiagonalTest.testBoundingDiagonal(), CentroidTest.testCentroid(), StartPointTest.testCircularString(), CircumcentreTest.testCircumcentre1(), CollectionHomogenizeTest.testCollectionHomogenize(), FlipCoordinatesTest.testFlipCoordinates(), Force2DTest.testForce2D(), Force3DTest.testForce3D(), Force3DMTest.testForce3DM(), Force3DMTest.testForce3DM2(), Force4DTest.testForce4D(), ForceCollectionTest.testForceCollection(), ForceCollectionTest.testForceCollectionZ(), ForcePolygonCCWTest.testForcePolygonCCW(), ForcePolygonCWTest.testForcePolygonCW(), EndPointTest.testLineString2D(), StartPointTest.testLineString2D(), EndPointTest.testLineString3D(), StartPointTest.testLineString3D(), MinimumBoundingCircleCenterTest.testMinimumBoundingCircle(), MinimumBoundingCircleTest.testMinimumBoundingCircle(), MinimumClearanceLineTest.testMinimumClearanceLine(), MinimumDiameterLineTest.testMinimumDiameterLine(), MinimumRectangleTest.testMinimumRectangle(), MultiTest.testMulti2D(), MultiTest.testMulti3D(), SelfIntersectionsTest.testNoSelfIntersections(), EndPointTest.testPoint(), StartPointTest.testPoint(), PointsTest.testPoints(), PointsTest.testPoints3D(), ReverseTest.testReverse(), SelfIntersectionsTest.testSelfIntersections(), ShiftLongitudeTest.testShiftLongitude(), SimplifyPreserveTopologyTest.testSimplifyVW(), and TransScaleTest.testTransScale().

◆ operation()