View Javadoc
1 /* 2 * WKB4J - WKB reader for geographical mapping toolkits 3 * (C) 2002,2003, David Garnier, dgarnier@users.sourceforge.net 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation, 8 * version 2.1 of the License. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * or visit the web to http://www.gnu.org. 19 * 20 */ 21 22 package org.wkb4j.engine; 23 24 /*** 25 * <code>WKBFactory</code> must be implemented by any class wishing to serve as a factory 26 * for geometric objects. When an object implements this interface, it can be submitted 27 * to the <code>WKBParser</code> and it will call thoses methods with the correct values. 28 * The author of each factory is completly free to implement any behavior, including ignoring some calls.<br/> 29 * 30 * wkbByteOrders and wkbTypes values don't generate events because there is no point in doing so. 31 * Similarly, there is no way to pass a generic Geometry. MultiPoints, WKBPoints and Points are colapsed in a double array. 32 * It is the responsability of the Factory to ensure that the stream of events actually represents a correct construction. 33 * See AbstractWKBFactory for an implementation of a "validating" WKBFactory. 34 * 35 * <br/>Inspired by the SAX API. 36 * @author David Garnier 37 * 38 * <br/>Creation date: 6 juil. 2002 21:22:00 39 * @version $Revision: 1.7 $ $Date: 2003/07/28 22:21:26 $ 40 */ 41 public interface WKBFactory { 42 43 /*** Signals the beginning of the transcription process for a buffer of WKB data.*/ 44 public void beginWork(); 45 /*** Signals the end of the transcription process for a buffer of WKB data.*/ 46 public void endWork(); 47 /*** Signals the problematic stop of the transcription process for a buffer of WKB data.*/ 48 public void abortWork(); 49 50 /*** Signals the beginning of the transcription process for a <code>Geometry</code>. 51 * The submitted SRID will be assigned to all the Geometries contained in this Geometry*/ 52 public void beginUnit(int srid); 53 54 /*** Signals the beginning of the transcription process for a <code>Geometry</code>. 55 * The submitted values will be available to all the Geometries contained in this Geometry*/ 56 public void beginUnit(String[] words, int[] values); 57 58 /*** Signals the end of the transcription process for a <code>Geometry</code>.*/ 59 public void endUnit(); 60 /*** Signals the problematic stop of the transcription process for a <code>Geometry</code>.*/ 61 public void abortUnit(); 62 63 /*** Signals the beginning of a new <code>GeometryCollection</code>. 64 * @param count the number of elements in the <code>GeometryCollection</code>.*/ 65 public boolean beginGeometryCollection(int count); 66 67 /*** Signals the end of a <code>GeometryCollection</code>.*/ 68 public boolean endGeometryCollection(); 69 70 /*** Signals a malformed <code>GeometryCollection</code>. This can happen at any time, 71 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 72 public void abortGeometryCollection(); 73 74 /*** Signals the beginning of a new <code>LineString</code>. 75 * * @param count the number of elements in the <code>LineString</code> */ 76 public boolean beginLineString(int count); 77 78 /*** Signals the end of a <code>LineString</code>. */ 79 public boolean endLineString(); 80 81 /*** Signals a malformed <code>LineString</code>. This can happen at any time, 82 * and Factories should just skip the malformed <codeGeometry</code> and maybe escalate the error.*/ 83 public void abortLineString(); 84 85 /*** Signals the beginning of a new <code>MultiLineString</code>. 86 * @param count the number of elements in the <code>MultiLineString</code>. 87 */ 88 public boolean beginMultiLineString(int count); 89 90 /*** Signals the end of a <code>MultiLineString</code>. */ 91 public boolean endMultiLineString(); 92 93 /*** Signals a malformed <code>MultiLineString</code>. This can happen at any time, 94 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 95 public void abortMultiLineString(); 96 97 /*** Signals the beginning of a new <code>Point</code>. 98 * * @param count the number of elements in the <code>Point</code> */ 99 public boolean beginPoint(); 100 101 /*** Signals the end of a <code>Point</code>. */ 102 public boolean endPoint(); 103 104 /*** Signals a malformed <code>Point</code>. This can happen at any time, 105 * and Factories should just skip the malformed <codeGeometry</code> and maybe escalate the error.*/ 106 public void abortPoint(); 107 108 /*** Signals the beginning of a new <code>MultiPoint</code>. 109 * @param count the number of elements in the <code>MultiPoint</code>. 110 */ 111 public boolean beginMultiPoint(int count); 112 113 /*** Signals the end of a <code>MultiPoint</code>. */ 114 public boolean endMultiPoint(); 115 116 /*** Signals a malformed <code>MultiPoint</code>. This can happen at any time, 117 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 118 public void abortMultiPoint(); 119 120 /*** Signals the beginning of a new <code>MultiPolygon</code>. 121 * @param count the number of elements in the <code>MultiPolygon</code>.*/ 122 public boolean beginMultiPolygon(int count); 123 124 /*** Signals the end of a <code>MultiPolygon</code>. */ 125 public boolean endMultiPolygon(); 126 127 /*** Signals a malformed <code>MultiPolygon</code>. This can happen at any time, 128 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 129 public void abortMultiPolygon(); 130 131 /*** Signals the beginning of a new <code>Polygon</code>. 132 * @param count the number of elements in the <code>Polygon</code>. 133 * */ 134 public boolean beginPolygon(int count); 135 136 /*** Signals the end of a <code>Polygon</code>. */ 137 public boolean endPolygon(); 138 139 /*** Signals a malformed <code>Polygon</code>. This can happen at any time, 140 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 141 public void abortPolygon(); 142 143 /*** points is an array of doubles reprensentings coordinates. They are in the same order as the data in the WKB format. 144 * addPoints() and addPoints3D() are mutually exclusive and can only be called once.*/ 145 public boolean addPoints(double[] points); 146 147 /*** Signals the beginning of a new <code>LinearRing</code>. 148 * @param count the number of elements in the <code>LinearRing</code>. 149 */ 150 public boolean beginLinearRing(int count); 151 152 /*** Signals the end of a <code>LinearRing</code>. */ 153 public boolean endLinearRing(); 154 155 /*** Signals a malformed <code>LinearRing</code>. This can happen at any time, 156 * and Factories should just skip the malformed <code>Geometry</code> and maybe escalate the error.*/ 157 public void abortLinearRing(); 158 159 /*** Signals that a new component for the geometry factory is about to processed OR that 160 * all components has been used. 161 * and therefore that the current WKBFactory should take adequate steps. */ 162 public boolean newGeometryCollectionComponent(); 163 164 }

This page was automatically generated by Maven