Revision 1365

View differences:

org.gvsig.wfs.app/trunk/org.gvsig.wfs.app/org.gvsig.wfs.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/wfs/WFSLibrary.java
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

  
org.gvsig.wfs.app/trunk/org.gvsig.wfs.app/org.gvsig.wfs.app.mainplugin/src/main/java/org/gvsig/fmap/dal/store/wfs/WFSStoreProvider.java
254 254

  
255 255
			if (typeDefinition != null) {
256 256
				if (typeDefinition.getDataType() != null) {
257
					if (typeDefinition.getDataType().getType() == DataTypes.GEOMETRY) {
258
						dataType = typeDefinition.getDataType().getType();
259
					}
257
    				dataType = typeDefinition.getDataType().getType();
260 258
				}
261 259
				attributeDescriptor = featureType.add(featureField.getName(),
262 260
						dataType);

Also available in: Unified diff