rdf4j-postgis  Version 0.1.0.0
InteriorRingN Class Reference

Returns the nth interior ring of a polygon. More...

Inheritance diagram for InteriorRingN:
Collaboration diagram for InteriorRingN:

Public Member Functions

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

Protected Member Functions

Geometry relation (Geometry geom, Integer ringN)
 

Detailed Description

Returns the nth interior ring of a polygon.

Member Function Documentation

◆ evaluate()

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

References LiteralRegistry.getLiteral(), and GeometricModifierIntegerFunction.relation().

Referenced by CollectionExtractTest.testCollectionExtract(), GeneratePointsTest.testGeneratePoints(), PointNTest.testLineString(), PrecisionReducerTest.testPrecisionReducer(), RemovePointTest.testRemovePoint(), RemovePointTest.testRemovePointZ(), RemoveRingTest.testRemoveRing(), and ReverseRingTest.testReverseRing().

◆ getURI()

String getURI ( )
16  {
17  return POSTGIS.st_interiorRingN.stringValue();
18  }

References POSTGIS.st_interiorRingN.

◆ relation()

Geometry relation ( Geometry  geom,
Integer  ringN 
)
protected

Reimplemented from GeometricModifierIntegerFunction.

22  {
23  if (geom instanceof Polygon) {
24  LineString result=((Polygon) geom).getInteriorRingN(ringN.intValue());
25  return result;
26  }
27  return null;
28  }