Revision 47436 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFSetProvider.java
DBFSetProvider.java | ||
---|---|---|
41 | 41 |
public class DBFSetProvider extends AbstractFeatureSetProvider { |
42 | 42 |
|
43 | 43 |
public DBFSetProvider(DBFStoreProvider store, FeatureQuery query, |
44 |
FeatureType featureType)
|
|
44 |
FeatureType providerFeatureType, FeatureType storeFeatureType)
|
|
45 | 45 |
throws DataException { |
46 |
super(store, query, featureType); |
|
46 |
// super(store, query, providerFeatureType, storeFeatureType); |
|
47 |
super(store, query, getEditable(providerFeatureType), storeFeatureType); |
|
47 | 48 |
} |
49 |
|
|
50 |
private static FeatureType getEditable(FeatureType type) { |
|
51 |
try { |
|
52 |
// return type; |
|
53 |
return type.getEditable(); |
|
54 |
} catch (UnsupportedOperationException ex) { |
|
55 |
return type.getCopy().getEditable(); |
|
56 |
} |
|
57 |
} |
|
48 | 58 |
|
49 | 59 |
public boolean canFilter() { |
50 | 60 |
return false; |
... | ... | |
72 | 82 |
|
73 | 83 |
protected AbstractFeatureProviderIterator createIterator(long index) |
74 | 84 |
throws DataException { |
75 |
return new DBFIterator((DBFStoreProvider) getStore(), getFeatureType(), |
|
85 |
return new DBFIterator((DBFStoreProvider) getStore(), getProviderFeatureType(),
|
|
76 | 86 |
index); |
77 | 87 |
} |
78 | 88 |
|
79 | 89 |
protected AbstractFeatureProviderIterator createFastIterator(long index) |
80 | 90 |
throws DataException { |
81 | 91 |
return new FastDBFIterator((DBFStoreProvider) getStore(), |
82 |
getFeatureType(), index); |
|
92 |
getProviderFeatureType(), index);
|
|
83 | 93 |
} |
84 | 94 |
|
85 | 95 |
protected class DBFIterator extends AbstractFeatureProviderIterator { |
... | ... | |
107 | 117 |
|
108 | 118 |
FeatureProvider ret = |
109 | 119 |
getDBFStoreProvider().getFeatureProviderByIndex(index, |
110 |
this.type); |
|
120 |
this.type, getStoreFeatureType());
|
|
111 | 121 |
index++; |
112 | 122 |
return ret; |
113 | 123 |
} catch (DataException e) { |
... | ... | |
148 | 158 |
public FastDBFIterator(DBFStoreProvider store, FeatureType type, |
149 | 159 |
long startOn) throws DataException { |
150 | 160 |
super(store, type, startOn); |
151 |
this.data = getFeatureStoreProvider().createFeatureProvider(type);
|
|
161 |
this.data = getDBFStoreProvider().createFeatureProvider(type, getStoreFeatureType());
|
|
152 | 162 |
} |
153 | 163 |
|
154 | 164 |
protected Object internalNext() { |
Also available in: Unified diff