Revision 458

View differences:

org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/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</artifactId>
5
  <packaging>pom</packaging>
6
  <version>2.1.11</version>
7
  <description>Generic Persistence Engine</description>
8
  <url>http://devel.gvsig.org/sites/org.gvsig.gpe/${project.version}</url>
9
  <name>${project.artifactId}</name>
10

  
11
  <parent>
12
      <groupId>org.gvsig</groupId>
13
      <artifactId>org.gvsig.desktop</artifactId>
14
      <version>2.0.103</version>
15
  </parent>
16
  
17
    <scm>
18
        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-gpe/org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11</connection>
19
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-gpe/org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11</developerConnection>
20
        <url>https://devel.gvsig.org/redmine/projects/gvsig-gpe/repository/show/org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11</url>
21
    </scm>
22
    <repositories>
23
      <repository>
24
        <id>gvsig-public-http-repository</id>
25
        <name>gvSIG maven public HTTP repository</name>
26
        <url>http://devel.gvsig.org/m2repo/j2se</url>
27
        <releases>
28
          <enabled>true</enabled>
29
          <updatePolicy>daily</updatePolicy>
30
          <checksumPolicy>warn</checksumPolicy>
31
        </releases>
32
        <snapshots>
33
          <enabled>true</enabled>
34
          <updatePolicy>daily</updatePolicy>
35
          <checksumPolicy>warn</checksumPolicy>
36
        </snapshots>
37
      </repository>
38
    </repositories>
39

  
40
  <build>
41
    <plugins>
42
      <plugin>
43
        <groupId>org.apache.maven.plugins</groupId>
44
        <artifactId>maven-release-plugin</artifactId>
45
        <configuration>
46
          <tagBase>https://devel.gvsig.org/svn/gvsig-gpe/org.gvsig.gpe/library/tags</tagBase>
47
          <goals>deploy</goals>
48
        </configuration>
49
      </plugin>
50
    </plugins>
51
  </build>
52

  
53
  <dependencyManagement>
54
    <dependencies>
55
      <!-- Self-deps -->
56
      
57
      <dependency>
58
        <groupId>org.gvsig</groupId>
59
        <artifactId>org.gvsig.gpe.lib.api</artifactId>  
60
        <version>2.1.11</version>
61
      </dependency>
62
      <dependency>
63
        <groupId>org.gvsig</groupId>
64
        <artifactId>org.gvsig.gpe.lib.spi</artifactId>
65
        <version>2.1.11</version>      
66
      </dependency>
67
      <dependency>
68
        <groupId>org.gvsig</groupId>
69
        <artifactId>org.gvsig.gpe.lib.impl</artifactId>
70
        <version>2.1.11</version>
71
      </dependency>
72
      <dependency>
73
        <groupId>org.gvsig</groupId>
74
        <artifactId>org.gvsig.gpe.prov.xml</artifactId>
75
        <version>2.1.11</version>
76
      </dependency>
77
      <dependency>
78
        <groupId>org.gvsig</groupId>
79
        <artifactId>org.gvsig.gpe.lib.impl</artifactId>
80
        <version>2.1.11</version>
81
        <classifier>tests</classifier>
82
      </dependency>
83
    <dependency>
84
      <groupId>org.gvsig</groupId>
85
      <artifactId>org.gvsig.gpe.exportto.kml</artifactId>
86
      <version>2.1.11</version>
87
    </dependency>      
88
    <dependency>
89
      <groupId>org.gvsig</groupId>
90
      <artifactId>org.gvsig.gpe.exportto.generic</artifactId>
91
      <version>2.1.11</version>
92
    </dependency>      
93
    <dependency>
94
      <groupId>org.gvsig</groupId>
95
      <artifactId>org.gvsig.gpe.prov.gml</artifactId>
96
      <version>2.1.11</version>
97
    </dependency>      
98
    <dependency>
99
      <groupId>org.gvsig</groupId>
100
      <artifactId>org.gvsig.gpe.prov.kml</artifactId>
101
      <version>2.1.11</version>
102
    </dependency>      
103

  
104
    
105
    <!-- SCHEMA/PULL LIBS -->
106
    
107
    <dependency>
108
      <groupId>org.gvsig</groupId>
109
      <artifactId>org.gvsig.xmlschema.lib.api</artifactId>
110
      <version>2.0.2</version>
111
    </dependency>
112
    <dependency>
113
      <groupId>org.gvsig</groupId>
114
      <artifactId>org.gvsig.xmlschema.lib.impl</artifactId>
115
      <version>2.0.2</version>
116
    </dependency>
117
    <dependency>
118
            <groupId>org.gvsig</groupId>
119
            <artifactId>org.gvsig.xmlschema.lib.spi</artifactId>
120
            <version>2.0.2</version>
121
        </dependency> 
122
        <dependency>
123
            <groupId>org.gvsig</groupId>
124
            <artifactId>org.gvsig.xmlschema.prov.kxml</artifactId>
125
            <version>2.0.2</version>
126
        </dependency>       
127

  
128
    <dependency>
129
      <groupId>org.gvsig</groupId>
130
      <artifactId>org.gvsig.xmlpull.lib.api</artifactId>
131
      <version>2.0.1</version>
132
    </dependency>
133
    <dependency>
134
      <groupId>org.gvsig</groupId>
135
      <artifactId>org.gvsig.xmlpull.lib.spi</artifactId>
136
      <version>2.0.1</version>
137
    </dependency>
138
    <dependency>
139
      <groupId>org.gvsig</groupId>
140
      <artifactId>org.gvsig.xmlpull.lib.impl</artifactId>
141
      <version>2.0.1</version>
142
    </dependency>
143
    <dependency>
144
      <groupId>org.gvsig</groupId>
145
      <artifactId>org.gvsig.xmlpull.prov.stax</artifactId>
146
      <version>2.0.1</version>
147
    </dependency>  
148
    <dependency>
149
      <groupId>org.gvsig</groupId>
150
      <artifactId>org.gvsig.xmlpull.prov.kxml</artifactId>
151
      <version>2.0.1</version>
152
    </dependency>
153
    
154
    <!-- TODO: Remove those entries when updated in libGPE (?) -->
155
    
156
    <dependency>
157
      <groupId>stax</groupId>
158
      <artifactId>stax-api</artifactId>
159
      <version>1.0.1</version>
160
    </dependency>
161
    <dependency>
162
      <groupId>stax</groupId>
163
      <artifactId>stax</artifactId>
164
      <version>1.2.0</version>
165
    </dependency>
166

  
167

  
168
    </dependencies>
169
  </dependencyManagement>
170
  <modules>
171
    <module>org.gvsig.gpe.app</module>
172
    <module>org.gvsig.gpe.lib</module>
173
    <module>org.gvsig.gpe.prov</module>
174
    <module>org.gvsig.gpe.exportto</module>
175
  </modules>
176
</project>
177

  
0 178

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/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/maven-v4_0_0.xsd">
3
  <modelVersion>4.0.0</modelVersion>
4
  <artifactId>org.gvsig.gpe.app.mainplugin</artifactId>
5
  <packaging>jar</packaging>
6
  
7
  <name>Formats: GML and KML</name>
8
  
9
  <parent>
10
    <groupId>org.gvsig</groupId>
11
    <artifactId>org.gvsig.gpe.app</artifactId>
12
    <version>2.1.11</version>
13
  </parent>
14

  
15
  <dependencies>
16
        <dependency>
17
            <groupId>org.slf4j</groupId>
18
            <artifactId>slf4j-api</artifactId>
19
            <scope>compile</scope>
20
        </dependency>
21
		<dependency>
22
			<groupId>org.gvsig</groupId>
23
			<artifactId>org.gvsig.gpe.lib.api</artifactId>
24
            <scope>compile</scope>
25
		</dependency>			
26
		<dependency>
27
			<groupId>org.gvsig</groupId>
28
			<artifactId>org.gvsig.gpe.lib.impl</artifactId>
29
            <scope>compile</scope>
30
		</dependency>	
31
		
32
		<dependency>
33
			<groupId>org.gvsig</groupId>
34
			<artifactId>org.gvsig.gpe.lib.spi</artifactId>
35
            <scope>runtime</scope>
36
		</dependency>			
37

  
38
		<dependency>
39
			<groupId>org.gvsig</groupId>
40
			<artifactId>org.gvsig.gpe.exportto.kml</artifactId>
41
            <scope>runtime</scope>
42
		</dependency>			
43
		<dependency>
44
			<groupId>org.gvsig</groupId>
45
			<artifactId>org.gvsig.gpe.exportto.generic</artifactId>
46
            <scope>runtime</scope>
47
		</dependency>			
48
		
49
		<dependency>
50
			<groupId>org.gvsig</groupId>
51
			<artifactId>org.gvsig.xmlschema.lib.api</artifactId>
52
            <scope>compile</scope>
53
		</dependency>
54
		<dependency>
55
			<groupId>org.gvsig</groupId>
56
			<artifactId>org.gvsig.xmlschema.lib.impl</artifactId>
57
			<scope>runtime</scope>
58
		</dependency>
59
		<dependency>
60
            <groupId>org.gvsig</groupId>
61
            <artifactId>org.gvsig.xmlschema.lib.spi</artifactId>
62
            <scope>runtime</scope>
63
        </dependency> 
64
        <dependency>
65
            <groupId>org.gvsig</groupId>
66
            <artifactId>org.gvsig.xmlschema.prov.kxml</artifactId>
67
            <scope>runtime</scope>
68
        </dependency>     	
69
	    <dependency>
70
        	<groupId>org.gvsig</groupId>
71
            <artifactId>org.gvsig.projection.api</artifactId>
72
            <scope>compile</scope>
73
        </dependency>
74
		<dependency>
75
			<groupId>org.gvsig</groupId>
76
			<artifactId>org.gvsig.andami</artifactId>
77
            <scope>compile</scope>
78
		</dependency>
79
		<dependency>
80
			<groupId>org.gvsig</groupId>
81
			<artifactId>org.gvsig.app.mainplugin</artifactId>
82
            <scope>compile</scope>
83
		</dependency>
84
		<dependency>
85
			<groupId>org.gvsig</groupId>
86
			<artifactId>org.gvsig.fmap.dal.api</artifactId>
87
            <scope>compile</scope>
88
		</dependency>
89
        <dependency>
90
            <groupId>org.gvsig</groupId>
91
            <artifactId>org.gvsig.fmap.dal.spi</artifactId>
92
            <scope>compile</scope>
93
        </dependency>
94
        <dependency>
95
            <groupId>org.gvsig</groupId>
96
            <artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
97
            <scope>compile</scope>
98
        </dependency>
99
        <dependency>
100
            <groupId>org.gvsig</groupId>
101
            <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
102
            <scope>compile</scope>
103
        </dependency>
104
        <dependency>
105
            <groupId>org.gvsig</groupId>
106
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
107
            <scope>compile</scope>
108
        </dependency>
109
        
110
        <!--
111
        <dependency>
112
            <groupId>org.gvsig</groupId>
113
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
114
            <scope>compile</scope>
115
        </dependency>
116
        -->
117
        
118
        <dependency>
119
            <groupId>org.gvsig</groupId>
120
            <artifactId>org.gvsig.tools.lib</artifactId>
121
            <scope>compile</scope>
122
        </dependency>
123
        
124
        <!--
125
        <dependency>
126
            <groupId>org.gvsig</groupId>
127
            <artifactId>org.gvsig.timesupport.lib.api</artifactId>
128
            <scope>compile</scope>
129
        </dependency>
130
        -->
131
        
132
        
133
        <!-- tests --> 
134
	    <dependency>
135
    	    <groupId>org.gvsig</groupId>
136
        	<artifactId>org.gvsig.fmap.dal.impl</artifactId>
137
        	<type>test-jar</type>
138
        	<scope>test</scope>
139
    	</dependency>
140
        
141
		<!-- runtime -->
142
		<dependency>
143
			<groupId>org.gvsig</groupId>
144
			<artifactId>org.gvsig.gpe.prov.xml</artifactId>
145
			<scope>runtime</scope>
146
		</dependency>
147
		<dependency>
148
			<groupId>org.gvsig</groupId>
149
			<artifactId>org.gvsig.gpe.prov.gml</artifactId>
150
			<scope>runtime</scope>
151
		</dependency>	
152
		<dependency>
153
			<groupId>org.gvsig</groupId>
154
			<artifactId>org.gvsig.gpe.prov.kml</artifactId>
155
			<scope>runtime</scope>
156
		</dependency>	
157
		<dependency>
158
			<groupId>org.gvsig</groupId>
159
			<artifactId>org.gvsig.xmlpull.lib.api</artifactId>
160
			<scope>runtime</scope>
161
		</dependency>
162
		<dependency>
163
			<groupId>org.gvsig</groupId>
164
			<artifactId>org.gvsig.xmlpull.lib.spi</artifactId>
165
			<scope>runtime</scope>
166
		</dependency>
167
		<dependency>
168
			<groupId>org.gvsig</groupId>
169
			<artifactId>org.gvsig.xmlpull.lib.impl</artifactId>
170
			<scope>runtime</scope>
171
		</dependency>
172
		<dependency>
173
			<groupId>org.gvsig</groupId>
174
			<artifactId>org.gvsig.xmlpull.prov.stax</artifactId>
175
			<scope>runtime</scope>
176
		</dependency>	
177
		<dependency>
178
			<groupId>org.gvsig</groupId>
179
			<artifactId>org.gvsig.xmlpull.prov.kxml</artifactId>
180
			<scope>runtime</scope>
181
		</dependency>	
182
        <dependency>
183
            <groupId>jfree</groupId>
184
            <artifactId>jcommon</artifactId>
185
            <scope>compile</scope>
186
        </dependency>
187
        
188
		<!--
189
		<dependency>
190
			<groupId>org.gvsig</groupId>
191
			<artifactId>org.gvsig.fmap.dal.index.spatial</artifactId>
192
			<classifier>jts</classifier>
193
			<scope>test</scope>
194
		</dependency>
195
		
196
		<dependency>
197
			<groupId>org.gvsig</groupId>
198
			<artifactId>org.gvsig.fmap.geometry.generalpath</artifactId>
199
			<scope>test</scope>
200
		</dependency>
201
		-->
202
		<dependency>
203
			<groupId>org.gvsig</groupId>
204
			<artifactId>org.gvsig.tools.lib</artifactId>
205
			<type>test-jar</type>
206
			<scope>test</scope>
207
		</dependency>
208
		
209
		<!-- TODO: Remove those entries when updated in libGPE -->
210
		<dependency>
211
			<groupId>stax</groupId>
212
			<artifactId>stax-api</artifactId>
213
			<scope>runtime</scope>
214
		</dependency>
215
		
216
		<dependency>
217
			<groupId>stax</groupId>
218
			<artifactId>stax</artifactId>
219
			<scope>runtime</scope>
220
		</dependency>
221
  </dependencies>
222
  
223
  <build>
224
  	<plugins>
225
  	
226
  		<plugin>
227
  			<groupId>org.apache.maven.plugins</groupId>
228
  			<artifactId>maven-surefire-plugin</artifactId>
229
  			<configuration>
230
  				<skipTests>true</skipTests>
231
  			</configuration>
232
		</plugin>
233
	</plugins>
234
  </build>
235
  
236
	<properties>
237
        <gvsig.package.info.state>testing</gvsig.package.info.state>
238
        <gvsig.package.info.categories>Formats,Vector</gvsig.package.info.categories>
239
        <gvsig.package.info.official>true</gvsig.package.info.official>
240
        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2</gvsig.package.info.dependencies>
241
        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-gpe/pool</gvsig.package.info.poolURL>
242
	</properties>  
243
</project>
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/buildNumber.properties
1
#Wed Oct 07 08:44:20 CEST 2015
2
buildNumber=2112
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.fmap.dal.store.gpe.DALGPELibrary
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/resources/org/gvsig/fmap/dal/store/gpe/GPEMetadata.xml
1
<?xml version="1.0"?>
2
<!--
3
Definitions of metadata fields for a gpe file.  
4
 -->
5
<definitions>
6
  <version>1.0.0</version>
7
  <classes>
8
    
9
    <class name="GPE" namespace="Metadata">
10
      <extends>
11
       <class namespace="Metadata" name="SpatialProvider"/>
12
      </extends>
13
      <description>Metadata of a GPE store</description>
14
      <fields>
15
      </fields>
16
    </class>
17

  
18
  </classes>
19
</definitions>  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/resources/org/gvsig/fmap/dal/store/gpe/GPEParameters.xml
1
<?xml version= "1.0 "?>
2
<definitions>
3
  <version>1.0.0</version>
4
  <classes>
5
    <class name="GPEStoreParameters">
6
       <extends>
7
       <class namespace="dal" name="ProviderParameters"/>
8
      </extends>
9
      <description>Store the parameters need to open a GPE supported file</description>
10
      <fields>
11
        <field name="File" type="file" mandatory="true" group="Basic">
12
          <description>GPE supported file</description>
13
        </field>
14
        <field name="CRS" type="crs" mandatory="true" group="Basic">
15
          <description>The coordinate reference system used in this GPE supported file</description>
16
        </field>
17
        <field name="useAxisOrderYX" label="Use axis order YX" defaultValue="false" type="Boolean" mandatory="false" group="Basic">
18
          <description>If set use axis order XY</description>
19
        </field>
20
      </fields>
21
    </class>
22
  </classes>
23
</definitions>  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<!--
2

  
3
    gvSIG. Desktop Geographic Information System.
4

  
5
    Copyright (C) 2007-2013 gvSIG Association.
6

  
7
    This program is free software; you can redistribute it and/or
8
    modify it under the terms of the GNU General Public License
9
    as published by the Free Software Foundation; either version 3
10
    of the License, or (at your option) any later version.
11

  
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16

  
17
    You should have received a copy of the GNU General Public License
18
    along with this program; if not, write to the Free Software
19
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
    MA  02110-1301, USA.
21

  
22
    For any additional information, do not hesitate to contact us
23
    at info AT gvsig.com, or visit our website www.gvsig.com.
24

  
25
-->
26
<assembly>
27
  <id>gvsig-plugin-package</id>
28
  <formats>
29
    <format>zip</format>
30
  </formats>
31
  <baseDirectory>${project.artifactId}</baseDirectory>
32
  <includeBaseDirectory>true</includeBaseDirectory>
33
  <files>
34
    <file>
35
      <source>target/${project.artifactId}-${project.version}.jar</source>
36
      <outputDirectory>lib</outputDirectory>
37
    </file>
38
    <file>
39
      <source>target/package.info</source>
40
    </file>
41
  </files>
42

  
43
  <fileSets>
44
    <fileSet>
45
      <directory>src/main/resources-plugin</directory>
46
      <outputDirectory>.</outputDirectory>
47
    </fileSet>
48
  </fileSets>
49

  
50
  <dependencySets>
51
    <dependencySet>
52
      <useProjectArtifact>false</useProjectArtifact>
53
      <useTransitiveDependencies>false</useTransitiveDependencies>
54
      <outputDirectory>lib</outputDirectory>
55
      <includes>
56
    	<include>org.gvsig:org.gvsig.gpe.lib*</include>
57
        <include>org.gvsig:org.gvsig.gpe.prov*</include>
58
        <include>org.gvsig:org.gvsig.xmlpull*</include>
59
        <include>org.gvsig:org.gvsig.gpe.exportto*</include>
60
        <include>org.gvsig:org.gvsig.xmlschema*</include>
61
        <include>stax:stax</include>
62
      </includes>
63
    </dependencySet>
64
  </dependencySets>
65

  
66
</assembly>
67

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/java/org/gvsig/gpe/GPELibraryExtension.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;
29

  
30
import org.gvsig.andami.IconThemeHelper;
31
import org.gvsig.andami.plugins.Extension;
32
import org.gvsig.fmap.dal.store.gpe.GPEStoreProvider;
33
import org.gvsig.fmap.mapcontext.MapContextLocator;
34

  
35

  
36
/**
37
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
38
 */
39
public class GPELibraryExtension extends Extension{
40
		
41
	public void execute(String actionCommand) {
42
	}
43

  
44
	public void initialize() {
45
		IconThemeHelper.registerIcon("layer", "layer-icon-gpe", this);
46
	}	
47

  
48
	public void postInitialize() {
49
		MapContextLocator.getMapContextManager().registerIconLayer(GPEStoreProvider.NAME, "layer-icon-gpe");
50
	}
51

  
52
	public boolean isEnabled() {
53
		return false;
54
	}
55

  
56
	public boolean isVisible() {
57
		return false;
58
	}
59

  
60
}
61

  
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/gpe/GPEStoreParameters.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.fmap.dal.store.gpe;
29

  
30
import java.io.File;
31
import org.apache.commons.lang3.BooleanUtils;
32

  
33
import org.cresques.cts.IProjection;
34
import org.gvsig.fmap.dal.DataStoreParameters;
35
import org.gvsig.fmap.dal.FileHelper;
36
import org.gvsig.fmap.dal.feature.EditableFeatureType;
37
import org.gvsig.fmap.dal.feature.FeatureType;
38
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
39
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
40
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
41
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
42
import org.gvsig.fmap.geom.primitive.Envelope;
43
import org.gvsig.tools.dynobject.DelegatedDynObject;
44
import org.gvsig.tools.dynobject.DynStruct;
45

  
46
/**
47
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
48
 */
49
public class GPEStoreParameters extends AbstractDataParameters implements
50
DataStoreParameters, FilesystemStoreParameters,
51
NewFeatureStoreParameters {
52

  
53
    public static final String PARAMETERS_DEFINITION_NAME = "GPEStoreParameters";
54

  
55
    private static final String FILE_PARAMETER_NAME = "File";
56
    private static final String CRS_PARAMETER_NAME = "CRS";
57
    private static final String ENVELOPE_PARAMETER_NAME = "Envelope";
58
    private static final String FEATURETYPE_PARAMETER_NAME = "FeatureType";
59

  
60
    private DelegatedDynObject parameters;
61

  
62
    public GPEStoreParameters() {
63
        this(PARAMETERS_DEFINITION_NAME);
64
    }
65

  
66
    protected GPEStoreParameters(String parametersDefinitionName) {
67
        this(parametersDefinitionName, GPEStoreProvider.NAME);
68
    }
69

  
70
    public GPEStoreParameters(String parametersDefinitionName, String name) {
71
        super();
72
        this.parameters = (DelegatedDynObject) FileHelper.newParameters(parametersDefinitionName);
73
        this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME, name);       
74
    }
75

  
76
    protected static void registerParametersDefinition(){ 
77
        DynStruct dynStruct = FileHelper.registerParametersDefinition(
78
            GPEStoreParameters.PARAMETERS_DEFINITION_NAME,
79
            GPEStoreParameters.class, "GPEParameters.xml");
80
        
81
        dynStruct.addDynFieldObject(ENVELOPE_PARAMETER_NAME).
82
        setClassOfValue(Envelope.class).setMandatory(false);
83

  
84
        dynStruct.addDynFieldObject(FEATURETYPE_PARAMETER_NAME).
85
        setClassOfValue(FeatureType.class).setMandatory(false);
86
    }
87

  
88
    protected DelegatedDynObject getDelegatedDynObject() {
89
        return parameters;
90
    }
91

  
92
    public String getDataStoreName() {
93
        return GPEStoreProvider.NAME;
94
    }
95

  
96
    public String getDescription() {
97
        return GPEStoreProvider.DESCRIPTION;
98
    }
99

  
100
    public boolean isValid() {
101
        return (this.getFile() != null);
102
    }
103

  
104
    public File getFile() {
105
        return (File) this.getDynValue(FILE_PARAMETER_NAME);
106
    }
107

  
108
    public void setFile(File file) {
109
        this.setDynValue(FILE_PARAMETER_NAME, file);
110
    }	
111

  
112
    public String getFileName() {
113
        return this.getFile().getAbsolutePath();
114
    }
115

  
116
    public void setFileName(String fileName) {
117
        this.setDynValue(FILE_PARAMETER_NAME, fileName);
118
    }
119

  
120
    public IProjection getCRS() {
121
        return (IProjection) this.getDynValue(CRS_PARAMETER_NAME);
122
    }
123

  
124
    public void setCRS(IProjection srs) {
125
        this.setDynValue(CRS_PARAMETER_NAME, srs);
126
    }
127

  
128
    public void setCRS(String srs) {
129
        this.setDynValue(CRS_PARAMETER_NAME, srs);
130
    }
131

  
132
    public Envelope getEnvelope() {
133
        return (Envelope) this.getDynValue(ENVELOPE_PARAMETER_NAME);
134
    }
135

  
136
    public void setEnvelope(Envelope envelope) {
137
        this.setDynValue(ENVELOPE_PARAMETER_NAME, envelope);
138
    }
139
    
140
    public void setDynValue(String name, Object val) {
141
    	super.setDynValue(name, val);
142
    }
143

  
144
    public boolean getUseAxisOrderYX()  {
145
        boolean x = BooleanUtils.isTrue((Boolean) this.getDynValue("useAxisOrderYX"));
146
        return x;
147
    }
148
    
149
	public EditableFeatureType getDefaultFeatureType() {
150
		return (EditableFeatureType) this.getDynValue(FEATURETYPE_PARAMETER_NAME);
151
	}
152

  
153
	public void setDefaultFeatureType(FeatureType featureType) {
154
		this.setDynValue(FEATURETYPE_PARAMETER_NAME, featureType);
155
	}
156
}
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/gpe/handlers/FmapErrorHandler.java
1
package org.gvsig.fmap.dal.store.gpe.handlers;
2

  
3
import org.gvsig.gpe.lib.impl.parser.GPEErrorHandler;
4

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

  
56
}
org.gvsig.gpe/library/tags/org.gvsig.gpe-2.1.11/org.gvsig.gpe.app/org.gvsig.gpe.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/gpe/handlers/FmapContentHandler.java
1
package org.gvsig.fmap.dal.store.gpe.handlers;
2

  
3
import java.io.File;
4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.HashMap;
7
import java.util.Iterator;
8
import java.util.List;
9
import java.util.Map;
10

  
11
import org.cresques.cts.IProjection;
12
import org.gvsig.fmap.dal.DataTypes;
13
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
14
import org.gvsig.fmap.dal.feature.EditableFeatureType;
15
import org.gvsig.fmap.dal.feature.Feature;
16
import org.gvsig.fmap.dal.feature.FeatureType;
17
import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider;
18
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
19
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
20
import org.gvsig.fmap.dal.store.gpe.GPEStoreProvider;
21
import org.gvsig.fmap.dal.store.gpe.model.GPEElement;
22
import org.gvsig.fmap.dal.store.gpe.model.GPEFeature;
23
import org.gvsig.fmap.geom.Geometry;
24
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
25
import org.gvsig.fmap.geom.Geometry.TYPES;
26
import org.gvsig.fmap.geom.GeometryLocator;
27
import org.gvsig.fmap.geom.GeometryManager;
28
import org.gvsig.fmap.geom.aggregate.MultiCurve;
29
import org.gvsig.fmap.geom.aggregate.MultiPoint;
30
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
31
import org.gvsig.fmap.geom.aggregate.MultiSurface;
32
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
33
import org.gvsig.fmap.geom.exception.CreateGeometryException;
34
import org.gvsig.fmap.geom.primitive.Curve;
35
import org.gvsig.fmap.geom.primitive.Envelope;
36
import org.gvsig.fmap.geom.primitive.GeneralPathX;
37
import org.gvsig.fmap.geom.primitive.Point;
38
import org.gvsig.fmap.geom.primitive.Primitive;
39
import org.gvsig.fmap.geom.primitive.Surface;
40
import org.gvsig.gpe.lib.api.parser.IAttributesIterator;
41
import org.gvsig.gpe.lib.api.parser.ICoordinateIterator;
42
import org.gvsig.gpe.lib.api.parser.IGPEErrorHandler;
43
import org.gvsig.gpe.lib.impl.parser.GPEContentHandler;
44
import org.jfree.util.Log;
45
import org.slf4j.Logger;
46
import org.slf4j.LoggerFactory;
47
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
48
 *
49
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
50
 *
51
 * This program is free software; you can redistribute it and/or
52
 * modify it under the terms of the GNU General Public License
53
 * as published by the Free Software Foundation; either version 2
54
 * of the License, or (at your option) any later version.
55
 *
56
 * This program is distributed in the hope that it will be useful,
57
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
58
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
59
 * GNU General Public License for more details.
60
 *
61
 * You should have received a copy of the GNU General Public License
62
 * along with this program; if not, write to the Free Software
63
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
64
 */
65

  
66
public class FmapContentHandler extends GPEContentHandler {
67
    private static final Logger LOG = LoggerFactory.getLogger(FmapContentHandler.class);
68

  
69
    private HashMap featureSet = null;
70
    private EditableFeatureType featureType = null;
71
    private FeatureStoreProviderServices store = null;
72
    private GPEStoreProvider storeProvider = null;
73
    private GeometryManager geomManager = GeometryLocator.getGeometryManager();
74
    private int featureId = 0;
75
    private Envelope envelope = null;
76
    private File file = null;
77
    private IProjection srs = null;
78
    private int geometryType = 0;
79
    private boolean useAxisOrderYX = false;
80

  
81
    public FmapContentHandler(IGPEErrorHandler errorHandler, FeatureStoreProviderServices store,
82
        GPEStoreProvider storeProvider, File file, IProjection srs, int geometryType) {
83
        super();
84
        setErrorHandler(errorHandler);
85
        this.store = store;
86
        this.storeProvider = storeProvider;
87
        this.file = file;
88
        this.srs = srs;
89
        this.geometryType = geometryType;
90
    }    
91
    
92
    public FmapContentHandler(IGPEErrorHandler errorHandler, FeatureStoreProviderServices store,
93
        GPEStoreProvider storeProvider, File file, IProjection srs, int geometryType,
94
        boolean useAxisOrderYX) {
95
        this(errorHandler, store, storeProvider, file, srs, geometryType);
96
        this.useAxisOrderYX = useAxisOrderYX;
97
    }
98

  
99
    public int getFeaturesCount(){
100
        return featureSet.size();
101
    }
102

  
103
    public Feature getFeatureAt(int index){
104
        return (Feature)featureSet.get(new Integer(index));
105
    }
106

  
107
    public EditableFeatureType getFeatureType(){
108
        return featureType;
109
    }
110

  
111

  
112
    /**
113
     * @return the featureSet
114
     */
115
    public HashMap getFeatureSet() {
116
        return featureSet;
117
    }
118

  
119
    /*
120
     * (non-Javadoc)
121
     * @see org.gvsig.gpe.parser.GPEContentHandler#startLayer(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.gvsig.gpe.parser.IAttributesIterator, java.lang.Object, java.lang.Object)
122
     */
123
    public Object startLayer(String id, String namespace, String name,
124
        String description, String srs, IAttributesIterator iterator, Object parentLayer, Object box) {
125
        if (featureSet == null){
126
            featureSet = new HashMap();
127
        }
128
        if (envelope == null){
129
            try {
130
                envelope = geomManager.createEnvelope(SUBTYPES.GEOM2D);
131
            } catch (CreateEnvelopeException e) {
132
                Log.error("Error creating the envelope", e);
133
            }
134
        }
135
        return featureSet;
136
    }
137

  
138
    /*
139
     * (non-Javadoc)
140
     * @see org.gvsig.gpe.IGPEContentHandler#endLayer(java.lang.Object)
141
     */
142
    public void endLayer(Object layer) {
143
        if (featureType == null){
144
            createFeatureType(null);
145
        }
146
        storeProvider.setEnvelope(envelope);
147
    }
148

  
149
    /*
150
     * (non-Javadoc)
151
     * @see org.gvsig.gpe.parser.GPEContentHandler#startPoint(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
152
     */
153
    public Object startPoint(String id, ICoordinateIterator coords, String srs) {
154
        return createPoint(coords);
155
    }
156

  
157
    private Point createPoint(ICoordinateIterator coords){
158
        double[] buffer = new double[coords.getDimension()];
159
        try {
160
            coords.hasNext();
161
            coords.next(buffer);
162
            Point point = null;
163
            if (buffer.length == 2){
164
                point = (Point) geomManager.create(TYPES.POINT, SUBTYPES.GEOM2D);
165
                if( useAxisOrderYX ) {
166
                    point.setX(buffer[1]);
167
                    point.setY(buffer[0]);
168
                } else {
169
                    point.setX(buffer[0]);
170
                    point.setY(buffer[1]);
171
                }
172
            }else if (buffer.length == 3){
173
                point = (Point) geomManager.create(TYPES.POINT, SUBTYPES.GEOM3D);
174
                if( useAxisOrderYX ) {
175
                    point.setX(buffer[1]);
176
                    point.setY(buffer[0]);
177
                } else {
178
                    point.setX(buffer[0]);
179
                    point.setY(buffer[1]);
180
                }
181
                point.setCoordinateAt(2, buffer[2]);
182
            }
183
            return point;
184
        } catch (IOException e) {
185
            getErrorHandler().addError(e);
186
        } catch (CreateGeometryException e) {
187
            getErrorHandler().addError(e);
188
        }
189
        return null;
190
    }
191

  
192
    private Point createPoint(double[] buffer){
193
        try {
194
            Point point = null;
195
            if (buffer.length == 2){
196
                point = (Point) geomManager.create(TYPES.POINT, SUBTYPES.GEOM2D);
197
                if( useAxisOrderYX ) {
198
                    point.setX(buffer[1]);
199
                    point.setY(buffer[0]);
200
                } else {
201
                    point.setX(buffer[0]);
202
                    point.setY(buffer[1]);
203
                }
204
            }else if (buffer.length == 3){
205
                point = (Point) geomManager.create(TYPES.POINT, SUBTYPES.GEOM3D);
206
                if( useAxisOrderYX ) {
207
                    point.setX(buffer[1]);
208
                    point.setY(buffer[0]);
209
                } else {
210
                    point.setX(buffer[0]);
211
                    point.setY(buffer[1]);
212
                }
213
                point.setCoordinateAt(2, buffer[2]);
214
            }
215
            return point;
216
        }catch (CreateGeometryException e) {
217
            getErrorHandler().addError(e);
218
        }
219
        return null;
220
    }
221

  
222

  
223
    /* (non-Javadoc)
224
     * @see org.gvsig.gpe.parser.GPEContentHandler#startLineString(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
225
     */
226
    public Object startLineString(String id, ICoordinateIterator coords,
227
        String srs) {
228
        return createCurve(coords);
229
    }
230

  
231
    private Curve createCurve(ICoordinateIterator coords){
232
        GeneralPathX gp = createGeneralPathX(coords);
233
        try {
234
            Curve curve = null;
235
            if (coords == null || coords.getDimension() == 2){
236
                curve = (Curve) geomManager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
237
            }else if (coords.getDimension() == 3){
238
                curve = (Curve) geomManager.create(TYPES.CURVE, SUBTYPES.GEOM3D);
239
            }
240
            curve.setGeneralPath(gp);
241
            return curve;
242
        } catch (CreateGeometryException e) {
243
            getErrorHandler().addError(e);
244
        }
245
        return null;
246
    }
247

  
248
    private GeneralPathX createGeneralPathX(ICoordinateIterator coords){
249
        GeneralPathX gp = new GeneralPathX();
250
        if (coords == null){
251
            return gp;
252
        }
253
        double[] buffer = new double[coords.getDimension()];
254
        try {
255
            if (coords.hasNext()){
256
                coords.next(buffer);
257
                if( this.useAxisOrderYX ) {
258
                    gp.moveTo(buffer[1], buffer[0]);
259
                } else {
260
                    gp.moveTo(buffer[0], buffer[1]);
261
                }
262
            }
263
            while(coords.hasNext()){
264
                coords.next(buffer);
265
                if( this.useAxisOrderYX ) {
266
                    gp.lineTo(buffer[1], buffer[0]);
267
                } else {
268
                    gp.lineTo(buffer[0], buffer[1]);
269
                }
270
            }
271
        } catch (IOException e) {
272
            getErrorHandler().addError(e);
273
        }
274
        return gp;
275
    }
276

  
277
    /* (non-Javadoc)
278
     * @see org.gvsig.gpe.parser.GPEContentHandler#startPolygon(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
279
     */
280

  
281
    public Object startPolygon(String id, ICoordinateIterator coords, String srs) {
282
        return createSurface(coords);
283
    }
284

  
285
    private Surface createSurface(ICoordinateIterator coords){
286
        GeneralPathX gp = createGeneralPathX(coords);
287
        try {
288
            Surface surface = null;
289
            if (coords.getDimension() == 2){
290
                surface = (Surface) geomManager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
291
            }else if (coords.getDimension() == 3){
292
                surface = (Surface) geomManager.create(TYPES.SURFACE, SUBTYPES.GEOM3D);
293
            }
294
            surface.setGeneralPath(gp);
295
            return surface;
296
        } catch (CreateGeometryException e) {
297
            getErrorHandler().addError(e);
298
        }
299
        return null;
300
    }
301

  
302

  
303
    /* (non-Javadoc)
304
     * @see org.gvsig.gpe.parser.GPEContentHandler#startInnerPolygon(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
305
     */
306
    public Object startInnerPolygon(String id, ICoordinateIterator coords,
307
        String srs) {
308
        return createSurface(coords);
309
    }
310

  
311
    /*
312
     * (non-Javadoc)
313
     * @see org.gvsig.gpe.IGPEContentHandler#addGeometryToFeature(java.lang.Object, java.lang.Object)
314
     */
315
    public void addGeometryToFeature(Object geometry, Object feature) {
316
        
317
        /*
318
         * Two geometries (possibly of different type) in the same feature
319
         * Instead of overwriting we will preserve the first that arrives.
320
         * Alternative: aggregate, but then gvSIG would have issues to
321
         * draw? or export? 
322
         */
323
        GPEFeature gpe_feat = (GPEFeature) feature;
324
        Geometry geom = gpe_feat.getGeometry();
325
        if (geom == null ||
326
            geom.getGeometryType().getType() == Geometry.TYPES.NULL) {
327
            
328
            gpe_feat.setGeometry((Geometry)geometry);
329
        }
330
    }
331

  
332
    /*
333
     * (non-Javadoc)
334
     * @see org.gvsig.gpe.IGPEContentHandler#addBboxToLayer(java.lang.Object, java.lang.Object)
335
     */
336
    public void addBboxToLayer(Object bbox, Object layer) {
337
        //		if (layer != null){
338
        //		GPEBBox gpeBBox = (GPEBBox)bbox;
339
        //		if (gpeBBox.getSrs() != null){
340
        //		IProjection projection = null;
341
        //		try{
342
        //		CRSFactory.getCRS(gpeBBox.getSrs());
343
        //		}catch(Exception e){
344
        //		//If the CRS factory has an error.
345
        //		}
346
        //		if ((projection != null) && (!(projection.equals(((FLayer)layer).getProjection())))){
347
        //		//TODO reproyectar la bbox y asignarsela a la capa
348
        //		}
349
        //		}
350
        //		((IGPEDriver)layer).setExtent(gpeBBox.getBbox2D());
351
        //		}
352
    }
353

  
354
    /*
355
     * (non-Javadoc)
356
     * @see org.gvsig.gpe.IGPEContentHandler#addElementToFeature(java.lang.Object, java.lang.Object)
357
     */
358
    public void addElementToFeature(Object element, Object feature) {
359
        GPEElement gpeElement = (GPEElement)element;
360
        ((GPEFeature)feature).addElement(gpeElement);
361
    }
362

  
363
    /*
364
     * (non-Javadoc)
365
     * @see org.gvsig.gpe.IGPEContentHandler#addFeatureToLayer(java.lang.Object, java.lang.Object)
366
     */
367
    public void addFeatureToLayer(Object feature, Object layer) {
368
        GPEFeature gpefeature = (GPEFeature)feature;
369
        Envelope currentEnvelope = gpefeature.getEnvelope();
370
        if (featureType == null){
371
            createFeatureType(gpefeature);
372

  
373
            //Initialize the envelope
374
            try {
375
                envelope = geomManager.createEnvelope(SUBTYPES.GEOM2D);
376
            } catch (CreateEnvelopeException e) {
377
                getErrorHandler().addError(e);
378
            }
379
            //Calculates the envelope
380
            envelope = currentEnvelope;
381
        }else{
382
            //Calculates the envelope
383
            if (currentEnvelope != null){
384
                envelope.add(currentEnvelope);
385
            }
386
        }
387
        //If it is null is a multilayer: not supported yet
388
        if (layer != null){
389
            FeatureProvider data = new DefaultFeatureProvider(featureType.getNotEditableCopy(), storeProvider.createNewOID());
390
            Map elements = gpefeature.getelements();
391
            Iterator keys = elements.keySet().iterator();
392
            String gid = gpefeature.getId();              
393
            data.setOID(gid);              
394
            while (keys.hasNext()){
395
                String elementName = (String)keys.next();
396
                if (featureType.getIndex(elementName) != -1) {
397
                    /*
398
                     * If attribute exists, set its value
399
                     * (if a field description was not properly parsed in the
400
                     * feature type description (previous http request) then
401
                     * perhaps it's not available in featureType) 
402
                     */
403
                    data.set(elementName, ((GPEElement)elements.get(elementName)).getValue());
404
                }
405
            }
406
            data.setDefaultGeometry(gpefeature.getGeometry());
407
            data.set(featureType.getDefaultGeometryAttributeIndex(), gpefeature.getGeometry());
408
            ((HashMap)layer).put(gid, data);
409
        }
410
    }
411

  
412
    private void createFeatureType(GPEFeature gpefeature){
413
        featureType = store.createFeatureType();
414
        
415
        //Adding the Geometry field
416
        EditableFeatureAttributeDescriptor attributeDescriptor = featureType.add("the_geom", DataTypes.GEOMETRY).setGeometryType(geometryType);
417
        attributeDescriptor.setGeometrySubType(SUBTYPES.GEOM2D);
418
        attributeDescriptor.setSRS(srs);
419
        featureType.setDefaultGeometryAttributeName("the_geom");
420
        
421
        //Adding the ID
422
        EditableFeatureAttributeDescriptor ed = featureType.add("gid", DataTypes.LONG);
423
        ed.setSize(10);
424

  
425
        featureType.setHasOID(true);
426

  
427
        if (gpefeature != null){
428
            Map elements = gpefeature.getelements();
429
            Iterator keys = elements.keySet().iterator();
430
            while (keys.hasNext()){
431
                String elementName = (String)keys.next();
432
                if (!elementName.equals("the_geom") && !elementName.equals("gid")){
433
                    ed = featureType.add(elementName, DataTypes.STRING);
434
                    ed.setSize(80);
435
                }
436
            }
437
        }
438

  
439
        FeatureType defaultType = featureType.getNotEditableCopy();
440
        List types = new ArrayList(1);
441
        types.add(defaultType);
442
        this.store.setFeatureTypes(types, defaultType);
443
    }
444

  
445
    /*
446
     * (non-Javadoc)
447
     * @see org.gvsig.gpe.IGPEContentHandler#addInnerPolygonToPolygon(java.lang.Object, java.lang.Object)
448
     */
449
    public void addInnerPolygonToPolygon(Object innerPolygon, Object Polygon) {
450
        //((Geometry)Polygon).addGeometry((GPEGeometry)innerPolygon);
451
    }
452

  
453
    /*
454
     * (non-Javadoc)
455
     * @see org.gvsig.gpe.IGPEContentHandler#addNameToFeature(java.lang.String, java.lang.Object)
456
     */
457
    public void addNameToFeature(String name, Object feature) {
458

  
459
    }
460

  
461
    /*
462
     * (non-Javadoc)
463
     * @see org.gvsig.gpe.IGPEContentHandler#addParentElementToElement(java.lang.Object, java.lang.Object)
464
     */
465
    public void addParentElementToElement(Object parent, Object element) {
466

  
467
    }
468

  
469
    /*
470
     * (non-Javadoc)
471
     * @see org.gvsig.gpe.IGPEContentHandler#addSrsToLayer(java.lang.String, java.lang.Object)
472
     */
473
    public void addSrsToLayer(String srs, Object Layer) {
474
        //		this.srs = srs;
475
    }
476

  
477

  
478
    /* (non-Javadoc)
479
     * @see org.gvsig.gpe.parser.GPEContentHandler#startBbox(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
480
     */
481
    public Object startBbox(String id, ICoordinateIterator coords, String srs) {
482
        Envelope envelope = null;
483
        try {
484
            if (coords.getDimension() == 2){
485
                envelope = geomManager.createEnvelope(SUBTYPES.GEOM2D);
486
            }else if (coords.getDimension() == 3){
487
                envelope = geomManager.createEnvelope(SUBTYPES.GEOM3D);
488
            }
489
            double[] buffer = new double[coords.getDimension()];
490

  
491
            if (coords.hasNext()){
492
                coords.next(buffer);
493
                envelope.setLowerCorner(createPoint(buffer));
494
            }
495
            if (coords.hasNext()){
496
                coords.next(buffer);
497
                envelope.setUpperCorner(createPoint(buffer));
498
            }
499
        } catch (IOException e) {
500
            getErrorHandler().addError(e);
501
        } catch (CreateEnvelopeException e) {
502
            getErrorHandler().addError(e);
503
        }
504
        return envelope;
505
    }
506

  
507
    /*
508
     * (non-Javadoc)
509
     * @see org.gvsig.gpe.parser.GPEContentHandler#startElement(java.lang.String, java.lang.String, java.lang.Object, org.gvsig.gpe.parser.IAttributesIterator, java.lang.Object)
510
     */
511
    public Object startElement(String namespace, String name, Object value,
512
        IAttributesIterator attributesIterator,	Object parentElement) {
513
        return new GPEElement(name, value, (GPEElement)parentElement);
514
    }
515

  
516
    /*
517
     * (non-Javadoc)
518
     * @see org.gvsig.gpe.parser.GPEContentHandler#startFeature(java.lang.String, java.lang.String, java.lang.String, org.gvsig.gpe.parser.IAttributesIterator, java.lang.Object)
519
     */
520
    public Object startFeature(String id, String namespace, String name,
521
        IAttributesIterator attributes, Object layer){
522
        String sId;
523
        if (id == null){
524
            sId = new String(new Long(featureId).toString());			
525
        }else{
526
            sId = id;
527
        }
528
        featureId++;
529
        //Check the xml schema...
530
        //		for (int i=0 ; i<schemas.size() ; i++){
531
        //			IXSSchema schema = schemas.get(i);
532
        //			IXSElementDeclaration element = schema.getElementDeclarationByName(namespace, name);
533
        //			if (element != null){
534
        //				featureType = store.createFeatureType();
535
        //				IXSTypeDefinition type = element.getTypeDefinition();
536
        //				if (type instanceof IXSComplexTypeDefinition){
537
        //					IXSComplexTypeDefinition complexType = (IXSComplexTypeDefinition)type;
538
        //					complexType.getContentType().
539
        //				}
540
        //
541
        //				featureType.add("the_geom", DataTypes.GEOMETRY).setGeometryType(TYPES.GEOMETRY);
542
        //				featureType.setDefaultGeometryAttributeName("the_geom");
543
        //				featureType.setHasOID(true);
544
        //				while (keys.hasNext()){
545
        //					String elementName = (String)keys.next();
546
        //					featureType.add(elementName, DataTypes.STRING);
547
        //				}
548
        //				FeatureType defaultType = featureType.getNotEditableCopy();
549
        //				List types = new ArrayList(1);
550
        //				types.add(defaultType);
551
        //				this.store.setFeatureTypes(types, defaultType);
552
        //
553
        //				//Initialize the envelope
554
        //				try {
555
        //					envelope = geomManager.createEnvelope(SUBTYPES.GEOM2D);
556
        //				} catch (CreateEnvelopeException e) {
557
        //					getErrorHandler().addError(e);
558
        //				}
559
        //			}
560
        //		}
561
        return new GPEFeature(sId,
562
            name, name);
563
    }
564

  
565
    /* (non-Javadoc)
566
     * @see org.gvsig.gpe.parser.GPEContentHandler#startLinearRing(java.lang.String, org.gvsig.gpe.parser.ICoordinateIterator, java.lang.String)
567
     */
568
    public Object startLinearRing(String id, ICoordinateIterator coords,
569
        String srs) {
570
        return createSurface(coords);
571
    }
572

  
573
    /*
574
     * (non-Javadoc)
575
     * @see org.gvsig.gpe.IGPEContentHandler#startMultiPoint(java.lang.String, java.lang.String)
576
     */
577
    public Object startMultiPoint(String id, String srs) {
578
        try {
579
            return geomManager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
580
        } catch (CreateGeometryException e) {
581
            getErrorHandler().addError(e);
582
        }
583
        return null;
584
    }
585

  
586
    /*
587
     * (non-Javadoc)
588
     * @see org.gvsig.gpe.IGPEContentHandler#addPointToMultiPoint(java.lang.Object, java.lang.Object)
589
     */
590
    public void addPointToMultiPoint(Object point, Object multiPoint) {
591
        ((MultiPoint)multiPoint).addPoint((Point)point);
592
    }
593

  
594
    /*
595
     * (non-Javadoc)
596
     * @see org.gvsig.gpe.IGPEContentHandler#startMultiLineString(java.lang.String, java.lang.String)
597
     */
598
    public Object startMultiLineString(String id, String srs) {
599
        super.startMultiLineString(id, srs);
600
        try {
601
            return geomManager.create(TYPES.MULTICURVE, SUBTYPES.GEOM2D);
602
        } catch (CreateGeometryException e) {
603
            getErrorHandler().addError(e);
604
        }
605
        return null;
606
    }
607

  
608
    /*
609
     * (non-Javadoc)
610
     * @see org.gvsig.gpe.IGPEContentHandler#addLineStringToMultiLineString(java.lang.Object, java.lang.Object)
611
     */
612
    public void addLineStringToMultiLineString(Object lineString, Object multiLineString) {
613
        ((MultiCurve)multiLineString).addCurve((Curve)lineString);
614
    }
615

  
616
    /*
617
     * (non-Javadoc)
618
     * @see org.gvsig.gpe.IGPEContentHandler#startMultiPolygon(java.lang.String, java.lang.String)
619
     */
620
    public Object startMultiPolygon(String id, String srs) {
621
        super.startMultiPolygon(id, srs);
622
        try {
623
            return geomManager.create(TYPES.MULTISURFACE, SUBTYPES.GEOM2D);
624
        } catch (CreateGeometryException e) {
625
            getErrorHandler().addError(e);
626
        }
627
        return null;
628
    }
629

  
630
    /*
631
     * (non-Javadoc)
632
     * @see org.gvsig.gpe.IGPEContentHandler#addPolygonToMultiPolygon(java.lang.Object, java.lang.Object)
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff