anzsoft.xmpp4gwt.client.User.java Source code

Java tutorial

Introduction

Here is the source code for anzsoft.xmpp4gwt.client.User.java

Source

/*
 * tigase-xmpp4gwt
 * Copyright (C) 2007 "Bartosz Makowski" <bmalkow@tigase.org>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. Look for COPYING file in the top folder.
 * If not, see http://www.gnu.org/licenses/.
 *
 * $Rev$
 * Last modified by $Author$
 * $Date$
 */
package anzsoft.xmpp4gwt.client;

import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.Cookies;

public class User {

    private final static String STORAGE_DOMAIN = "0";
    private final static String STORAGE_PRIORITY = "1";
    private final static String STORAGE_RESOURCE = "2";
    private final static String STORAGE_USERNAME = "3";

    private String domainname;;

    private String password;

    private int priority;

    private String resource;

    private String username;

    private static final String COOKIENAME = "ijabuser";

    public User() {
    }

    /**
     * @param username
     * @param domainname
     * @param password
     * @param resource
     * @param priority
     */
    public User(String username, String domainname, String password, String resource, int priority) {
        super();
        this.username = username;
        this.domainname = domainname;
        this.password = password;
        this.resource = resource;
        this.priority = priority;
    }

    /**
     * @return the domainname
     */
    public String getDomainname() {
        return domainname;
    }

    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @return the priority
     */
    public int getPriority() {
        return priority;
    }

    /**
     * @return the resource
     */
    public String getResource() {
        return resource;
    }

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    public void reset() {
        Cookies.removeCookie(COOKIENAME);
        password = "";
        priority = 0;
        domainname = "";
        username = "";
        resource = "";
    }

    /**
     * @param domainname
     *            the domainname to set
     */
    public void setDomainname(String domainname) {
        this.domainname = domainname;
    }

    /**
     * @param password
     *            the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * @param priority
     *            the priority to set
     */
    public void setPriority(int priority) {
        this.priority = priority;
    }

    /**
     * @param resource
     *            the resource to set
     */
    public void setResource(String resource) {
        this.resource = resource;
    }

    /**
     * @param username
     *            the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

    public boolean suspend() {
        JSONObject jUser = new JSONObject();
        if (domainname == null || username == null)
            return false;

        jUser.put(STORAGE_DOMAIN, new JSONString(domainname));
        //jUser.put("password", new JSONString(password)); //It's uneeded, and not safe
        String strPriority = String.valueOf(priority);
        if (strPriority != null)
            jUser.put(STORAGE_PRIORITY, new JSONString(String.valueOf(priority)));
        jUser.put(STORAGE_RESOURCE, new JSONString(resource));
        jUser.put(STORAGE_USERNAME, new JSONString(username));

        Cookies.setCookie(COOKIENAME, jUser.toString(), null, null, "/", false);
        return true;
    }

    public boolean resume() {
        String cookie = Cookies.getCookie(COOKIENAME);
        if (cookie == null || cookie.length() == 0)
            return false;
        JSONObject jUser = JSONParser.parse(cookie).isObject();
        if (jUser == null)
            return false;

        this.username = jUser.get(STORAGE_USERNAME).isString().stringValue();
        this.domainname = jUser.get(STORAGE_DOMAIN).isString().stringValue();
        //this.password = jUser.get("password").isString().stringValue();  
        //jUser.put("priority", new JSONString(String.valueOf(priority)));
        this.resource = jUser.get(STORAGE_RESOURCE).isString().stringValue();
        this.priority = Integer.parseInt(jUser.get(STORAGE_PRIORITY).isString().stringValue());
        Cookies.removeCookie(COOKIENAME);
        if (username.length() == 0 || domainname.length() == 0)
            return false;
        return true;
    }

    public String getStorageID() {
        return (username + "at" + domainname).replace(".", "dot");
    }

}