com.vividsolutions.jts.geom.util
Class GeometryEditor

java.lang.Object
  extended bycom.vividsolutions.jts.geom.util.GeometryEditor

public class GeometryEditor
extends java.lang.Object

A class which supports creating new Geometrys which are modifications of existing ones. Geometry objects are intended to be treated as immutable. This class "modifies" Geometrys by traversing them, applying a user-defined GeometryEditOperation or GeometryEditor.CoordinateOperation and creating new Geometrys with the same structure but (possibly) modified components.

Examples of the kinds of modifications which can be made are:

All changes must be consistent with the original Geometry's structure (e.g. a Polygon cannot be collapsed into a LineString).

The resulting Geometry is not checked for validity. If validity needs to be enforced, the new Geometry's #isValid method should be called.

Version:
1.7
See Also:
Geometry.isValid()

Nested Class Summary
static class GeometryEditor.CoordinateOperation
          A GeometryEditorOperation which modifies the coordinate list of a Geometry.
static interface GeometryEditor.GeometryEditorOperation
          A interface which specifies an edit operation for Geometries.
 
Constructor Summary
GeometryEditor()
          Creates a new GeometryEditor object which will create an edited Geometry with the same GeometryFactory as the input Geometry.
GeometryEditor(GeometryFactory factory)
          Creates a new GeometryEditor object which will create the edited Geometry with the given GeometryFactory
 
Method Summary
 Geometry edit(Geometry geometry, GeometryEditor.GeometryEditorOperation operation)
          Edit the input Geometry with the given edit operation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeometryEditor

public GeometryEditor()
Creates a new GeometryEditor object which will create an edited Geometry with the same GeometryFactory as the input Geometry.


GeometryEditor

public GeometryEditor(GeometryFactory factory)
Creates a new GeometryEditor object which will create the edited Geometry with the given GeometryFactory

Parameters:
factory - the GeometryFactory to create the edited Geometry with
Method Detail

edit

public Geometry edit(Geometry geometry,
                     GeometryEditor.GeometryEditorOperation operation)
Edit the input Geometry with the given edit operation. Clients can create subclasses of GeometryEditor.GeometryEditorOperation or GeometryEditor.CoordinateOperation to perform required modifications.

Parameters:
geometry - the Geometry to edit
operation - the edit operation to carry out
Returns:
a new Geometry which is the result of the editing