package org.geotools.shapefile; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jump.io.EndianDataInputStream; import com.vividsolutions.jump.io.EndianDataOutputStream; import java.io.IOException; /** * Interface implemented by all the ShapeType handlers */ public interface ShapeHandler { /** * Returns one of the ShapeType int defined by the specification. * <ul> * <li>0 Null Shape</li> * <li>1 Point</li> * <li>3 PolyLine</li> * <li>5 Polygon</li> * <li>8 MultiPoint</li> * <li>11 PointZ</li> * <li>13 PolyLineZ</li> * <li>15 PolygonZ</li> * <li>18 MultiPointZ</li> * <li>21 PointM</li> * <li>23 PolyLineM</li> * <li>25 PolygonM</li> * <li>28 MultiPointM</li> * <li>31 MultiPatch</li> * </ul> */ public int getShapeType(); public Geometry read(EndianDataInputStream file, GeometryFactory geometryFactory, int contentLength) throws IOException, InvalidShapefileException; public void write(Geometry geometry, EndianDataOutputStream file) throws IOException; public int getLength(Geometry geometry); //length in 16bit words /** * Return a empty geometry. */ public Geometry getEmptyGeometry(GeometryFactory factory); }