001    package org.apache.commons.contract.constraints;
002    
003    import java.util.Locale;
004    
005    import org.apache.commons.contract.Context;
006    import org.apache.commons.i18n.bundles.ErrorBundle;
007    import org.apache.commons.i18n.bundles.TextBundle;
008    
009    public class LocaleConstraints implements Constraints {
010            public static final LocaleConstraints UNCONSTRAINED = new LocaleConstraints();
011    
012        public void validate(Object value, Context context) throws ValidationException {
013            }
014            
015            public Object cast(Object value, Context context) throws CastException {
016                    if ( value instanceof Locale) {
017                return (Locale)value;
018                    } 
019                    try {
020                            return new Locale(StringConstraints.UNCONSTRAINED.cast(value, null).toString());
021                    } catch ( CastException exception ) {
022                            throw new CastException(new ErrorBundle("uncastableLocale", new Object[] { value }));
023                    }
024            }
025        
026        public TextBundle verboseConstraints() {
027            return new TextBundle("unconstrainedLocale");
028        }
029    }