/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.resolver.locale;
import java.util.Locale;
import com.google.common.base.Preconditions;
public abstract class LocaleParser
{
public static Locale parseLocale( final String value )
{
Preconditions.checkArgument( value != null, "locale string cannot be null" );
String normalized = supportBothUnderscoreAndDash( value );
final String[] parts = normalized.split( "_" );
if ( parts.length == 1 )
{
return new Locale( parts[0] );
}
else if ( parts.length == 2 )
{
return new Locale( parts[0], parts[1] );
}
else if ( parts.length == 3 )
{
return new Locale( parts[0], parts[1], parts[2] );
}
throw new IllegalArgumentException( "Could not parse string: '" + value + "' to a valid locale" );
}
private static String supportBothUnderscoreAndDash( String value )
{
String normalized = value.replace( "-", "_" );
return normalized;
}
}