com.android.ide.common.resources.configuration
Class LocaleQualifier

java.lang.Object
  extended by com.android.ide.common.resources.configuration.ResourceQualifier
      extended by com.android.ide.common.resources.configuration.LocaleQualifier
All Implemented Interfaces:
java.lang.Comparable<ResourceQualifier>

public final class LocaleQualifier
extends ResourceQualifier

A locale qualifier, which can be constructed from:


Field Summary
static java.lang.String BCP_47_PREFIX
           
static java.lang.String FAKE_VALUE
           
static java.lang.String NAME
           
 
Constructor Summary
LocaleQualifier()
           
LocaleQualifier(java.lang.String language)
           
LocaleQualifier(java.lang.String full, java.lang.String language, java.lang.String region, java.lang.String script)
           
 
Method Summary
 boolean checkAndSet(java.lang.String value, FolderConfiguration config)
          Check if the value is valid for this qualifier, and if so sets the value into a Folder Configuration.
 boolean equals(java.lang.Object o)
          Returns true if both objects are equal.
 java.lang.String getFolderSegment()
          Returns the string used to represent this qualifier in the folder name.
 java.lang.String getFull()
           
 java.lang.String getLanguage()
           
 java.lang.String getLongDisplayValue()
          Returns a string formatted for display purpose.
 java.lang.String getName()
          Returns the human readable name of the qualifier.
static LocaleQualifier getQualifier(java.lang.String segment)
          Creates and returns a qualifier from the given folder segment.
 java.lang.String getRegion()
           
 java.lang.String getScript()
           
 java.lang.String getShortDisplayValue()
          BCP 47 tag or "language,region", or language
 java.lang.String getShortName()
          Returns a shorter human readable name for the qualifier.
 java.lang.String getTag()
          Tag: language, or language-region, or BCP-47 tag
 java.lang.String getValue()
           
 boolean hasFakeValue()
          Returns whether the qualifier has a fake value.
 int hashCode()
          Returns a hash code value for the object.
 boolean hasLanguage()
           
 boolean hasRegion()
           
 boolean isMatchFor(ResourceQualifier qualifier)
          Returns whether the given qualifier is a match for the receiver.
static boolean isRegionSegment(java.lang.String segment)
           
 boolean isValid()
          Returns whether the qualifier has a valid filter value.
static java.lang.String normalizeCase(java.lang.String segment)
          Given a BCP-47 string, normalizes the case to the recommended casing
static LocaleQualifier parseBcp47(java.lang.String qualifier)
          Parse an Android BCP-47 string (which differs from BCP-47 in that it has the prefix "b+" and the separator character has been changed from - to +.
 int since()
          Returns when this qualifier was added to Android.
 
Methods inherited from class com.android.ide.common.resources.configuration.ResourceQualifier
compareTo, deprecated, isBetterMatchThan, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

FAKE_VALUE

public static final java.lang.String FAKE_VALUE
See Also:
Constant Field Values

NAME

public static final java.lang.String NAME
See Also:
Constant Field Values

BCP_47_PREFIX

public static final java.lang.String BCP_47_PREFIX
See Also:
Constant Field Values
Constructor Detail

LocaleQualifier

public LocaleQualifier()

LocaleQualifier

public LocaleQualifier(@NonNull
                       java.lang.String language)

LocaleQualifier

public LocaleQualifier(@Nullable
                       java.lang.String full,
                       @NonNull
                       java.lang.String language,
                       @Nullable
                       java.lang.String region,
                       @Nullable
                       java.lang.String script)
Method Detail

isRegionSegment

public static boolean isRegionSegment(@NonNull
                                      java.lang.String segment)

getQualifier

@Nullable
public static LocaleQualifier getQualifier(@NonNull
                                                    java.lang.String segment)
Creates and returns a qualifier from the given folder segment. If the segment is incorrect, null is returned.

Parameters:
segment - the folder segment from which to create a qualifier.
Returns:
a new LocaleQualifier object or null

normalizeCase

@NonNull
public static java.lang.String normalizeCase(@NonNull
                                                     java.lang.String segment)
Given a BCP-47 string, normalizes the case to the recommended casing


getValue

@NonNull
public java.lang.String getValue()

getName

public java.lang.String getName()
Description copied from class: ResourceQualifier
Returns the human readable name of the qualifier.

Specified by:
getName in class ResourceQualifier

getShortName

public java.lang.String getShortName()
Description copied from class: ResourceQualifier
Returns a shorter human readable name for the qualifier.

Specified by:
getShortName in class ResourceQualifier
See Also:
ResourceQualifier.getName()

since

public int since()
Description copied from class: ResourceQualifier
Returns when this qualifier was added to Android.

Specified by:
since in class ResourceQualifier

isValid

public boolean isValid()
Description copied from class: ResourceQualifier
Returns whether the qualifier has a valid filter value.

Specified by:
isValid in class ResourceQualifier

hasFakeValue

public boolean hasFakeValue()
Description copied from class: ResourceQualifier
Returns whether the qualifier has a fake value.

Fake values are used internally and should not be used as real qualifier value.

Specified by:
hasFakeValue in class ResourceQualifier

hasLanguage

public boolean hasLanguage()

hasRegion

public boolean hasRegion()

checkAndSet

public boolean checkAndSet(@NonNull
                           java.lang.String value,
                           @NonNull
                           FolderConfiguration config)
Description copied from class: ResourceQualifier
Check if the value is valid for this qualifier, and if so sets the value into a Folder Configuration.

Specified by:
checkAndSet in class ResourceQualifier
Parameters:
value - The value to check and set. Must not be null.
config - The folder configuration to receive the value. Must not be null.
Returns:
true if the value was valid and was set.

equals

public boolean equals(java.lang.Object o)
Description copied from class: ResourceQualifier
Returns true if both objects are equal.

This is declared as abstract to force children classes to implement it.

Specified by:
equals in class ResourceQualifier

hashCode

public int hashCode()
Description copied from class: ResourceQualifier
Returns a hash code value for the object.

This is declared as abstract to force children classes to implement it.

Specified by:
hashCode in class ResourceQualifier

getFolderSegment

public java.lang.String getFolderSegment()
Returns the string used to represent this qualifier in the folder name.

Specified by:
getFolderSegment in class ResourceQualifier

getShortDisplayValue

public java.lang.String getShortDisplayValue()
BCP 47 tag or "language,region", or language

Specified by:
getShortDisplayValue in class ResourceQualifier

getTag

public java.lang.String getTag()
Tag: language, or language-region, or BCP-47 tag


getLongDisplayValue

public java.lang.String getLongDisplayValue()
Description copied from class: ResourceQualifier
Returns a string formatted for display purpose.

Specified by:
getLongDisplayValue in class ResourceQualifier

parseBcp47

@Nullable
public static LocaleQualifier parseBcp47(@NonNull
                                                  java.lang.String qualifier)
Parse an Android BCP-47 string (which differs from BCP-47 in that it has the prefix "b+" and the separator character has been changed from - to +.

Parameters:
qualifier - the folder name to parse
Returns:
a LocaleQualifier holding the language, region and script or null if not a valid Android BCP 47 tag

getLanguage

@NonNull
public java.lang.String getLanguage()

getRegion

@Nullable
public java.lang.String getRegion()

getScript

@Nullable
public java.lang.String getScript()

getFull

@NonNull
public java.lang.String getFull()

isMatchFor

public boolean isMatchFor(ResourceQualifier qualifier)
Description copied from class: ResourceQualifier
Returns whether the given qualifier is a match for the receiver.

The default implementation returns the result of ResourceQualifier.equals(Object).

Children class that re-implements this must implement ResourceQualifier.isBetterMatchThan(ResourceQualifier, ResourceQualifier) too.

Overrides:
isMatchFor in class ResourceQualifier
Parameters:
qualifier - the reference qualifier
Returns:
true if the receiver is a match.