Revision 44777
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/test/java/org/gvsig/fmap/dal/store/dbf/TestExtraColumn.java | ||
---|---|---|
93 | 93 |
FeatureStore store = openTargetStore1(); |
94 | 94 |
FeatureQuery query = store.createFeatureQuery(); |
95 | 95 |
FeatureExtraColumn extra = query.getExtraColumn(); |
96 |
EditableFeatureAttributeDescriptor column = extra.add("test1"); |
|
97 |
column.setFeatureAttributeEmulator("22.2"); |
|
96 |
query.addFilter("ID = 3"); |
|
97 |
EditableFeatureAttributeDescriptor descriptor = extra.add("test1"); |
|
98 |
query.retrievesAllAttributes(); |
|
99 |
descriptor.setFeatureAttributeEmulator("Long/10.0"); |
|
98 | 100 |
Feature f = store.findFirst(query); |
99 |
EditableFeatureAttributeDescriptor column2 = f.getType().getExtraColumn().get("test1"); |
|
100 |
assertTrue(column2!=null); |
|
101 |
assertTrue(column2.getFeatureType()==null); |
|
101 |
|
|
102 |
// El feature type de la feature debe tener la columna extra |
|
103 |
EditableFeatureAttributeDescriptor descriptor2 = f.getType().getExtraColumn().get("test1"); |
|
104 |
assertTrue(descriptor2!=null); |
|
102 | 105 |
|
103 |
Double value = (Double) f.getExtraValue("test1"); |
|
104 |
assertEquals((Double)22.2, value); |
|
106 |
// El feature type de los descriptores de los columnas extra debe ser null siempre. |
|
107 |
assertTrue(descriptor2.getFeatureType()==null); |
|
108 |
|
|
109 |
// El valor de la columna extra debe ser el que toca. |
|
110 |
Number value = (Number) f.getExtraValue("test1"); |
|
111 |
assertEquals(Long.valueOf(300), value); |
|
105 | 112 |
} |
106 | 113 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeature.java | ||
---|---|---|
1194 | 1194 |
|
1195 | 1195 |
@Override |
1196 | 1196 |
public Object getExtraValue(String name) { |
1197 |
// FeatureExtraColumn column = this.getType().getExtraColumn();
|
|
1197 |
FeatureExtraColumn column = this.getType().getExtraColumn(); |
|
1198 | 1198 |
// int index = column.getIndexOf(name); |
1199 | 1199 |
// if( index <0 ) { |
1200 | 1200 |
// return null; |
1201 | 1201 |
// } |
1202 | 1202 |
Object value = this.data.getExtraValue(name); |
1203 |
// if( value == null ) { |
|
1203 |
if( value == null ) { |
|
1204 |
EditableFeatureAttributeDescriptor attrdesc = column.get(name); |
|
1204 | 1205 |
// EditableFeatureAttributeDescriptor attrdesc = column.get(index); |
1205 |
// value = attrdesc.getFeatureAttributeEmulator().get(this);
|
|
1206 |
value = attrdesc.getFeatureAttributeEmulator().get(this); |
|
1206 | 1207 |
// this.data.setExtraValue(index, value); |
1207 |
// }
|
|
1208 |
} |
|
1208 | 1209 |
return value; |
1209 | 1210 |
} |
1210 | 1211 |
|
Also available in: Unified diff