27 |
27 |
|
28 |
28 |
package org.gvsig.fmap.dal.store.wfs;
|
29 |
29 |
|
|
30 |
import java.util.ArrayList;
|
|
31 |
import java.util.List;
|
30 |
32 |
import org.gvsig.fmap.dal.DALLibrary;
|
31 |
33 |
import org.gvsig.fmap.dal.DALLocator;
|
|
34 |
import org.gvsig.fmap.dal.DataTypes;
|
32 |
35 |
import org.gvsig.fmap.dal.FileHelper;
|
33 |
36 |
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorer;
|
34 |
37 |
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorerFactory;
|
35 |
38 |
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
|
36 |
39 |
import org.gvsig.fmap.dal.store.gpe.GPEStoreParameters;
|
37 |
40 |
import org.gvsig.fmap.dal.store.gpe.GPEStoreProvider;
|
|
41 |
import org.gvsig.fmap.geom.Geometry;
|
|
42 |
import org.gvsig.fmap.geom.GeometryLocator;
|
|
43 |
import org.gvsig.fmap.geom.GeometryManager;
|
|
44 |
import org.gvsig.fmap.geom.operation.writegml2.CurveWriteGml2Operation;
|
|
45 |
import org.gvsig.fmap.geom.operation.writegml2.MultiCurveWriteGml2Operation;
|
|
46 |
import org.gvsig.fmap.geom.operation.writegml2.MultiPointWriteGml2Operation;
|
|
47 |
import org.gvsig.fmap.geom.operation.writegml2.MultiSurfaceWriteGml2Operation;
|
|
48 |
import org.gvsig.fmap.geom.operation.writegml2.PointWriteGml2Operation;
|
|
49 |
import org.gvsig.fmap.geom.operation.writegml2.SurfaceWriteGml2Operation;
|
|
50 |
import org.gvsig.fmap.geom.operation.writegml2.WriteGml2Operation;
|
38 |
51 |
import org.gvsig.fmap.mapcontext.MapContextLibrary;
|
39 |
52 |
import org.gvsig.metadata.exceptions.MetadataException;
|
40 |
53 |
import org.gvsig.tools.ToolsLocator;
|
... | ... | |
42 |
55 |
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
|
43 |
56 |
import org.gvsig.tools.library.AbstractLibrary;
|
44 |
57 |
import org.gvsig.tools.library.LibraryException;
|
|
58 |
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
|
45 |
59 |
import org.gvsig.xmlpull.lib.api.XmlPullLibrary;
|
46 |
60 |
import org.gvsig.xmlschema.lib.api.XMLSchemaLibrary;
|
|
61 |
import org.gvsig.xmlschema.lib.api.XMLSchemaLocator;
|
|
62 |
import org.gvsig.xmlschema.lib.api.XMLSchemaManager;
|
47 |
63 |
|
48 |
64 |
/**
|
49 |
65 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
|
... | ... | |
96 |
112 |
ExtensionPointManager extensionPointManager = ToolsLocator.getExtensionPointManager();
|
97 |
113 |
ExtensionPoint extensionPoint = extensionPointManager.add("CatalogDataStoreParameters");
|
98 |
114 |
extensionPoint.append("OGC:WFS", "Data store parameters to load a WFS layer", WFSOpenStoreParameters.class);
|
|
115 |
|
|
116 |
List exs = new ArrayList();
|
|
117 |
|
|
118 |
// Validate there is any implementation registered.
|
|
119 |
XMLSchemaManager xmlSchemaManager = XMLSchemaLocator.getXMLSchemaManager();
|
|
120 |
if (xmlSchemaManager == null) {
|
|
121 |
exs.add(new ReferenceNotRegisteredException(
|
|
122 |
XMLSchemaLocator.XMLSCHEMA_MANAGER_NAME, XMLSchemaLocator
|
|
123 |
.getInstance()));
|
|
124 |
}
|
|
125 |
|
|
126 |
//Register the application types in gpe. GPE uses the DAL types like internal types
|
|
127 |
xmlSchemaManager.registerAppDataType(DataTypes.UNKNOWN, DataTypes.UNKNOWN);
|
|
128 |
xmlSchemaManager.registerAppDataType(DataTypes.BOOLEAN, DataTypes.BOOLEAN);
|
|
129 |
xmlSchemaManager.registerAppDataType(DataTypes.BYTE, DataTypes.BYTE);
|
|
130 |
xmlSchemaManager.registerAppDataType(DataTypes.CHAR, DataTypes.CHAR);
|
|
131 |
xmlSchemaManager.registerAppDataType(DataTypes.INT, DataTypes.INT);
|
|
132 |
xmlSchemaManager.registerAppDataType(DataTypes.LONG, DataTypes.LONG);
|
|
133 |
xmlSchemaManager.registerAppDataType(DataTypes.FLOAT, DataTypes.FLOAT);
|
|
134 |
xmlSchemaManager.registerAppDataType(DataTypes.DOUBLE, DataTypes.DOUBLE);
|
|
135 |
xmlSchemaManager.registerAppDataType(DataTypes.STRING, DataTypes.STRING);
|
|
136 |
xmlSchemaManager.registerAppDataType(DataTypes.DATE, DataTypes.DATE);
|
|
137 |
xmlSchemaManager.registerAppDataType(DataTypes.TIME, DataTypes.TIME);
|
|
138 |
xmlSchemaManager.registerAppDataType(DataTypes.TIMESTAMP, DataTypes.TIMESTAMP);
|
|
139 |
xmlSchemaManager.registerAppDataType(DataTypes.GEOMETRY, DataTypes.GEOMETRY);
|
|
140 |
xmlSchemaManager.registerAppDataType(DataTypes.OBJECT, DataTypes.OBJECT);
|
|
141 |
xmlSchemaManager.registerAppDataType(DataTypes.DYNOBJECT, DataTypes.DYNOBJECT);
|
|
142 |
xmlSchemaManager.registerAppDataType(DataTypes.CRS, DataTypes.CRS);
|
|
143 |
xmlSchemaManager.registerAppDataType(DataTypes.FILE, DataTypes.FILE);
|
|
144 |
xmlSchemaManager.registerAppDataType(DataTypes.BYTEARRAY, DataTypes.BYTEARRAY);
|
|
145 |
|
|
146 |
//Mapping between GPE types and the application types
|
|
147 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.GEOMETRY, XMLSchemaManager.GEOMETRY);
|
|
148 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.POINT, XMLSchemaManager.POINT);
|
|
149 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.CURVE, XMLSchemaManager.LINESTRING);
|
|
150 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.SURFACE, XMLSchemaManager.POLYGON);
|
|
151 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.SOLID, XMLSchemaManager.SOLID);
|
|
152 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.AGGREGATE, XMLSchemaManager.MULTIGEOMETRY);
|
|
153 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTIPOINT, XMLSchemaManager.MULTIPOINT);
|
|
154 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTICURVE, XMLSchemaManager.MULTILINESTRING);
|
|
155 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTISURFACE, XMLSchemaManager.MULTIPOLYGON);
|
|
156 |
xmlSchemaManager.registerAppGeometryType(Geometry.TYPES.MULTISOLID, XMLSchemaManager.MULTISOLID);
|
|
157 |
|
|
158 |
//Operations
|
|
159 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager();
|
|
160 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new PointWriteGml2Operation(), Geometry.TYPES.POINT);
|
|
161 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new CurveWriteGml2Operation(), Geometry.TYPES.CURVE);
|
|
162 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new SurfaceWriteGml2Operation(), Geometry.TYPES.SURFACE);
|
|
163 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new MultiPointWriteGml2Operation(), Geometry.TYPES.MULTIPOINT);
|
|
164 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new MultiCurveWriteGml2Operation(), Geometry.TYPES.MULTICURVE);
|
|
165 |
geometryManager.registerGeometryOperation(WriteGml2Operation.NAME, new MultiSurfaceWriteGml2Operation(), Geometry.TYPES.MULTISURFACE);
|
|
166 |
|
|
167 |
if (!exs.isEmpty()) {
|
|
168 |
throw new LibraryException(this.getClass(), exs);
|
|
169 |
}
|
|
170 |
|
99 |
171 |
}
|
100 |
172 |
}
|
101 |
173 |
|