Revision 44448
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 | ||
---|---|---|
173 | 173 |
if ( objectClass.isInstance(value) ) { |
174 | 174 |
this.data.set(i, value); |
175 | 175 |
return; |
176 |
} |
|
177 |
|
|
178 |
if ( !objectClass.isInstance(value) ) { |
|
176 |
} else { |
|
177 |
DataProfile dataProfile = attribute.getDataProfile(); |
|
178 |
if( dataProfile!=null ) { |
|
179 |
try { |
|
180 |
value = dataProfile.coerce( |
|
181 |
attribute.getDataType(), |
|
182 |
value, |
|
183 |
attribute.getTags() |
|
184 |
); |
|
185 |
} catch (CoercionException e) { |
|
186 |
|
|
187 |
} |
|
188 |
} |
|
179 | 189 |
try { |
180 |
value |
|
181 |
= this.getDataTypesManager().coerce(attribute.getType(), |
|
182 |
value); |
|
190 |
value= this.getDataTypesManager().coerce(attribute.getType(),value); |
|
183 | 191 |
} catch (CoercionException e) { |
184 | 192 |
throw new IllegalArgumentException("Can't convert to " |
185 |
+ this.getDataTypesManager().getTypeName(
|
|
186 |
attribute.getType()) + " from '"
|
|
193 |
+ attribute.getDataType().getName()
|
|
194 |
+ " from '" |
|
187 | 195 |
+ value.getClass().getName() + "' with value '" |
188 | 196 |
+ value.toString() + "'."); |
189 | 197 |
} |
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/DefaultFeatureAttributeDescriptor.java | ||
---|---|---|
34 | 34 |
import org.apache.commons.lang3.ArrayUtils; |
35 | 35 |
import org.apache.commons.lang3.StringUtils; |
36 | 36 |
import org.cresques.cts.IProjection; |
37 |
import org.gvsig.fmap.dal.DALLocator; |
|
37 | 38 |
import org.gvsig.fmap.dal.DataStore; |
38 | 39 |
import org.gvsig.fmap.dal.DataTypes; |
40 |
import org.gvsig.fmap.dal.feature.DataProfile; |
|
39 | 41 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
40 | 42 |
import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator; |
41 | 43 |
import org.gvsig.fmap.dal.feature.FeatureAttributeGetter; |
... | ... | |
952 | 954 |
} |
953 | 955 |
|
954 | 956 |
@Override |
957 |
public DataProfile getDataProfile() { |
|
958 |
if( StringUtils.isBlank(dataProfile) ) { |
|
959 |
return null; |
|
960 |
} |
|
961 |
DataProfile profile = DALLocator.getDataManager().getDataProfile(dataProfile); |
|
962 |
return profile; |
|
963 |
} |
|
964 |
|
|
965 |
@Override |
|
955 | 966 |
public void validate(Object value) throws DynFieldValidateException { |
956 | 967 |
|
957 | 968 |
if (value == null && !this.allowNull()) { |
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/impl/dataprofile/DataProfileText.java | ||
---|---|---|
4 | 4 |
import org.gvsig.fmap.dal.DALLocator; |
5 | 5 |
import org.gvsig.fmap.dal.DataManager; |
6 | 6 |
import org.gvsig.fmap.dal.feature.AbstractDataProfile; |
7 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
8 |
import org.gvsig.tools.dataTypes.DataType; |
|
7 | 9 |
import org.gvsig.tools.dynobject.Tags; |
8 | 10 |
|
9 | 11 |
/** |
... | ... | |
21 | 23 |
public Object createData(Object data, Tags tags) { |
22 | 24 |
return Objects.toString(data, null); |
23 | 25 |
} |
26 |
|
|
27 |
@Override |
|
28 |
public Object coerce(DataType dataType, Object data, Tags tags) throws CoercionException { |
|
29 |
String s = Objects.toString(data, null); |
|
30 |
if( s == null ) { |
|
31 |
return null; |
|
32 |
} |
|
33 |
try { |
|
34 |
data = dataType.coerce(s); |
|
35 |
return data; |
|
36 |
} catch(Exception ex) { |
|
37 |
throw new CoercionException("Can't convert String to "+dataType.getName(), ex); |
|
38 |
} |
|
39 |
} |
|
24 | 40 |
|
25 | 41 |
public static void selfRegister() { |
26 | 42 |
DataManager dataManager = DALLocator.getDataManager(); |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretable/table/DynFieldFacadeOfAFeatureAttributeDescriptor.java | ||
---|---|---|
5 | 5 |
import java.util.List; |
6 | 6 |
import java.util.Objects; |
7 | 7 |
import org.cresques.cts.IProjection; |
8 |
import org.gvsig.fmap.dal.feature.DataProfile; |
|
8 | 9 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
9 | 10 |
import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator; |
10 | 11 |
import org.gvsig.fmap.dal.feature.FeatureAttributeGetter; |
... | ... | |
598 | 599 |
return Objects.toString(value, ""); |
599 | 600 |
} |
600 | 601 |
|
602 |
@Override |
|
603 |
public DataProfile getDataProfile() { |
|
604 |
return null; |
|
605 |
} |
|
606 |
|
|
601 | 607 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/test/java/org/gvsig/fmap/dal/feature/DummyFeatureAttributeDescriptor.java | ||
---|---|---|
569 | 569 |
return Objects.toString(value, ""); |
570 | 570 |
} |
571 | 571 |
|
572 |
@Override |
|
573 |
public DataProfile getDataProfile() { |
|
574 |
return null; |
|
575 |
} |
|
576 |
|
|
572 | 577 |
} |
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/FeatureAttributeDescriptor.java | ||
---|---|---|
62 | 62 |
|
63 | 63 |
public String getDataProfileName(); |
64 | 64 |
|
65 |
public DataProfile getDataProfile(); |
|
66 |
|
|
65 | 67 |
/** |
66 | 68 |
* Returns a number that indicates the size of this attribute. See the |
67 | 69 |
* documentation for the various constants of {@link DataTypes} |
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/DataProfile.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.dal.feature; |
2 | 2 |
|
3 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
4 |
import org.gvsig.tools.dataTypes.DataType; |
|
3 | 5 |
import org.gvsig.tools.dynobject.Tags; |
4 | 6 |
|
5 | 7 |
/** |
... | ... | |
15 | 17 |
public Class getDataClass(); |
16 | 18 |
|
17 | 19 |
public Object createData(Object data, Tags tags); |
20 |
|
|
21 |
public Object coerce(DataType dataType, Object value, Tags tags) throws CoercionException; |
|
18 | 22 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java | ||
---|---|---|
72 | 72 |
import org.gvsig.tools.bookmarksandhistory.Bookmark; |
73 | 73 |
import org.gvsig.tools.bookmarksandhistory.Bookmarks; |
74 | 74 |
import org.gvsig.tools.bookmarksandhistory.History; |
75 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
76 |
import org.gvsig.tools.dataTypes.DataType; |
|
77 |
import org.gvsig.tools.dataTypes.DataTypes; |
|
75 | 78 |
import org.gvsig.tools.dynobject.DynObject; |
76 | 79 |
import org.gvsig.tools.dynobject.Tags; |
77 | 80 |
import org.gvsig.tools.folders.FoldersManager; |
... | ... | |
107 | 110 |
SimpleImage image = toolsSwingManager.createSimpleImage(data); |
108 | 111 |
return image; |
109 | 112 |
} |
113 |
|
|
114 |
@Override |
|
115 |
public Object coerce(DataType dataType, Object data, Tags tags) throws CoercionException { |
|
116 |
final ToolsSwingManager toolsSwingManager; |
|
117 |
final SimpleImage image; |
|
118 |
try { |
|
119 |
switch(dataType.getType()) { |
|
120 |
case DataTypes.BYTEARRAY: |
|
121 |
toolsSwingManager = ToolsSwingLocator.getToolsSwingManager(); |
|
122 |
image = toolsSwingManager.createSimpleImage(data); |
|
123 |
return image.toBytearray(); |
|
124 |
case DataTypes.STRING: |
|
125 |
toolsSwingManager = ToolsSwingLocator.getToolsSwingManager(); |
|
126 |
image = toolsSwingManager.createSimpleImage(data); |
|
127 |
return image.toString(); |
|
128 |
default: |
|
129 |
break; |
|
130 |
} |
|
131 |
} catch(Exception ex) { |
|
132 |
throw new CoercionException("Can't convert imagen to "+dataType.getName(), ex); |
|
133 |
} |
|
134 |
throw new CoercionException("Can't convert imagen to "+dataType.getName()); |
|
135 |
} |
|
136 |
|
|
110 | 137 |
} |
111 | 138 |
|
112 | 139 |
@Override |
Also available in: Unified diff