public Curve createCurve(PointArray points) throws MismatchedReferenceSystemException, MismatchedDimensionException {
if (points == null)
throw new NullPointerException("Points are required to create a curve");
List/*<LineSegment>*/ segmentList = new ArrayList/*<LineSegment>*/();
for( int i = 0; i < points.size(); i++){
int start = i;
int end = (i + 1)%points.size();
DirectPosition point1 = points.getDirectPosition( start, null );
DirectPosition point2 = points.getDirectPosition( end, null );
LineSegment segment = createLineSegment( point1, point2 );
segmentList.add( segment );
}
return getPrimitiveFactory().createCurve( segmentList );
}