Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extGPE-gvSIG / src / org / gvsig / fmap / dal / store / gpe / DALGPELibrary.java @ 34026

History | View | Annotate | Download (5.67 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22

    
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2009 {Iver T.I.}   {Task}
26
 */
27

    
28
package org.gvsig.fmap.dal.store.gpe;
29

    
30
import java.util.ArrayList;
31
import java.util.List;
32

    
33
import org.gvsig.fmap.dal.DALFileLibrary;
34
import org.gvsig.fmap.dal.DALFileLocator;
35
import org.gvsig.fmap.dal.DALLibrary;
36
import org.gvsig.fmap.dal.DALLocator;
37
import org.gvsig.fmap.dal.DataTypes;
38
import org.gvsig.fmap.dal.FileHelper;
39
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
40
import org.gvsig.fmap.geom.Geometry;
41
import org.gvsig.metadata.exceptions.MetadataException;
42
import org.gvsig.tools.library.AbstractLibrary;
43
import org.gvsig.tools.library.Library;
44
import org.gvsig.tools.library.LibraryException;
45
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
46
import org.gvsig.xmlschema.lib.api.XMLSchemaLocator;
47
import org.gvsig.xmlschema.lib.api.XMLSchemaManager;
48

    
49
/**
50
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
51
 */
52
public class DALGPELibrary extends AbstractLibrary {
53
        
54
        public DALGPELibrary() {
55
                super(DALGPELibrary.class, Library.TYPE.IMPL);
56
                require(DALLibrary.class);
57
                require(DALFileLibrary.class);
58
        }
59
        
60
        protected void doInitialize() throws LibraryException {
61
                // Do nothing
62
        }
63

    
64
        protected void doPostInitialize() throws LibraryException {
65

    
66
                List exs = new ArrayList();
67

    
68
                FileHelper.registerParametersDefinition(
69
                                GPEStoreParameters.PARAMETERS_DEFINITION_NAME,
70
                                GPEStoreParameters.class, "GPEParameters.xml");
71
                try {
72
                        FileHelper.registerMetadataDefinition(
73
                                        GPEStoreProvider.METADATA_DEFINITION_NAME,
74
                                        GPEStoreProvider.class, "GPEMetadata.xml");
75
                } catch (MetadataException e) {
76
                        exs.add(e);
77
                }
78

    
79

    
80
                DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator
81
                .getDataManager();
82

    
83
                if (!dataman.getStoreProviders().contains(GPEStoreProvider.NAME)) {
84
                        dataman.registerStoreProvider(GPEStoreProvider.NAME,
85
                                        GPEStoreProvider.class, GPEStoreParameters.class);
86
                }
87

    
88
                DALFileLocator.getFilesystemServerExplorerManager().registerProvider(
89
                                GPEStoreProvider.NAME, GPEStoreProvider.DESCRIPTION,
90
                                GPEFileSystemServerProvider.class);
91
                
92
                // Validate there is any implementation registered.
93
                XMLSchemaManager xmlSchemaManager = XMLSchemaLocator.getXMLSchemaManager();
94
                if (xmlSchemaManager == null) {
95
                        exs.add(new ReferenceNotRegisteredException(
96
                                        XMLSchemaLocator.XMLSCHEMA_MANAGER_NAME, XMLSchemaLocator
97
                                                        .getInstance()));
98
                }
99
                
100
                //Register the application types in gpe.
101
                xmlSchemaManager.registerAppDataType(DataTypes.UNKNOWN, DataTypes.UNKNOWN);
102
                xmlSchemaManager.registerAppDataType(DataTypes.BOOLEAN, DataTypes.BOOLEAN);
103
                xmlSchemaManager.registerAppDataType(DataTypes.BYTE, DataTypes.BYTE);
104
                xmlSchemaManager.registerAppDataType(DataTypes.CHAR, DataTypes.CHAR);
105
                xmlSchemaManager.registerAppDataType(DataTypes.INT, DataTypes.INT);
106
                xmlSchemaManager.registerAppDataType(DataTypes.LONG, DataTypes.LONG);
107
                xmlSchemaManager.registerAppDataType(DataTypes.FLOAT, DataTypes.FLOAT);
108
                xmlSchemaManager.registerAppDataType(DataTypes.DOUBLE, DataTypes.DOUBLE);
109
                xmlSchemaManager.registerAppDataType(DataTypes.STRING, DataTypes.STRING);
110
                xmlSchemaManager.registerAppDataType(DataTypes.DATE, DataTypes.DATE);
111
                xmlSchemaManager.registerAppDataType(DataTypes.TIME, DataTypes.TIME);
112
                xmlSchemaManager.registerAppDataType(DataTypes.TIMESTAMP, DataTypes.TIMESTAMP);
113
                xmlSchemaManager.registerAppDataType(DataTypes.GEOMETRY, DataTypes.GEOMETRY);
114
                xmlSchemaManager.registerAppDataType(DataTypes.OBJECT, DataTypes.OBJECT);
115
                xmlSchemaManager.registerAppDataType(DataTypes.DYNOBJECT, DataTypes.DYNOBJECT);
116
                xmlSchemaManager.registerAppDataType(DataTypes.CRS, DataTypes.CRS);                
117
                xmlSchemaManager.registerAppDataType(DataTypes.FILE, DataTypes.FILE);
118
                xmlSchemaManager.registerAppDataType(DataTypes.BYTEARRAY, DataTypes.BYTEARRAY);
119
                //geometries
120
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.GEOMETRY, XMLSchemaManager.GEOMETRY);
121
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.POINT, XMLSchemaManager.POINT);
122
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.CURVE, XMLSchemaManager.LINESTRING);
123
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.SURFACE, XMLSchemaManager.POLYGON);
124
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.SOLID, XMLSchemaManager.SOLID);
125
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.AGGREGATE, XMLSchemaManager.MULTIGEOMETRY);
126
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTIPOINT, XMLSchemaManager.MULTIPOINT);
127
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTICURVE, XMLSchemaManager.MULTILINESTRING);
128
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTISURFACE, XMLSchemaManager.MULTIPOLYGON);
129
                xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTISOLID, XMLSchemaManager.MULTISOLID);
130

    
131
                if (exs.size() > 0) {
132
                        throw new LibraryException(this.getClass(), exs);
133
                }
134
        }
135

    
136
}
137

    
138