Revision 1844 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dataTypes/impl/DefaultDataType.java

View differences:

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