Revision 1844 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dataTypes/impl/DefaultDataType.java
DefaultDataType.java | ||
---|---|---|
24 | 24 |
package org.gvsig.tools.dataTypes.impl; |
25 | 25 |
|
26 | 26 |
import java.text.MessageFormat; |
27 |
import java.util.Locale; |
|
27 | 28 |
|
28 | 29 |
import org.gvsig.tools.dataTypes.CoercionException; |
29 | 30 |
import org.gvsig.tools.dataTypes.DataType; |
30 | 31 |
import org.gvsig.tools.dataTypes.DataTypes; |
32 |
import org.gvsig.tools.dataTypes.DataTypesManager; |
|
31 | 33 |
import org.gvsig.tools.dataTypes.DataTypesManager.Coercion; |
34 |
import org.gvsig.tools.dataTypes.DataTypesManager.CoercionWithLocale; |
|
32 | 35 |
import org.slf4j.Logger; |
33 | 36 |
import org.slf4j.LoggerFactory; |
34 | 37 |
|
... | ... | |
147 | 150 |
return false; |
148 | 151 |
} |
149 | 152 |
|
150 |
public class LinkedCoercions implements Coercion {
|
|
151 |
|
|
153 |
public class LinkedCoercions implements DataTypesManager.CoercionWithLocale {
|
|
154 |
|
|
152 | 155 |
public class LinkedCoercion { |
153 | 156 |
Coercion coercion; |
154 | 157 |
LinkedCoercion theNext; |
... | ... | |
197 | 200 |
} |
198 | 201 |
return false; |
199 | 202 |
} |
200 |
|
|
203 |
@Override |
|
201 | 204 |
public Object coerce(Object value) throws CoercionException { |
205 |
return coerce(value, null); |
|
206 |
} |
|
207 |
|
|
208 |
@Override |
|
209 |
public Object coerce(Object value, Locale locale) throws CoercionException { |
|
202 | 210 |
LinkedCoercion x = head; |
203 | 211 |
while( x!=null ) { |
204 | 212 |
try { |
205 |
return x.coerce(value); |
|
213 |
if (x instanceof CoercionWithLocale) { |
|
214 |
return ((CoercionWithLocale) x).coerce(value, locale); |
|
215 |
} |
|
216 |
return x.coerce(value); |
|
206 | 217 |
} catch (CoercionException e) { |
207 |
x = x.next();
|
|
208 |
if( x==null ) {
|
|
209 |
throw e;
|
|
210 |
}
|
|
218 |
x = x.next();
|
|
219 |
if( x==null ) {
|
|
220 |
throw e;
|
|
221 |
}
|
|
211 | 222 |
} |
212 | 223 |
} |
213 | 224 |
throw new CoercionException(); |
Also available in: Unified diff