view flys-client/src/main/java/de/intevation/flys/client/client/Config.java @ 229:924da6695800

Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient. flys-client/trunk@1681 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 14 Apr 2011 07:53:01 +0000
parents 8facd8545a12
children 385e9368ffcd
line wrap: on
line source
package de.intevation.flys.client.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.LocaleInfo;

import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Node;


/**
 * A class that is used to handle the global configuration of this client. You
 * can retrieve an instance of this class using the <code>getInstance</code>
 * methods. <b>NOTE:</b> the configuration is initialized using {@link
 * getInstance(Document)} the first time.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class Config {

    /** The instance of the configuration. */
    protected static Config INSTANCE;

    /** The xml document that contains the configuration options.*/
    protected Document config;


    /**
     * Get an instance by using {@link getInstance(Document)} or {@link
     * getInstance()}.
     */
    private Config(Document config) {
        this.config = config;
    }


    /**
     * Returns an instance of this class and initializes the configuration of
     * this has not been done so far.
     *
     * @param config The client configuration.
     *
     * @return an instance of this Config class.
     */
    public static Config getInstance(Document config) {
        if (INSTANCE == null) {
            INSTANCE = new Config(config);
        }

        return INSTANCE;
    }


    /**
     * Returns an instance of this class. If it has not been initialized with a
     * valid configuration, null is returned.
     *
     * @return an instance of this class or null, if the Config has not been
     * initialized using {@link getInstance(Document)} so far.
     */
    public static Config getInstance() {
        return INSTANCE;
    }


    /**
     * Returns the URL of the artifact server.
     *
     * @return the artifact server url.
     */
    public String getServerUrl() {
        Node server = config.getElementsByTagName("server").item(0);
        return server.getFirstChild().getNodeValue();
    }


    /**
     * Returns the name of the current locale.
     *
     * @return the name of the current locale.
     */
    public String getLocale() {
        return LocaleInfo.getCurrentLocale().getLocaleName();
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org