rdf4j-postgis  Version 0.1.0.0
SetStartPoint Class Reference

Sets the first point of the given geometry to the point given in the second parameter. More...

Inheritance diagram for SetStartPoint:
Collaboration diagram for SetStartPoint:

Public Member Functions

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

Protected Member Functions

Geometry relation (Geometry geom1, Geometry geom2)
 

Detailed Description

Sets the first point of the given geometry to the point given in the second parameter.

Member Function Documentation

◆ evaluate()

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

References LiteralRegistry.getLiteral(), GeometricModifierFunction.relation(), and LiteralUtils.transform().

Referenced by AddGeometryTest.testAddGeometry(), AddGeometryTest.testAddGeometryZ(), AddPointTest.testAddPoint(), AddPointTest.testAddPointZ(), AddRingTest.testAddRing(), ClosestPointTest.testClosestPoint(), FurthestCoordinateTest.testFurthestCoordinate(), SetEndPointTest.testSetEndPoint(), and SetStartPointTest.testSetStartPoint().

◆ getURI()

String getURI ( )
17  {
18  return POSTGIS.st_setStartPoint.stringValue();
19  }

References POSTGIS.st_setStartPoint.

◆ relation()

Geometry relation ( Geometry  geom1,
Geometry  geom2 
)
protected

Reimplemented from GeometricModifierFunction.

22  {
23  if (geom2 instanceof Point) {
24  Coordinate[] coords=geom1.getCoordinates();
25  Coordinate[] newcoords=coords;
26  newcoords[0]=geom2.getCoordinate();
27  return LiteralUtils.createGeometry(newcoords, geom1.getGeometryType(), geom1.getSRID());
28  }
29  return null;
30  }

References LiteralUtils.createGeometry().