Revision 979

View differences:

org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
	<modelVersion>4.0.0</modelVersion>
4
	<artifactId>org.gvsig.gpe.lib</artifactId>
5
	<packaging>pom</packaging>	
6
	<name>org.gvsig.gpe.lib</name>
7
	<description>Generic Persistence Engine library</description>
8
	<parent>
9
		<groupId>org.gvsig</groupId>
10
		<artifactId>org.gvsig.gpe</artifactId>	
11
		<version>2.1.91</version>	
12
	</parent>
13
	<modules>	
14
		<module>org.gvsig.gpe.lib.api</module>
15
		<module>org.gvsig.gpe.lib.spi</module>
16
		<module>org.gvsig.gpe.lib.impl</module>	
17
	</modules>
18
</project>
19

  
0 20

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/GPEManager.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 {Iver T.I.}   {Task}
26
*/
27

  
28
package org.gvsig.gpe.lib.api;
29

  
30
import java.io.File;
31
import java.net.URI;
32
import java.util.Iterator;
33

  
34
import org.gvsig.gpe.lib.api.exceptions.ParserCreationException;
35
import org.gvsig.gpe.lib.api.exceptions.WriterHandlerCreationException;
36
import org.gvsig.gpe.lib.api.parser.IGPEContentHandler;
37
import org.gvsig.gpe.lib.api.parser.IGPEContentHandlerInmGeom;
38
import org.gvsig.gpe.lib.api.parser.IGPEErrorHandler;
39
import org.gvsig.gpe.lib.api.writer.IGPEWriterHandler;
40

  
41
/**
42
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
43
 */
44
public interface GPEManager {
45

  
46
    /**
47
     * Return true if exists a driver that can open the file
48
     * @param uri
49
     * File to open
50
     * @return
51
     * true if the driver exists
52
     */
53
    public boolean accept(URI uri);
54

  
55
    /**
56
	 * Method to parse a file. It cannot to throw
57
	 * any exception and it cannot to return any value.
58
	 * In a future it could be implemented like a independent
59
	 * thread
60
	 * @param contents
61
	 * Application ContentHandler
62
	 * @param errors
63
	 * Application ErrorsHandler
64
	 * @param uri
65
	 * File to open
66
	 * @throws ParserCreationException
67
	 * @throws Exception
68
	 */
69
	public void parse(IGPEContentHandler contents, IGPEErrorHandler errors, URI uri) throws ParserCreationException;
70

  
71
	/**
72
	 * Method to parse a file. It cannot to throw
73
	 * any exception and it cannot to return any value.
74
	 * In a future it could be implemented like a independent
75
	 * thread
76
	 * @param contents
77
	 * Application ContentHandler
78
	 * @param errors
79
	 * Application ErrorsHandler
80
	 * @param file
81
	 * File to open
82
	 * @throws ParserCreationException
83
	 * @throws Exception
84
	 */
85
	public void parse(IGPEContentHandler contents, IGPEErrorHandler errors, File file) throws ParserCreationException;
86

  
87
	 /**
88
	 * Method to parse a file. It cannot to throw
89
	 * any exception and it cannot to return any value.
90
	 * In a future it could be implemented like a independent
91
	 * thread
92
	 * @param contents
93
	 * Application ContentHandler
94
	 * @param errors
95
	 * Application ErrorsHandler
96
	 * @param uri
97
	 * File to open
98
	 * @throws ParserCreationException
99
	 * @throws Exception
100
	 */
101
	public void parse(IGPEContentHandlerInmGeom contents, IGPEErrorHandler errors, URI uri) throws ParserCreationException;
102

  
103
	/**
104
	 * Method to parse a file. It cannot to throw
105
	 * any exception and it cannot to return any value.
106
	 * In a future it could be implemented like a independent
107
	 * thread
108
	 * @param contents
109
	 * Application ContentHandler
110
	 * @param errors
111
	 * Application ErrorsHandler
112
	 * @param file
113
	 * File to open
114
	 * @throws ParserCreationException
115
	 * @throws Exception
116
	 */
117
	public void parse(IGPEContentHandlerInmGeom contents, IGPEErrorHandler errors, File file) throws ParserCreationException;
118

  
119
	/**
120
	 * Create a new content writer from a name
121
	 * @param name
122
	 * GPEWriterHandler name
123
	 * GPEParser name
124
	 * @param contenHandler
125
	 * Application contenHandler usett to throw the parsing events
126
	 * @param errorHandler
127
	 * Application errror handler used to put errors and warnings
128
	 * @throws GPEWriterHandlerCreationException
129
	 */
130
	public IGPEWriterHandler createWriter(String name) throws WriterHandlerCreationException;
131

  
132
	/**
133
	 * Create a new writer from a class name. This method can be used
134
	 * if the class name is known but, the common method to get a writer
135
	 * is using the mime type.     *
136
	 * @param prefferredImplClassName
137
	 * The name of the class that implements {@link GPEWriterHandler}
138
	 * @return
139
	 * A writer for a concrete format.
140
	 * @throws WriterHandlerCreationException
141
	 * If it is not possible to create a writer
142
	 */
143
	public IGPEWriterHandler createWriterByClass(String prefferredImplClassName) throws WriterHandlerCreationException;
144

  
145
	/**
146
	 * Create a new writer from a mime type. Each writer has a method
147
	 * named {@link GPEWriterHandler#getFormat()} that returns the mimetype
148
	 * that the writer can write. One writer only supports one mimetype.
149
	 * <p>
150
	 * This method retrieve all the writers and returns the first
151
	 * one that is able to write the mimetype. If there are more
152
	 * writer that can write the format will not be used.
153
	 * </p>
154
	 * @param mimeType
155
	 * The mimetype of the file to write
156
	 * @return
157
	 * A writer that can write the mimetype.
158
	 * @throws WriterHandlerCreationException
159
	 * If it is not possible to create a writer
160
	 * @see
161
	 * <a href="http://www.iana.org/assignments/media-types/">http://www.iana.org/assignments/media-types/</a>
162
	 */
163
	public IGPEWriterHandler createWriterByMimeType(String mimeType) throws WriterHandlerCreationException;
164

  
165

  
166
	/**
167
	 * Returns an iterator with the name of all the properties that
168
	 * has been established.
169
	 */
170
	public Iterator getKeys();
171

  
172

  
173
	/**
174
	 * Gets a String property
175
	 * @param key
176
	 * Property name
177
	 * @return
178
	 */
179
	public String getStringProperty(String key);
180

  
181
	/**
182
	 * Gets a int property
183
	 * @param key
184
	 * Property name
185
	 * @return
186
	 * The int property or -1
187
	 */
188
	public int getIntPropertyProperty(String key);
189

  
190
	/**
191
	 * Gets a boolean property. If the property doesn't exist
192
	 * it returns false.
193
	 * @param key
194
	 * Property name
195
	 * @return
196
	 * The boolean property or false
197
	 */
198
	public boolean getBooleanProperty(String key);
199

  
200
	/**
201
	 * Gets a property
202
	 * @param key
203
	 * Property name
204
	 * @return
205
	 */
206
	public Object getProperty(String key);
207

  
208
	/**
209
	 * Sets a property
210
	 * @param key
211
	 * @param value
212
	 */
213
	public void setProperty(String key, Object value);
214

  
215

  
216
	public String getDefaultProjection(File file) throws ParserCreationException;
217
}
218

  
0 219

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/GPEProperties.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2008 Iver T.I.  {{Task}}
26
*/
27
 
28
package org.gvsig.gpe.lib.api;
29

  
30

  
31
/**
32
 * This class contains the generic properties for all the 
33
 * GPE parsers and writers. 
34
 */
35
public class GPEProperties {
36
	public static final String DECIMAL_DIGITS = "decimalDigits";
37
}
38

  
39

  
0 40

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/IGPEContentHandlerSFP0.java
1
package org.gvsig.gpe.lib.api.parser;
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
 *
4
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
 *
20
 * For more information, contact:
21
 *
22
 *  Generalitat Valenciana
23
 *   Conselleria d'Infraestructures i Transport
24
 *   Av. Blasco Ib??ez, 50
25
 *   46010 VALENCIA
26
 *   SPAIN
27
 *
28
 *      +34 963862235
29
 *   gvsig@gva.es
30
 *      www.gvsig.gva.es
31
 *
32
 *    or
33
 *
34
 *   IVER T.I. S.A
35
 *   Salamanca 50
36
 *   46005 Valencia
37
 *   Spain
38
 *
39
 *   +34 963163400
40
 *   dac@iver.es
41
 */
42
/* CVS MESSAGES:
43
 *
44
 * $Id$
45
 * $Log$
46
 *
47
 */
48
/**
49
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
50
 */
51
public interface IGPEContentHandlerSFP0 {
52

  
53
	/**
54
	 * This method indicates that the parser has found a curve.
55
	 * @param id
56
	 * curve identifier
57
	 * @param coords
58
	 * A coordinates iterator
59
	 * @param srs
60
	 * Spatial reference system
61
	 * @return
62
	 * Consumer application object that represents a lineString
63
	 */
64
	public Object startCurve(String id, ICoordinateIterator coords, String srs);
65

  
66
	/**
67
	 * This method indicates that the parser has found a curve.
68
	 * @param id
69
	 * curve identifier
70
	 * @param srs
71
	 * Spatial reference system
72
	 * @return
73
	 * Consumer application object that represents a lineString
74
	 */
75
	public Object startCurve(String id, String srs);
76

  
77
	/**
78
     * It is thrown when the Curve has been completely parsed.
79
	 * @param Curve
80
	 * Consumer application object that represents a Curve
81
	 */
82
	public void endCurve(Object Curve);
83

  
84
	/**
85
	 * It adds a segment to a curve.
86
	 * @param segment
87
	 * The segment to add
88
	 * @param curve
89
	 * The curve
90
	 */
91
	public void addSegmentToCurve(Object segment, Object curve);
92

  
93
	/**
94
	 * This method indicates that the parser has found a multiCurve.
95
	 * @param id
96
	 * MultyCurve identifier
97
	 * @param srs
98
	 * Spatial reference system
99
	 * @return
100
	 * Consumer application object that represents a multiCurve
101
	 */
102
	public Object startMultiCurve(String id, String srs);
103

  
104
	public Object startMultiCurve(String id, String srs, int dimension);
105

  
106
	/**
107
	 * It is thrown when the multiCurve has been completely parsed
108
	 * @param multiCurve
109
	 * Consumer application object that represents a multiCurve
110
	 */
111
	public void endMultiCurve(Object multiCurve);
112

  
113
	/**
114
	 * It is thrown to add a curve to one multiCurve.
115
	 * @param curve
116
     * Consumer application object that represents a curve
117
	 * @param multiCurve
118
	 * Consumer application object that represents a multiCurve
119
	 */
120
	public void addCurveToMultiCurve(Object curve, Object multiCurve);
121

  
122

  
123
}
0 124

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/IAttributesIterator.java
1

  
2
package org.gvsig.gpe.lib.api.parser;
3

  
4
import java.io.IOException;
5

  
6
import org.gvsig.xmlpull.lib.api.stream.IQName;
7
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
8
*
9
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
10
*
11
* This program is free software; you can redistribute it and/or
12
* modify it under the terms of the GNU General Public License
13
* as published by the Free Software Foundation; either version 2
14
* of the License, or (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program; if not, write to the Free Software
23
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
24
*
25
* For more information, contact:
26
*
27
*  Generalitat Valenciana
28
*   Conselleria d'Infraestructures i Transport
29
*   Av. Blasco Ib??ez, 50
30
*   46010 VALENCIA
31
*   SPAIN
32
*
33
*      +34 963862235
34
*   gvsig@gva.es
35
*      www.gvsig.gva.es
36
*
37
*    or
38
*
39
*   IVER T.I. S.A
40
*   Salamanca 50
41
*   46005 Valencia
42
*   Spain
43
*
44
*   +34 963163400
45
*   dac@iver.es
46
*/
47
/* CVS MESSAGES:
48
*
49
* $Id$
50
* $Log$
51
*
52
*/
53
/**
54
* @author Carlos S?nchez Peri??n
55
*/
56
public interface IAttributesIterator {
57
	/**
58
    * Returns whether there are more attributes in this sequence
59
    * 
60
    * @return
61
    * @throws IOException
62
    */
63
   public boolean hasNext() throws IOException;
64

  
65
   /**
66
    * Returns the dimension of the attributes list. Consumer code should use it to
67
    * pass a buffer with the correct lenght.
68
    * 
69
    * @return
70
    */
71
   public int getNumAttributes();
72

  
73
   /**
74
    * Value of next attribute
75
    */
76
   public Object nextAttribute() throws IOException;
77
   
78
   /**
79
    * @return the name of the next attribute
80
    */
81
   public IQName nextAttributeName();
82
   
83
   /**
84
    * Initializes the iterator
85
    */
86
   public void initialize();
87
}
0 88

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/IGPEContentHandlerInmGeom.java
1
package org.gvsig.gpe.lib.api.parser;
2
/* gvSIG. Sistema de Informacin Geogrfica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ibez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
/* CVS MESSAGES:
43
*
44
* $Id: IGPEContentHandler.java 202 2007-11-27 12:00:11Z jpiera $
45
* $Log$
46
* Revision 1.18  2007/06/20 09:35:37  jorpiell
47
* Add the javadoc comments
48
*
49
* Revision 1.17  2007/06/19 10:34:51  jorpiell
50
* Add some comments and creates a warning when an operation is not supported
51
*
52
*
53
*/
54
/**
55
 * This interface defines the "contract" between the consumer
56
 * application and libGPE. It has methods that will be invoke
57
 * by the parser every time that an event happens
58
 * @author Jorge Piera Llodr (jorge.piera@iver.es)
59
 * @author Carlos Snchez Perin (sanchez_carper@gva.es)
60
 */
61
public interface IGPEContentHandlerInmGeom extends IGPEContentHandlerSFP0{
62

  
63
	/**
64
	 * This method is thrown when the parser find a new
65
	 * bounding box.
66
	 * @param id
67
	 * Bounding box identifier
68
	 * @param coords
69
	 * A coordinates iterator
70
	 * @param srs
71
	 * Spatial reference system
72
	 * @return
73
	 * The consumer application object that represents
74
	 *  a bounding box
75
	 */
76
	public Object startBbox(String id, ICoordinateIterator coords, String srs);
77

  
78
	/**
79
	 * This method indicates that the parser thas finished to
80
	 * parse the bounding box.
81
	 * @param bbox
82
	 * The consumer application object that represents a
83
	 * bounding box
84
	 */
85
	public void endBbox(Object bbox);
86

  
87
	/**
88
	 * It is thrown every time that a new layer is detected.
89
	 * @param id
90
	 * Layer identifier
91
	 * @param namespace
92
	 * XML namespace
93
	 * @param name
94
	 * Layer name
95
	 * @param description
96
	 * Layer description
97
	 * @param srs
98
	 * Layer spatial reference system
99
	 * @param attributes
100
	 * Layer attributes
101
	 * @param parentLayer
102
	 * Layer that contains it
103
	 * @param bBox
104
	 * Layer bounding box
105
	 * @return
106
	 * The consumer application object that represents a layer
107
	 */
108
	public Object startLayer(String id,  String namespace, String name, String description,
109
			String srs, IAttributesIterator attributes, Object parentLayer, Object bBox);
110

  
111
	/**
112
	 * It is thrown when a layer has been finished to parse.
113
	 * @param layer
114
	 * The consumer application object that represents a layer
115
	 */
116
	public void endLayer(Object layer);
117

  
118
	/**
119
	 * It adds a name to one layer that has been previously
120
	 * created using the startLayer method.
121
	 * @param name
122
	 * Layer name
123
	 * @param layer
124
	 * The consumer application object that represents a layer
125
	 */
126
	public void addNameToLayer(String name, Object layer);
127

  
128
	/**
129
	 * It adds the description to one layer that has been previously
130
	 * created using the startLayer method.
131
	 * @param description
132
	 * Layer description
133
	 * @param layer
134
	 * The consumer application object that represents a layer
135
	 */
136
	public void addDescriptionToLayer(String description, Object layer);
137

  
138
	/**
139
	 * It adds a spatial reference system to one layer that
140
	 * has been previously created using the startLayer method.
141
	 * @param srs
142
	 * Spatial reference system
143
	 * @param layer
144
	 * The consumer application object that represents a layer
145
	 */
146
	public void addSrsToLayer(String srs, Object Layer);
147

  
148
	/**
149
	 * It establish the relationship parent-child between two layers
150
	 * that have been previously created using the startLayer method.
151
	 * @param parent
152
	 * The consumer application object that represents the parent layer
153
	 * @param layer
154
	 * The consumer application object that represents the child layer
155
	 */
156
	public void addParentLayerToLayer(Object parent, Object layer);
157

  
158
	/**
159
	 * It adds a bounding box to one layer that  has been previously
160
	 * created using the startLayer method.
161
	 * @param bbox
162
	 * Layer bounding box
163
	 * @param layer
164
	 * The consumer application object that represents a layer
165
	 */
166
	public void addBboxToLayer(Object bbox, Object layer);
167

  
168
	/**
169
	 * It is thrown when the parser has found a new feature.
170
	 * @param id
171
	 * Feature identifier
172
	 * @param name
173
	 * Feature name
174
	 * @param namespace
175
	 * XML namespace
176
	 * @param attributes
177
	 * Feature attributes
178
	 * @param layer
179
	 * Consumer application object that represents a layer
180
	 * @return
181
	 * Consumer application object that represents a feature
182
	 */
183
	public Object startFeature(String id, String namespace, String name, IAttributesIterator attributes, Object layer);
184

  
185
	/**
186
	 * This method is thrown when the parser has finished to
187
	 * parse a feature.
188
	 * @param feature
189
	 * Consumer application object that represents a feature
190
	 */
191
	public void endFeature(Object feature);
192

  
193
	/**
194
	 * This method adds a name to one layer that has been
195
	 * previously created using the startFeature method.
196
	 * @param name
197
	 * Feature name
198
	 * @param feature
199
     * Consumer application object that represents a feature
200
	 */
201
	public void addNameToFeature(String name, Object feature);
202

  
203
	/**
204
	 * This method adds a feature to one layer that has been
205
	 * previously created using the startLayer method.
206
	 * @param feature
207
	 * Consumer application object that represents a feature
208
	 * @param layer
209
	 * Consumer application object that represents a layer
210
	 */
211
	public void addFeatureToLayer(Object feature, Object layer);
212

  
213
	/**
214
	 * It is thrown when the parser has found a new element
215
	 * @param namespace
216
	 * XML namespace
217
	 * @param name
218
	 * Element name
219
	 * @param value
220
	 * Element value
221
	 * @param attributes
222
	 * Element attributes
223
	 * @param parentElement
224
	 * The parent of this element (if exists)
225
	 * @return
226
	 * Consumer application object that represents an element
227
	 */
228
	public Object startElement(String namespace, String name, Object value,
229
			IAttributesIterator attributes, Object parentElement);
230

  
231
	/**
232
	 * This method is thrown when the parser find the end
233
	 * of an element.
234
	 * @param element
235
	 * Consumer application object that represents an element
236
	 */
237
	public void endElement(Object element);
238

  
239
	/**
240
	 * It is thrown to establish a relationship parent-child
241
	 * between two elements.
242
	 * @param parent
243
	 * Consumer application object that represents the parent element
244
	 * @param element
245
	 * Consumer application object that represents the child element
246
	 */
247
	public void addParentElementToElement(Object parent, Object element);
248

  
249
	/**
250
	 * This method adds an element to one feature that has been
251
	 * previously created using the startFeature method
252
	 * @param element
253
	 * Consumer application object that represents an element
254
	 * @param feature
255
	 * Consumer application object that represents the feature
256
	 */
257
	public void addElementToFeature(Object element, Object feature);
258

  
259
	/**
260
	 * This method indicates that the parser has found a point.
261
	 * @param id
262
	 * Point identifier
263
	 * @param coords
264
	 * A coordinates iterator
265
	 * @param srs
266
	 * Spatial reference system
267
	 * @return
268
	 * Consumer application object that represents a point
269
	 */
270
	public Object startPoint(String id, ICoordinateIterator coords, String srs);
271

  
272
	/**
273
	 * It is thrown when the point has been completely parsed.
274
	 * @param point
275
	 * Consumer application object that represents a point
276
	 */
277
	public void endPoint(Object point);
278

  
279
	/**
280
	 * This method indicates that the parser has found a lineString.
281
	 * @param id
282
	 * LineString identifier
283
	 * @param coords
284
	 * A coordinates iterator
285
	 * @param srs
286
	 * Spatial reference system
287
	 * @return
288
	 * Consumer application object that represents a lineString
289
	 */
290
	public Object startLineString( String id, ICoordinateIterator coords, String srs);
291

  
292
	/**
293
     * It is thrown when the lineString has been completely parsed.
294
	 * @param lineString
295
	 * Consumer application object that represents a lineString
296
	 */
297
	public void endLineString(Object lineString);
298

  
299
	/**
300
	 * This method indicates that the parser has found a linearRing.
301
	 * @param id
302
	 * LinearRing identifier
303
	 * @param coords
304
	 * A coordinates iterator
305
	 * @param srs
306
	 * Spatial reference system
307
	 * @return
308
	 * Consumer application object that represents a linarRing
309
	 */
310
	public Object startLinearRing(String id, ICoordinateIterator coords, String srs);
311

  
312
	/**
313
	 * It is thrown when the linearRing has been completely parsed.
314
	 * @param linearRing
315
	 * Consumer application object that represents a linearRing
316
	 */
317
	public void endLinearRing(Object linearRing);
318

  
319
	/**
320
	 * This method indicates that the parser has found a polygon.
321
	 * @param id
322
	 * Polygon identifier
323
	 * @param coords
324
	 * A coordinates iterator
325
	 * @param srs
326
	 * Spatial reference system
327
	 * @return
328
	 * Consumer application object that represents a polygon
329
	 */
330
	public Object startPolygon(String id, ICoordinateIterator coords, String srs);
331

  
332
	/**
333
	 * It is thrown when the polygon has been completely parsed.
334
	 * @param polygon
335
	 * Consumer application object that represents a polygon
336
	 * As a polygon can have holes, when instantiating an inmutable polygon is needed to know the outerBoundary and the holes, the instantiating takes place here
337
	 */
338
	public Object endPolygon(Object polygon);
339

  
340
	/**
341
	 * This method associates a innerPolygon with its polygon
342
	 * @param innerPolygon
343
     * Consumer application object that represents a innerPolygon
344
	 * @param Polygon
345
	 * Consumer application object that represents a polygon
346
	 */
347
	public void addInnerPolygonToPolygon(Object innerPolygon, Object Polygon);
348

  
349
	/**
350
	 * This method indicates that the parser has found a InnerPolygon.
351
	 * @param id
352
	 * InnerPolygon identifier
353
	 * @param coords
354
	 * A coordinates iterator
355
	 * @param srs
356
	 * Spatial reference system
357
	 * @return
358
	 * Consumer application object that represents a innerPolygon
359
	 */
360
	public Object startInnerPolygon(String id, ICoordinateIterator coords, String srs);
361

  
362
	/**
363
	 * It is thrown when the innerPolygon has been completely parsed.
364
	 * @param innerPolygon
365
	 * Consumer application object that represents a innerPolygon
366
	 */
367
	public void endInnerPolygon(Object innerPolygon);
368

  
369
	/**
370
	 * This method indicates that the parser has found a multipoint.
371
	 * @param id
372
	 * MultiPoint identifier
373
	 * @param srs
374
	 * Spatial reference system
375
	 * @return
376
	 * Consumer application object that represents a multiPoint
377
	 */
378
	public Object startMultiPoint(String id, String srs);
379
    public Object startMultiPoint(String id, String srs, int dimension);
380

  
381
	/**
382
	 * It is thrown when the multiPoint has been completely parsed
383
	 * @param multiPoint
384
	 * Consumer application object that represents a multiPoint
385
	 */
386
	public Object endMultiPoint(Object multiPoint);
387

  
388
	/**
389
	 * It is thrown to add a point to one multiPoint.
390
	 * @param point
391
     * Consumer application object that represents a point
392
	 * @param multiPoint
393
	 * Consumer application object that represents a multiPoint
394
	 */
395
	public void addPointToMultiPoint(Object point,Object multiPoint);
396

  
397
	/**
398
	 * This method indicates that the parser has found a multiLineString.
399
	 * @param id
400
	 * MultiLineString identifier
401
	 * @param srs
402
	 * Spatial reference system
403
	 * @return
404
	 * Consumer application object that represents a multiLineString
405
	 */
406
	public Object startMultiLineString(String id, String srs);
407
    public Object startMultiLineString(String id, String srs, int dimension);
408

  
409
	/**
410
	 * It is thrown when the multiLineString has been completely parsed
411
	 * @param multiLineString
412
	 * Consumer application object that represents a multiLineString
413
	 */
414
	public Object endMultiLineString(Object multiLineString);
415

  
416
	/**
417
	 * It is thrown to add a lineString to one lineString.
418
	 * @param lineString
419
     * Consumer application object that represents a lineString
420
	 * @param multiLineString
421
	 * Consumer application object that represents a multiLineString
422
	 */
423
	public void addLineStringToMultiLineString(Object lineString,Object multiLineString);
424

  
425
	/**
426
	 * This method indicates that the parser has found a multiPolygon.
427
	 * @param id
428
	 * MultiPolygon identifier
429
	 * @param srs
430
	 * Spatial reference system
431
	 * @return
432
	 * Consumer application object that represents a multiPolygon
433
	 */
434
	public Object startMultiPolygon(String id, String srs);
435
    public Object startMultiPolygon(String id, String srs, int dimension);
436

  
437
	/**
438
	 * It is thrown when the multiPolygon has been completely parsed
439
	 * @param multiPolygon
440
	 * Consumer application object that represents a multiPolygon
441
	 */
442
	public Object endMultiPolygon(Object multiPolygon);
443

  
444
	/**
445
	 * It is thrown to add a polygon to one multiPolygon.
446
	 * @param polygon
447
     * Consumer application object that represents a polygon
448
	 * @param multiPolygon
449
	 * Consumer application object that represents a multiPolygon
450
	 */
451
	public void addPolygonToMultiPolygon(Object polygon,Object multiPolygon);
452

  
453
	/**
454
	 * This method indicates that the parser has found a multiGeometry.
455
	 * @param id
456
	 * MultiGeometry identifier
457
	 * @param srs
458
	 * Spatial reference system
459
	 * @return
460
	 * Consumer application object that represents a multiGeometry
461
	 */
462
	public Object startMultiGeometry(String id, String srs);
463

  
464
	/**
465
	 * It is thrown when the multiGeometry has been completely parsed
466
	 * @param multiGeometry
467
	 * Consumer application object that represents a multiGeometry
468
	 */
469
	public Object endMultiGeometry(Object multiGeometry);
470

  
471
	/**
472
	 * It is thrown to add a geometry to one multiGeometry.
473
	 * @param geometry
474
     * Consumer application object that represents a geometry
475
	 * @param multiGeometry
476
	 * Consumer application object that represents a multiGeometry
477
	 */
478
	public void addGeometryToMultiGeometry(Object geometry,Object multiGeometry);
479

  
480
	/**
481
	 * This method adds a bounding box to a feature.
482
	 * @param bbox
483
	 * Consumer application object that represents a bounding
484
	 * box
485
	 * @param feature
486
	 * Consumer application object that represents a feature
487
	 */
488
	public void addBboxToFeature(Object bbox, Object feature);
489

  
490
	/**
491
	 * This method adds a geometry to a feature.
492
	 * @param geometry
493
	 * Consumer application object that represents a geometry
494
	 * @param feature
495
	 * Consumer application object that represents a feature
496
	 */
497
	public void addGeometryToFeature(Object geometry, Object feature);
498

  
499
	/**
500
	 * It is thrown when the parser has found a new metadata tag
501
	 * @param type
502
	 * String with the type of metadata, if is a description or any else
503
	 * @param data
504
	 * String with the value of the data.
505
	 * @param attributes
506
	 * Object to pass the Atributtes
507
	 * @return
508
	 * Consumer application object that represents metadata
509
	 */
510
	public Object startMetadata(String type, String data, IAttributesIterator attributes);
511

  
512
	/**
513
	 * This method adds metadata to feature.
514
	 * @param metadata
515
	 * Consumer application object that represents metadata
516
	 * @param feature
517
	 * Consumer application object that represents a feature
518
	 */
519
	public void addMetadataToFeature(Object metadata, Object feature);
520

  
521
	/**
522
	 * This method adds metadata to complex metadata.
523
	 * @param metadata
524
	 * Consumer application object that represents metadata
525
	 * @param parent
526
	 * Consumer application object that represents the complex metadata
527
	 */
528
	public void addMetadataToMetadata(Object metadata, Object parent);
529

  
530
	/**
531
	 * This method is thrown when the parser find the end of the metadata
532
	 * of an element.
533
	 * @param metadata
534
	 * Consumer application object that represents metadata
535
	 */
536
	public void endMetadata(Object metadata);
537

  
538
	/**
539
	 * This method is thrown when the parser find the end of and element time tag
540
	 * @param time
541
	 * Consumer application object that represents time
542
	 */
543
	public void endTime(Object time);
544

  
545
	/**
546
	 * It is thrown when the parser has found a new time tag tag
547
	 * @param type
548
	 * String with the type of time, if is a description or any else
549
	 * @param data
550
	 * String with the value of the data.
551
	 * @return
552
	 * Consumer application object that represents time
553
	 */
554
	public Object startTime(String name, String description, String type, String time, Object previous, Object next);
555
	public Object startTime(String type, String time);
556

  
557
	/**
558
	 * This method adds time to feature.
559
	 * @param time
560
	 * Consumer application object that represents time
561
	 * @param feature
562
	 * Consumer application object that represents a feature
563
	 */
564
	public void addTimeToFeature(Object time, Object feature);
565
}
0 566

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/ICoordinateIterator.java
1
package org.gvsig.gpe.lib.api.parser;
2

  
3
import java.io.IOException;
4

  
5
/**
6
 * An iterator over the current geometry being parsed intended to be given to the consumer
7
 * {@link IGPEContentHandler}.
8
 * <p>
9
 * This provides an abstraction for specific format parsers to optimize as needed without imposing a
10
 * coordinate structure to the consumer application which may be inefficient for its geometry model.
11
 * </p>
12
 * <p>
13
 * Basically, using this interface allows for the following optimizations:
14
 * <ul>
15
 * <li>Avoid unneeded coordinate parsing where not necessary
16
 * <li>Allows to serve geometry sequences of arbitrary dimensions
17
 * <li>Avoids unnecessary copy of large coordinate buffers from different arrays of doubles,
18
 * letting the consumer iterate over the coordinates and build its geometries more efficiently
19
 * </ul>
20
 * </p>
21
 * 
22
 * @author Gabriel Roldan (TOPP)
23
 * @version $Id: ICoordinateIterator.java 19589 2008-03-12 14:14:54Z groldan $
24
 */
25
public interface ICoordinateIterator {
26

  
27
    /**
28
     * Returns whether there are more coordinates in this sequence
29
     * 
30
     * @return
31
     * @throws IOException
32
     */
33
    public boolean hasNext() throws IOException;
34

  
35
    /**
36
     * Returns the dimension of the coordinate tuple being served. Consumer code should use it to
37
     * pass a buffer with the correct lenght to {@link #next(double[])}
38
     * 
39
     * @return
40
     */
41
    public int getDimension();
42

  
43
    /**
44
     * @param buffer where to store the parsed coordinates. The buffer lenght shall be >=
45
     *            {@link #getDimension()}
46
     * @throws IOException
47
     */
48
    public void next(double[] buffer) throws IOException;
49
}
0 50

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/IGPEErrorHandler.java
1
package org.gvsig.gpe.lib.api.parser;
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
 *
4
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
 *
20
 * For more information, contact:
21
 *
22
 *  Generalitat Valenciana
23
 *   Conselleria d'Infraestructures i Transport
24
 *   Av. Blasco Ib??ez, 50
25
 *   46010 VALENCIA
26
 *   SPAIN
27
 *
28
 *      +34 963862235
29
 *   gvsig@gva.es
30
 *      www.gvsig.gva.es
31
 *
32
 *    or
33
 *
34
 *   IVER T.I. S.A
35
 *   Salamanca 50
36
 *   46005 Valencia
37
 *   Spain
38
 *
39
 *   +34 963163400
40
 *   dac@iver.es
41
 */
42
/* CVS MESSAGES:
43
 *
44
 * $Id: IGPEErrorHandler.java 153 2007-06-20 09:35:37Z jorpiell $
45
 * $Log$
46
 * Revision 1.4  2007/06/20 09:35:37  jorpiell
47
 * Add the javadoc comments
48
 *
49
 * Revision 1.3  2007/04/19 07:23:20  jorpiell
50
 * Add the add methods to teh contenhandler and change the register mode
51
 *
52
 * Revision 1.2  2007/04/12 17:06:42  jorpiell
53
 * First GML writing tests
54
 *
55
 * Revision 1.1  2007/04/11 08:46:21  csanchez
56
 * Actualizacion protoripo libGPE
57
 *
58
 *
59
 */
60
/**
61
 * This interface defines the GPE error handler. It has methods
62
 * to register the errors and the warnings that can happen
63
 * wherear a parser is reading or writing a file. 
64
 * @author Jorge Piera Llodr? (jorge.piera@iver.es)
65
 * @author Carlos S?nchez Peri??n (sanchez_carper@gva.es)
66
 */
67
public interface IGPEErrorHandler {
68

  
69
	/**
70
	 * This method is invoked when a parser has found
71
	 * an error that has to stop the reading or the writing 
72
	 * process
73
	 * @param e
74
	 * The detected exception
75
	 */
76
	public void addError(Throwable e);
77
	
78
	public int getErrorsSize();
79

  
80
	public Throwable getErrorAt(int i);
81
	
82
	/**
83
	 * This method is invoke when a parser has detected a
84
	 * error, but it is able to manage it by itself
85
	 * @param e
86
	 * The detected exception
87
	 */
88
	public void addWarning(Throwable e);
89

  
90
	public int getWarningsSize();
91

  
92
	public Throwable getWarningAt(int i);
93
	
94
}
0 95

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.91/org.gvsig.gpe.lib/org.gvsig.gpe.lib.api/src/main/java/org/gvsig/gpe/lib/api/parser/IGPEContentHandler.java
1
package org.gvsig.gpe.lib.api.parser;
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ib??ez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
/* CVS MESSAGES:
43
*
44
* $Id: IGPEContentHandler.java 202 2007-11-27 12:00:11Z jpiera $
45
* $Log$
46
* Revision 1.18  2007/06/20 09:35:37  jorpiell
47
* Add the javadoc comments
48
*
49
* Revision 1.17  2007/06/19 10:34:51  jorpiell
50
* Add some comments and creates a warning when an operation is not supported
51
*
52
*
53
*/
54
/**
55
 * This interface defines the "contract" between the consumer
56
 * application and libGPE. It has methods that will be invoke
57
 * by the parser every time that an event happens
58
 * @author Jorge Piera Llodr? (jorge.piera@iver.es)
59
 * @author Carlos S?nchez Peri??n (sanchez_carper@gva.es)
60
 */
61
public interface IGPEContentHandler extends IGPEContentHandlerSFP0{
62

  
63
	/**
64
	 * This method is thrown when the parser find a new
65
	 * bounding box.
66
	 * @param id
67
	 * Bounding box identifier
68
	 * @param coords
69
	 * A coordinates iterator
70
	 * @param srs
71
	 * Spatial reference system
72
	 * @return
73
	 * The consumer application object that represents
74
	 *  a bounding box
75
	 */
76
	public Object startBbox(String id, ICoordinateIterator coords, String srs);
77

  
78
	/**
79
	 * This method indicates that the parser thas finished to
80
	 * parse the bounding box.
81
	 * @param bbox
82
	 * The consumer application object that represents a
83
	 * bounding box
84
	 */
85
	public void endBbox(Object bbox);
86

  
87
	/**
88
	 * It is thrown every time that a new layer is detected.
89
	 * @param id
90
	 * Layer identifier
91
	 * @param namespace
92
	 * XML namespace
93
	 * @param name
94
	 * Layer name
95
	 * @param description
96
	 * Layer description
97
	 * @param srs
98
	 * Layer spatial reference system
99
	 * @param attributes
100
	 * Layer attributes
101
	 * @param parentLayer
102
	 * Layer that contains it
103
	 * @param bBox
104
	 * Layer bounding box
105
	 * @return
106
	 * The consumer application object that represents a layer
107
	 */
108
	public Object startLayer(String id,  String namespace, String name, String description,
109
			String srs, IAttributesIterator attributes, Object parentLayer, Object bBox);
110

  
111
	/**
112
	 * It is thrown when a layer has been finished to parse.
113
	 * @param layer
114
	 * The consumer application object that represents a layer
115
	 */
116
	public void endLayer(Object layer);
117

  
118
	/**
119
	 * It adds a name to one layer that has been previously
120
	 * created using the startLayer method.
121
	 * @param name
122
	 * Layer name
123
	 * @param layer
124
	 * The consumer application object that represents a layer
125
	 */
126
	public void addNameToLayer(String name, Object layer);
127

  
128
	/**
129
	 * It adds the description to one layer that has been previously
130
	 * created using the startLayer method.
131
	 * @param description
132
	 * Layer description
133
	 * @param layer
134
	 * The consumer application object that represents a layer
135
	 */
136
	public void addDescriptionToLayer(String description, Object layer);
137

  
138
	/**
139
	 * It adds a spatial reference system to one layer that
140
	 * has been previously created using the startLayer method.
141
	 * @param srs
142
	 * Spatial reference system
143
	 * @param layer
144
	 * The consumer application object that represents a layer
145
	 */
146
	public void addSrsToLayer(String srs, Object Layer);
147

  
148
	/**
149
	 * It establish the relationship parent-child between two layers
150
	 * that have been previously created using the startLayer method.
151
	 * @param parent
152
	 * The consumer application object that represents the parent layer
153
	 * @param layer
154
	 * The consumer application object that represents the child layer
155
	 */
156
	public void addParentLayerToLayer(Object parent, Object layer);
157

  
158
	/**
159
	 * It adds a bounding box to one layer that  has been previously
160
	 * created using the startLayer method.
161
	 * @param bbox
162
	 * Layer bounding box
163
	 * @param layer
164
	 * The consumer application object that represents a layer
165
	 */
166
	public void addBboxToLayer(Object bbox, Object layer);
167

  
168
	/**
169
	 * It is thrown when the parser has found a new feature.
170
	 * @param id
171
	 * Feature identifier
172
	 * @param name
173
	 * Feature name
174
	 * @param namespace
175
	 * XML namespace
176
	 * @param attributes
177
	 * Feature attributes
178
	 * @param layer
179
	 * Consumer application object that represents a layer
180
	 * @return
181
	 * Consumer application object that represents a feature
182
	 */
183
	public Object startFeature(String id, String namespace, String name, IAttributesIterator attributes, Object layer);
184

  
185
	/**
186
	 * This method is thrown when the parser has finished to
187
	 * parse a feature.
188
	 * @param feature
189
	 * Consumer application object that represents a feature
190
	 */
191
	public void endFeature(Object feature);
192

  
193
	/**
194
	 * This method adds a name to one layer that has been
195
	 * previously created using the startFeature method.
196
	 * @param name
197
	 * Feature name
198
	 * @param feature
199
     * Consumer application object that represents a feature
200
	 */
201
	public void addNameToFeature(String name, Object feature);
202

  
203
	/**
204
	 * This method adds a feature to one layer that has been
205
	 * previously created using the startLayer method.
206
	 * @param feature
207
	 * Consumer application object that represents a feature
208
	 * @param layer
209
	 * Consumer application object that represents a layer
210
	 */
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff