Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.raster.gdal / org.gvsig.raster.gdal.provider / src / main / java / org / gvsig / raster / gdal / provider / RasterGdalLibrary.java @ 6298

History | View | Annotate | Download (2.62 KB)

1
package org.gvsig.raster.gdal.provider;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import org.gdal.gdal.gdal;
7
import org.gdal.ogr.ogr;
8
import org.gvsig.fmap.dal.DALFileLibrary;
9
import org.gvsig.fmap.dal.DALFileLocator;
10
import org.gvsig.fmap.dal.DALLibrary;
11
import org.gvsig.fmap.dal.FileHelper;
12
import org.gvsig.fmap.dal.spi.DALSPILocator;
13
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
14
import org.gvsig.metadata.exceptions.MetadataException;
15
import org.gvsig.tools.library.AbstractLibrary;
16
import org.gvsig.tools.library.LibraryException;
17

    
18
/**
19
 * Raster GDAL Provider Library to register provider commponents
20
 * @author dmartinezizquierdo
21
 *
22
 */
23
public class RasterGdalLibrary extends AbstractLibrary {
24

    
25
    @Override
26
    public void doRegistration() {
27
        registerAsServiceOf(DALLibrary.class);
28
        require(DALFileLibrary.class);
29
    }
30

    
31
    @Override
32
    protected void doInitialize() throws LibraryException {
33
    }
34

    
35
    @Override
36
    protected void doPostInitialize() throws LibraryException {
37
        List<Throwable> exs = new ArrayList<Throwable>();
38

    
39
        FileHelper.registerParametersDefinition(
40
                RasterGdalStoreProviderParameters.PARAMETERS_DEFINITION_NAME,
41
                RasterGdalStoreProviderParameters.class, "RasterGdalParameters.xml");
42
        try {
43
            FileHelper.registerMetadataDefinition(
44
                    RasterGdalStoreProvider.METADATA_DEFINITION_NAME,
45
                    RasterGdalStoreProvider.class, "RasterGdalMetadata.xml");
46
        } catch (MetadataException e) {
47
            exs.add(e);
48
        }
49

    
50
        DataManagerProviderServices dataman = DALSPILocator.getDataManagerProviderServices();
51

    
52

    
53
        try {
54
            if (!dataman.getStoreProviders().contains(RasterGdalStoreProvider.NAME)) {
55
                dataman.registerStoreProviderFactory(new RasterGdalStoreProviderFactory(RasterGdalStoreProvider.NAME, RasterGdalStoreProvider.DESCRIPTION));
56

    
57
            }
58
        } catch (RuntimeException e) {
59
            exs.add(e);
60
        }
61

    
62
        try {
63
            DALFileLocator.getFilesystemServerExplorerManager()
64
                    .registerProvider(RasterGdalStoreProvider.NAME,
65
                        RasterGdalStoreProvider.DESCRIPTION,
66
                            RasterGdalFileSystemServerProvider.class);
67
        } catch (RuntimeException e) {
68
            exs.add(e);
69
        }
70

    
71
        //initialize gdal drivers
72
        try {
73
            gdal.AllRegister();
74
            ogr.RegisterAll();
75
        } catch (RuntimeException e) {
76
            exs.add(e);
77
        }
78

    
79

    
80
        if (exs.size() > 0) {
81
            throw new LibraryException(this.getClass(), exs);
82
        }
83

    
84
    }
85

    
86
}