Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libjni-mrsid / src / es / gva / cit / jmrsid / JNIBase.java @ 3539

History | View | Annotate | Download (3.44 KB)

1
/**********************************************************************
2
 * $Id: JNIBase.java 3539 2006-01-09 12:23:20Z nacho $
3
 *
4
 * Name:     JNIBase.java
5
 * Project:  JMRSID. Interfaz java to MrSID (Lizardtech).
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
package es.gva.cit.jmrsid;
52

    
53

    
54
/**
55
 * Clase base para todas las clases que contienen funcionalidades JNI.
56
 * 
57
 * @author Nacho Brodin <brodin_ign@gva.es>.<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
58
 * @version 0.0
59
 * @link http://www.gvsig.gva.es
60
 */
61
public class JNIBase{
62
        
63
        protected long cPtr;
64
        
65
        private native int getIndexCountNat(long cPtr);
66
        private native int initializeNat(long cPtr);
67
        private native int getNumLevelsNat(long cPtr);
68
        private native int getWidthNat(long cPtr);
69
        private native int getHeightNat(long cPtr);
70
        private native int getStripHeightNat(long cPtr);
71
        private native int getNumBandsNat(long cPtr);
72
        private native int getColorSpaceNat(long cPtr);
73
        private native int getDataTypeNat(long cPtr);
74
        
75
        /**
76
         * Funci?n que sirve como base para funcionalidades de mrsid que admiten como par?metro un entero y devuelven un entero.
77
         * 
78
         * @throws MrSIDException.
79
         * @param msg1        Mensaje de error que se muestra cuando el puntero a objeto pasado es vacio.
80
         * @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.
81
         */
82
        
83
        protected int baseSimpleFunction(int n,String msg1,String msg2)throws MrSIDException{
84
                
85
                int res = 0;
86
                
87
                if(cPtr <= 0)
88
                         throw new MrSIDException(msg1);
89
                
90
                switch(n){
91
                        case 0: res = getIndexCountNat(cPtr);break;
92
                        case 1: res = initializeNat(cPtr);break;
93
                        case 2: res = getNumLevelsNat(cPtr);break;
94
                        case 3: res = getWidthNat(cPtr);break;
95
                        case 4: res = getHeightNat(cPtr);break;
96
                        case 5: res = getStripHeightNat(cPtr);break;
97
                        case 6: res = getNumBandsNat(cPtr);break;
98
                        case 7: res = getColorSpaceNat(cPtr);break;
99
                        case 8: res = getDataTypeNat(cPtr);break;
100
                }
101
                
102
                if(res<0)
103
                         throw new MrSIDException(msg2);
104
                 else return res;
105
        }
106
        
107
        /**
108
         * Devuelve el puntero a memoria del objeto en C.
109
         */
110

    
111
        public long getPtr(){
112
                return cPtr;
113
        }
114

    
115
                
116
        /**
117
         * Carga de la libreria jmrsid  
118
         */ 
119
        
120
        static{
121
                
122
                System.loadLibrary("jmrsid");
123
                
124
        }
125
                
126
}