Statistics
| Revision:

root / trunk / libraries / libRaster / src / org / gvsig / raster / RasterLibrary.java @ 11074

History | View | Annotate | Download (3.1 KB)

1
package org.gvsig.raster;
2

    
3
import java.io.File;
4
import java.util.ArrayList;
5

    
6
import org.gvsig.raster.dataset.io.EcwDriver;
7
import org.gvsig.raster.dataset.io.GdalDriver;
8
import org.gvsig.raster.dataset.io.GdalWriter;
9
import org.gvsig.raster.dataset.io.MemoryRasterDriver;
10

    
11
/**
12
 * 
13
 * @author Nacho Brodin (nachobrodin@gmail.com)
14
 *
15
 */
16
public class RasterLibrary {
17
        public static ArrayList readersClassList = new ArrayList();
18
        public static ArrayList writersClassList = new ArrayList();
19
        
20
        /**
21
         * En la generaci?n autom?tica de clases esta variable representa el n?mero de
22
         * clases en las que se hace la divisi?n.
23
         */
24
        public static int defaultNumberOfClasses = 10;
25
        
26
        //*************CACHE*******************
27
        /**
28
         * Tama?o aproximado de cach? en Megas. Si este valor es alto cabr?n muchas p?ginas en memoria 
29
         * a la vez y si es bajo cabr?n pocas. Hay que tener en cuenta que al instanciar se convertira en bytes
30
         * para su mejor tratamiento. Al llamar al constructor esta variable contendr? el tama?o exacto
31
         * de la cache en bytes. El tama?o aqu? especificado es aproximado. Este variar? dependiendo de los
32
         * par?metros del raster a cachear ya que las p?ginas deben tener una altura potencia de 2.
33
         */
34
        public static long cacheSize = 40;
35
        /**
36
         * Tama?o m?ximo de la p?gina en Megas. Hay que tener en cuenta que al instanciar se convertira en bytes
37
         * para su mejor tratamiento. Al llamar al constructor esta variable contendr? el tama?o exacto
38
         * de la p?gina en bytes
39
         */
40
        public static double pageSize = 4;
41
        /**
42
         * N?mero de p?ginas que tiene cada conjunto de cach?
43
         */
44
        public static int pagsPerGroup = 5;
45
        
46
        //*************PATHS*******************
47
        
48
        /**
49
         * Directorio temporal para la cach?. Si gastamos el mismo que andami este se ocupar? de gestionar su
50
         * destrucci?n al cerrar gvSIG.
51
         */
52
        public static String tempCacheDirectoryPath = System.getProperty("java.io.tmpdir")+"/tmp-andami";
53
        
54
        /**
55
         * Ejecuta las acciones necesarias para arrancar la librer?a.
56
         */
57
        public static void wakeUp(){
58
                readersClassList.add(GdalDriver.class);
59
                readersClassList.add(EcwDriver.class);
60
                readersClassList.add(MemoryRasterDriver.class);
61
                writersClassList.add(GdalWriter.class);
62
                
63
                //Limpiamos el directorio temporal
64
                RasterLibrary.cleanUpTempFiles();
65
        }
66
        
67
        /**
68
         * Elimina los ficheros del directorio temporal. Realizamos esta acci?n al levantar la
69
         * librer?a.
70
         */
71
         public static void cleanUpTempFiles() {
72
                    try{
73
                            File tempDirectory = new File(tempCacheDirectoryPath);
74

    
75
                            File[] files = tempDirectory.listFiles();
76
                            if (files!=null) {
77
                                    for (int i = 0; i < files.length; i++) {
78
                                             // s?lo por si en un futuro se necesitan crear directorios temporales
79
                                            if (files[i].isDirectory())        deleteDirectory(files[i]);
80
                                            files[i].delete();
81
                                    }
82
                            }
83
                            tempDirectory.delete();
84
                    } catch (Exception e) {        }
85

    
86
         }
87
         
88
         /**
89
          * Recursive directory delete.
90
          * @param f
91
          */
92
         private static void deleteDirectory(File f) {
93
                 File[] files = f.listFiles();
94
                 for (int i = 0; i < files.length; i++) {
95
                         if (files[i].isDirectory()) deleteDirectory(files[i]);
96
                         files[i].delete();
97
                 }
98

    
99
         }
100
}