svn-gvsig-desktop / trunk / libraries / libjni-gdal / src / es / gva / cit / jogr / OGRFeatureDefn.java @ 945
History | View | Annotate | Download (4.05 KB)
1 | 920 | igbrotru | /**********************************************************************
|
---|---|---|---|
2 | * $Id$
|
||
3 | *
|
||
4 | * Name: OGRFeatureDefn.java
|
||
5 | * Project: JGDAL. Interface java to gdal (Frank Warmerdam).
|
||
6 | * Purpose:
|
||
7 | * Author: Nacho Brodin, brodin_ign@gva.es
|
||
8 | *
|
||
9 | **********************************************************************/
|
||
10 | /*Copyright (C) 2004 Nacho Brodin <brodin_ign@gva.es>
|
||
11 | |||
12 | This program is free software; you can redistribute it and/or
|
||
13 | modify it under the terms of the GNU General Public License
|
||
14 | as published by the Free Software Foundation; either version 2
|
||
15 | of the License, or (at your option) any later version.
|
||
16 | |||
17 | This program is distributed in the hope that it will be useful,
|
||
18 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
20 | GNU General Public License for more details.
|
||
21 | |||
22 | You should have received a copy of the GNU General Public License
|
||
23 | along with this program; if not, write to the Free Software
|
||
24 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
25 | */
|
||
26 | |||
27 | package es.gva.cit.jogr; |
||
28 | |||
29 | |||
30 | /**
|
||
31 | *
|
||
32 | * @author Nacho Brodin <brodin_ign@gva.es>.<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
|
||
33 | * @version 0.0
|
||
34 | * @link http://www.gvsig.gva.es
|
||
35 | */
|
||
36 | |||
37 | public class OGRFeatureDefn extends JNIBase{ |
||
38 | |||
39 | |||
40 | private native String getNameNat(long cPtr); |
||
41 | private native int getGeomTypeNat(long cPtr); |
||
42 | 945 | igbrotru | private native void FreeOGRFeatureDefnNat(long cPtr); |
43 | 920 | igbrotru | |
44 | /**
|
||
45 | * Constructor
|
||
46 | * @param cPtr direcci?n de memoria al objeto OGRFeatureDefn de C.
|
||
47 | */
|
||
48 | |||
49 | public OGRFeatureDefn(long cPtr){ |
||
50 | this.cPtr=cPtr;
|
||
51 | } |
||
52 | |||
53 | /**
|
||
54 | * Obtiene el nombre de la feature
|
||
55 | * @throws OGRException
|
||
56 | * @return Nombre de la feature
|
||
57 | */
|
||
58 | |||
59 | public String getName()throws OGRException{ |
||
60 | |||
61 | if(cPtr <= 0) |
||
62 | throw new OGRException("Error en getName(). El constructor ha fallado."); |
||
63 | |||
64 | String name = getNameNat(cPtr);
|
||
65 | |||
66 | if(name==null) |
||
67 | throw new OGRException("Error en getName(). No se ha podido obtener el nombre."); |
||
68 | return name;
|
||
69 | } |
||
70 | |||
71 | /**
|
||
72 | * Obtiene el tipo de geometria
|
||
73 | * @throws OGRException
|
||
74 | * @return Tipo de geometria
|
||
75 | */
|
||
76 | |||
77 | public String getGeomType()throws OGRException{ |
||
78 | |||
79 | if(cPtr <= 0) |
||
80 | throw new OGRException("Error en getGeomType(). El constructor ha fallado."); |
||
81 | |||
82 | int tipo = getGeomTypeNat(cPtr);
|
||
83 | |||
84 | if(tipo<0 || tipo>16) |
||
85 | throw new OGRException("Error en getGeomType(). No se ha podido obtener un tipo de geometria valido."); |
||
86 | |||
87 | String tipogeom=null; |
||
88 | switch(tipo){
|
||
89 | case 0:tipogeom="wkbUnknown";break; /* non-standard */ |
||
90 | case 1:tipogeom="wkbPoint"; break; /* rest are standard WKB type codes */ |
||
91 | case 2:tipogeom="wkbLineString";break; |
||
92 | case 3:tipogeom="wkbPolygon";break; |
||
93 | case 4:tipogeom="wkbMultiPoint";break; |
||
94 | case 5:tipogeom="wkbMultiLineString";break; |
||
95 | case 6:tipogeom="wkbMultiPolygon";break; |
||
96 | case 7:tipogeom="wkbGeometryCollection";break; |
||
97 | case 8:tipogeom="wkbNone";break; /* non-standard, for pure attribute records */ |
||
98 | case 9:tipogeom="wkbLinearRing";break; /* non-standard, just for createGeometry() */ |
||
99 | case 10:tipogeom="wkbPoint25D";break; /* 2.5D extensions as per 99-402 */ |
||
100 | case 11:tipogeom="wkbLineString25D";break; |
||
101 | case 12:tipogeom="wkbPolygon25D";break; |
||
102 | case 13:tipogeom="wkbMultiPoint25D";break; |
||
103 | case 14:tipogeom="wkbMultiLineString25D";break; |
||
104 | case 15:tipogeom="wkbMultiPolygon25D";break; |
||
105 | case 16:tipogeom="wkbGeometryCollection25D";break; |
||
106 | } |
||
107 | return tipogeom;
|
||
108 | |||
109 | } |
||
110 | 945 | igbrotru | |
111 | /**
|
||
112 | * Obtiene el n?mero de campos
|
||
113 | * @throws OGRException
|
||
114 | * @return N?mero de campos
|
||
115 | */
|
||
116 | |||
117 | public int getFieldCount()throws OGRException{ |
||
118 | |||
119 | String msg1="Error en getFieldCount. El constructor ha fallado."; |
||
120 | String msg2="Error obteniendo el n?mero de campos"; |
||
121 | return baseSimpleFunctions(3,msg1,msg2); |
||
122 | } |
||
123 | |||
124 | /**
|
||
125 | * Obtiene el campo referenciado por el ?ndice
|
||
126 | * @throws OGRException
|
||
127 | * @return Objeto que contiene el campo seleccionado
|
||
128 | */
|
||
129 | |||
130 | /*public OGRFieldDefn getFieldDefn(int i)throws OGRException{
|
||
131 | |||
132 | |||
133 | }*/
|
||
134 | |||
135 | /**
|
||
136 | * Destructor
|
||
137 | */
|
||
138 | |||
139 | protected void finalize(){ |
||
140 | if(cPtr > 0) |
||
141 | FreeOGRFeatureDefnNat(cPtr); |
||
142 | } |
||
143 | 920 | igbrotru | } |