Revision 44777

View differences:

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