Revision 46419 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/feature/AbstractDataProfile.java

View differences:

AbstractDataProfile.java
1 1
package org.gvsig.fmap.dal.feature;
2 2

  
3
import org.gvsig.fmap.dal.DALLocator;
4
import org.gvsig.fmap.dal.DataManager;
5
import org.gvsig.tools.dataTypes.CoercionException;
6
import org.gvsig.tools.dataTypes.DataType;
7
import org.gvsig.tools.dynobject.Tags;
8
import org.slf4j.Logger;
9
import org.slf4j.LoggerFactory;
10

  
3 11
/**
4 12
 *
5 13
 * @author jjdelcerro
6 14
 */
7 15
public abstract class AbstractDataProfile implements DataProfile {
8 16

  
17
    protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractDataProfile.class);
18

  
9 19
    private final String id;
10 20
    private final String name;
11 21
    private final Class dataClass;
22
    private final DataProfile delegated;
12 23

  
13 24
    public AbstractDataProfile(String id, String name, Class dataClass) {
14 25
        this.id = id;
15 26
        this.name = name;
16 27
        this.dataClass = dataClass;
28
        DataManager dataManager = DALLocator.getDataManager();
29
        this.delegated = dataManager.getDataProfile(id);
17 30
    }
18 31
    
19 32
    public AbstractDataProfile(String name, Class dataClass) {
......
35 48
        return this.dataClass;
36 49
    }
37 50

  
51
    @Override
52
    public Object createData(Object data, Tags tags) {
53
        Object x = this.doCreateData(data, tags);
54
        if(x == null && this.delegated != null){
55
            x = this.delegated.createData(data, tags);
56
        }
57
        return x;
58
    }
59

  
60
    protected Object doCreateData(Object data, Tags tags) {
61
        return null;
62
    }
63

  
64
    @Override
65
    public Object coerce(DataType dataType, Object value, Tags tags) throws CoercionException {
66
        Object x = this.doCoerce(dataType, value, tags);
67
        if(x == null && this.delegated != null){
68
            x = this.delegated.coerce(dataType, value, tags);
69
        }
70
        return x;
71
    }
72
    
73
    protected Object doCoerce(DataType dataType, Object value, Tags tags) throws CoercionException {
74
        return null;
75
    }
76

  
77

  
38 78
}

Also available in: Unified diff