Statistics
| Revision:

root / branches / v10 / libraries / libjni-gdal / src / es / gva / cit / jgdal / JNIBase.java @ 10988

History | View | Annotate | Download (3.56 KB)

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

    
51

    
52
/**
53
 * @author Nacho Brodin <brodin_ign@gva.es>.<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
54
 * @version 0.0
55
 * @link http://www.gvsig.gva.es
56
 */
57

    
58
package es.gva.cit.jgdal;
59

    
60

    
61

    
62
public class JNIBase{
63
        
64
        protected long cPtr;
65
        
66
        private native int getRasterBandXSizeNat(long cPtr);
67
        private native int getRasterBandYSizeNat(long cPtr);
68
        private native int getOverviewCountNat(long cPtr);
69
        private native int getBlockXSizeNat(long cPtr);
70
        private native int getBlockYSizeNat(long cPtr);
71
        private native int getRasterXSizeNat(long cPtr);
72
        private native int getRasterYSizeNat(long cPtr);
73
        private native int getRasterCountNat(long cPtr);
74
        private native int getGCPCountNat(long cPtr);
75
        private native int getRasterDataTypeNat(long cPtr);
76
        private native int getDriverCountNat(long cPtr);
77
        private native int getLayerCountNat(long cPtr);
78
        
79
        
80
         /**
81
         * Funci?n que sirve como base para funcionalidades de gdal que admiten como par?metro un entero y devuelven un entero.
82
         * 
83
         * @throws GdalException.
84
         * @param msg1        Mensaje de error que se muestra cuando el puntero a objeto pasado es vacio.
85
         * @param msg2        Mensaje de error que se muestra cuando el resultado de la llamada a la funci?n de gdal es menor o igual que 0.
86
         */
87
         
88
         
89
        protected int baseSimpleFunctions(int n,String msg1,String msg2)throws GdalException{
90
                        
91
                int res = 0;
92
                        
93
                switch(n){
94
                        case 0: res = getRasterBandXSizeNat(cPtr);break;
95
                        case 1: res = getRasterBandYSizeNat(cPtr);break;
96
                        case 2: res = getOverviewCountNat(cPtr);break;
97
                        case 3: res = getBlockXSizeNat(cPtr);break;
98
                        case 4: res = getBlockYSizeNat(cPtr);break;
99
                        case 5: res = getRasterXSizeNat(cPtr);break;
100
                        case 6: res = getRasterYSizeNat(cPtr);break;
101
                        case 7: res = getRasterCountNat(cPtr);break;
102
                        case 8: res = getGCPCountNat(cPtr);break;
103
                        case 9: res = getRasterDataTypeNat(cPtr);break;
104
                }
105
                        
106
                if(res<0)
107
                         throw new GdalException(msg2);
108
                else return res;
109
        }
110
        
111
        
112
        
113
        static{
114
                String os = System.getProperty("os.name");
115
                if(os.toLowerCase().startsWith("windows"))
116
                        System.loadLibrary("jgdal061");
117
                else
118
                        System.loadLibrary("jgdal");
119
                
120
        }
121
                
122
}