Revision 34918

View differences:

branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/handlers/FmapContentHandler.java
31 31
import org.gvsig.fmap.geom.GeometryManager;
32 32
import org.gvsig.fmap.geom.aggregate.MultiCurve;
33 33
import org.gvsig.fmap.geom.aggregate.MultiPoint;
34
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
34 35
import org.gvsig.fmap.geom.aggregate.MultiSurface;
35 36
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
36 37
import org.gvsig.fmap.geom.exception.CreateGeometryException;
......
38 39
import org.gvsig.fmap.geom.primitive.Envelope;
39 40
import org.gvsig.fmap.geom.primitive.GeneralPathX;
40 41
import org.gvsig.fmap.geom.primitive.Point;
42
import org.gvsig.fmap.geom.primitive.Primitive;
41 43
import org.gvsig.fmap.geom.primitive.Surface;
42 44
import org.gvsig.gpe.lib.api.parser.IAttributesIterator;
43 45
import org.gvsig.gpe.lib.api.parser.ICoordinateIterator;
......
161 163
     * @see org.gvsig.gpe.IGPEContentHandler#endLayer(java.lang.Object)
162 164
     */
163 165
    public void endLayer(Object layer) {
166
        if (featureType == null){
167
            createFeatureType(null);
168
        }
164 169
        storeProvider.setEnvelope(envelope);
165 170
    }
166 171

  
......
375 380
    }
376 381

  
377 382
    private void createFeatureType(GPEFeature gpefeature){
378
        Map elements = gpefeature.getelements();
379
        Iterator keys = elements.keySet().iterator();
380 383
        featureType = store.createFeatureType();
384
        
381 385
        //Adding the Geometry field
382 386
        EditableFeatureAttributeDescriptor attributeDescriptor = featureType.add("the_geom", DataTypes.GEOMETRY).setGeometryType(geometryType);
383 387
        attributeDescriptor.setGeometrySubType(SUBTYPES.GEOM2D);
384 388
        attributeDescriptor.setSRS(srs);
385 389
        featureType.setDefaultGeometryAttributeName("the_geom");
390
        
386 391
        //Adding the ID
387 392
        featureType.add("gid", DataTypes.LONG);
388 393
        featureType.setHasOID(true);
389
        while (keys.hasNext()){
390
            String elementName = (String)keys.next();
391
            if (!elementName.equals("the_geom")){
392
                featureType.add(elementName, DataTypes.STRING);
394

  
395
        if (gpefeature != null){
396
            Map elements = gpefeature.getelements();
397
            Iterator keys = elements.keySet().iterator();
398
            while (keys.hasNext()){
399
                String elementName = (String)keys.next();
400
                if (!elementName.equals("the_geom")){
401
                    featureType.add(elementName, DataTypes.STRING);
402
                }
393 403
            }
394 404
        }
405

  
395 406
        FeatureType defaultType = featureType.getNotEditableCopy();
396 407
        List types = new ArrayList(1);
397 408
        types.add(defaultType);
......
635 646
     * @see org.gvsig.gpe.GPEContentHandler#addGeometryToMultiGeometry(java.lang.Object, java.lang.Object)
636 647
     */
637 648
    public void addGeometryToMultiGeometry(Object geometry, Object multiGeometry) {
638
        ((MultiCurve)multiGeometry).addCurve((Curve)geometry);
649
        ((MultiPrimitive)multiGeometry).addPrimitive((Primitive)geometry);
639 650
    }
640 651

  
641 652
    /* (non-Javadoc)
branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/model/GPEFeature.java
2 2

  
3 3
import java.util.LinkedHashMap;
4 4

  
5
import org.slf4j.Logger;
6
import org.slf4j.LoggerFactory;
7

  
5 8
import org.gvsig.fmap.geom.Geometry;
9
import org.gvsig.fmap.geom.GeometryLocator;
10
import org.gvsig.fmap.geom.GeometryManager;
11
import org.gvsig.fmap.geom.exception.CreateGeometryException;
6 12
import org.gvsig.fmap.geom.primitive.Envelope;
7 13

  
8 14
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
55 61
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
56 62
 */
57 63
public class GPEFeature {
58
	private static int idFeature = 0;
64
	private static final GeometryManager GEOMETRY_MANAGER = GeometryLocator.getGeometryManager();
65
	private static final Logger LOG = LoggerFactory.getLogger(GPEFeature.class);
66
	
67
    private static int idFeature = 0;
59 68
	private Geometry geometry = null;
60 69
	private LinkedHashMap elements = null;
61 70
	private String id = null;
......
70 79
	}	
71 80

  
72 81
	public GPEFeature(){
73
		elements = new LinkedHashMap();
82
		elements = new LinkedHashMap();		
74 83
	}
75 84

  
76 85
	/**
......
91 100
	 * @return the geometry
92 101
	 */
93 102
	public Geometry getGeometry() {
94
		return geometry;
103
		if (geometry == null){
104
		    try {
105
	            this.geometry = GEOMETRY_MANAGER.create(Geometry.TYPES.NULL, Geometry.SUBTYPES.GEOM3D);
106
	        } catch (CreateGeometryException e) {
107
	            LOG.error("Not possible to create a geometry", e);
108
	        }
109
		}
110
	    return geometry;
95 111
	}
96 112

  
97 113
	/**
branches/v2_0_0_prep/extensions/extGPE-gvSIG/src/org/gvsig/fmap/dal/store/gpe/GPEFileSystemServerProvider.java
42 42
import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider;
43 43
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
44 44
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices;
45
import org.gvsig.gpe.lib.api.GPELocator;
46
import org.gvsig.gpe.lib.api.GPEManager;
45 47

  
46 48
/**
47 49
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
......
50 52
	implements FilesystemServerExplorerProvider, ResourceConsumer {
51 53
	protected FilesystemServerExplorerProviderServices serverExplorer;
52 54

  
55
	private static final GPEManager GPE_MANAGER = GPELocator.getGPEManager();
56
	
53 57
	public boolean canCreate() {
54 58
		// TODO Auto-generated method stub
55 59
		return false;
......
93 97
	}
94 98

  
95 99
	public boolean accept(File pathName) {
96
		return pathName.getName().toLowerCase().endsWith(".gml");
100
	    return GPE_MANAGER.accept(pathName.toURI());	   
97 101
	}
98 102

  
99 103
	public boolean closeResourceRequested(ResourceProvider resource) {

Also available in: Unified diff