FileDocCategorySizeDatePackage
CharsetMapper.javaAPI DocGlassfish v2 API6165Fri May 04 22:32:30 BST 2007org.apache.catalina.util

CharsetMapper

public class CharsetMapper extends Object implements Cloneable
Utility class that attempts to map from a Locale to the corresponding character set to be used for interpreting input text (or generating output text) when the Content-Type header does not include one. You can customize the behavior of this class by modifying the mapping data it loads, or by subclassing it (to change the algorithm) and then using your own version for a particular web application.
author
Craig R. McClanahan
revision
$Date: 2007/05/05 05:32:30 $ $Version$

Fields Summary
public static final String
DEFAULT_RESOURCE
Default properties resource name.
protected Properties
map
The mapping properties that have been initialized from the specified or default properties resource.
Constructors Summary
public CharsetMapper()
Construct a new CharsetMapper using the default properties resource.



    // ---------------------------------------------------------- Constructors


                  
      

        this(DEFAULT_RESOURCE);

    
public CharsetMapper(String name)
Construct a new CharsetMapper using the specified properties resource.

param
name Name of a properties resource to be loaded
exception
IllegalArgumentException if the specified properties resource could not be loaded for any reason.


        try {
            InputStream stream =
              this.getClass().getResourceAsStream(name);
            map.load(stream);
            stream.close();
        } catch (Throwable t) {
            throw new IllegalArgumentException(t.toString());
        }


    
Methods Summary
public voidaddCharsetMappingFromDeploymentDescriptor(java.lang.String locale, java.lang.String charset)
The deployment descriptor can have a locale-encoding-mapping-list element which describes the webapp's desired mapping from locale to charset. This method gets called when processing the web.xml file for a context

param
locale The locale for a character set
param
charset The charset to be associated with the locale

        map.put( locale, charset );
    
public final java.lang.Objectclone()

        
        try {
            CharsetMapper clone = (CharsetMapper)super.clone();
            clone.map = (Properties)map.clone();
            return clone;
        } catch (CloneNotSupportedException e) {
            throw new InternalError(e.toString());
        }
    
public java.lang.StringgetCharset(java.util.Locale locale)
Calculate the name of a character set to be assumed, given the specified Locale and the absence of a character set specified as part of the content type header.

param
locale The locale for which to calculate a character set

    // END RIMOD 4870531


    // ------------------------------------------------------- Public Methods


                                                 
        

        String charset = null;

        // First, try a full name match (language and country)
        charset = map.getProperty(locale.toString());
        if (charset != null)
            return (charset);

        // Second, try to match just the language
        charset = map.getProperty(locale.getLanguage());
        return (charset);