Revision 19603 trunk/libraries/libDataSourceBaseDrivers/src/org/gvsig/data/datastores/vectorial/driver/dxf/DXFFeaturesReader.java

View differences:

DXFFeaturesReader.java
1 1
package org.gvsig.data.datastores.vectorial.driver.dxf;
2 2

  
3
import java.util.ArrayList;
4
import java.util.Collection;
5
import java.util.Comparator;
6
import java.util.Iterator;
7
import java.util.TreeSet;
8

  
3 9
import org.gvsig.data.datastores.vectorial.driver.IDriver;
4 10
import org.gvsig.data.datastores.vectorial.driver.IFeaturesReader;
11
import org.gvsig.data.exception.ReadException;
12
import org.gvsig.data.vectorial.IFeature;
13
import org.gvsig.data.vectorial.IFeatureAttributeDescriptor;
5 14
import org.gvsig.data.vectorial.IFeatureCollection;
6 15
import org.gvsig.data.vectorial.IFeatureType;
16
import org.gvsig.data.vectorial.MemoryFeature;
7 17
import org.gvsig.data.vectorial.expansionadapter.FeatureManager;
18
import org.gvsig.data.vectorial.filter.FeatureFilterParser;
19
import org.gvsig.data.vectorial.order.FeatureComparator;
8 20

  
9 21
class DXFFeaturesReader  implements IFeaturesReader {
22
	private DXFDriver driver;
10 23

  
11

  
12 24
	public void init(IDriver driver) {
25
		this.driver=(DXFDriver)driver;
26
	}
13 27

  
28
	public IFeatureCollection getFeatures(FeatureManager featureManager,IFeatureType type, String filter, String order) {
29
		IFeatureCollection coll;
14 30

  
15
	}
31
		//TODO aplicar filtro, orden e incluso y el featureType
32
		FeatureFilterParser parser = null;
33
		if (filter!=null){
34
			parser = new FeatureFilterParser(filter,type);
35
		}
36
		ArrayList originalFeatures=driver.getFeatures();
37
		int num=featureManager.getNum();
38
		int originalSize=originalFeatures.size();
39
		Collection allFeatures=null;
40
		if (order!=null){
41
			Comparator comparator = new FeatureComparator(type,order);
42
			allFeatures = new TreeSet(comparator);
43
		}else{
44
			allFeatures=new ArrayList();
45
		}
46
		for (int i = 0; i < originalSize+num; i++) {
47
			IFeature feature=null;
48
			if (i<driver.getFeatureCount()){
49
				feature=driver.getFeature(i);
50
			}else{
51
				feature=featureManager.getFeature(i-originalSize);
52
			}
53
			if (!featureManager.isDeleted(feature)){
54
				try {
55
						MemoryFeature auxfeature=new MemoryFeature(type,false);
56
						auxfeature.setDefaultGeometry(feature.getDefaultGeometry());
57
						for (Iterator iter = type.iterator(); iter
58
								.hasNext();) {
59
							IFeatureAttributeDescriptor fad = (IFeatureAttributeDescriptor) iter.next();
60
							String name=fad.getName();
61
							auxfeature.set(name,feature.get(name));
62
						}
63
						if (filter==null || parser.match(auxfeature)){
64
							allFeatures.add(auxfeature);
65
						}
16 66

  
17
	public IFeatureCollection getFeatures(FeatureManager featureManager,IFeatureType type, String filter, String order) {
18
		// TODO Auto-generated method stub
19
		return null;
67
				} catch (ReadException e) {
68
					// TODO Auto-generated catch block
69
					e.printStackTrace();
70
				}
71
			}
72

  
73
		}
74

  
75
		coll=new DXFFeatureCollection(allFeatures);
76
		return coll;
20 77
	}
21 78

  
22 79
}

Also available in: Unified diff