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 |
} |