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
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