com.glweb.module.member.MembershipManager.java Source code

Java tutorial

Introduction

Here is the source code for com.glweb.module.member.MembershipManager.java

Source

/*
 *
 * $Id: MembershipManager.java,v 1.1 2003/05/17 10:16:53 kocachen Exp $
 *
 * Copyright (c) 2003 SIWI.com
 *
 * Permission is hereby granted, free of charge, to any person obtaining a 
 * copy of this software and associated documentation files (the 
 * "Software"), to deal in the Software without restriction, including 
 * without limitation the rights to use, copy, modify, merge, publish, 
 * distribute, sublicense, and/or sell copies of the Software, and to 
 * permit persons to whom the Software is furnished to do so, subject to 
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included 
 * in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */

package com.glweb.module.member;

import java.util.Collection;
import java.util.Date;

import org.apache.commons.beanutils.PropertyUtils;

import com.glweb.BaseObject;
import com.glweb.infrastructure.persistence.GLWebPersistenceException;
import com.glweb.module.member.dao.UserDAO;
import com.glweb.module.member.factory.*;
import com.glweb.module.member.model.User;

/**
 * UserManager
 *
 * @author   $Author: kocachen $
 * @version  $Revision: 1.1 $ $Date: 2003/05/17 10:16:53 $
 */
public class MembershipManager extends BaseObject {

    private static MembershipManager _instance;

    private UserDAO _userDAO;

    private MembershipManager() {
        setUserDAO(UserDAOFactory.getUserDAO());
    }

    /**
     * Get a new instance of this manager.
     *
     * @return instance
     */
    public static MembershipManager getInstance() {
        if (null == _instance) {
            _instance = new MembershipManager();
        }

        return _instance;
    }

    protected UserDAO getUserDAO() {
        return _userDAO;
    }

    protected void setUserDAO(UserDAO userDAO) {
        _userDAO = userDAO;
    }

    /**
     * @param  User
     * @return true/false
     */
    protected User createUser(User user) {
        long _id = 0;

        try {
            _id = getUserDAO().saveUser(user);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return null;
        }

        return getUser(_id);
    }

    /**
    * @param userName
    * @param password
    * @param email
    * @return com.glweb.model.user.User
    */
    public User createUser(String userName, String password, String email) {
        User _user = new User();
        _user.setName(userName);
        _user.setPassword(password);
        _user.setEmail(email);
        _user.setCreationDate(new Date());
        _user.setLastModifiedDate(new Date());
        return createUser(_user);
    }

    /**
     * @param  User
     * @return true/false
     */
    public User updateUser(User newUser) {
        User _user = null;

        try {
            _user = getUser(newUser.getId());

            PropertyUtils.copyProperties(_user, newUser);

            _user.setLastModifiedDate(new Date());
            getUserDAO().updateUser(_user);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return null;
        } catch (Exception e) {
            getLogger().error(e.getMessage(), e);
            return null;
        }

        return getUser(newUser.getId());
    }

    /**
     * @param  id
     * @return true/false
     */
    public boolean removeUser(long id) {
        try {
            getUserDAO().removeUser(id);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return false;
        }

        return true;
    }

    /**
     * @param  name
     * @return true/false
     */
    public boolean removeUserByName(String name) {
        try {
            getUserDAO().removeUserByName(name);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return false;
        }

        return true;
    }

    /**
     * @param  id
     * @return User
     */
    public User getUser(long id) {
        try {
            return getUserDAO().getUser(id);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return null;
        }
    }

    /**
     * @param  name
     * @return User
     */
    public User getUserByName(String name) {
        try {
            return getUserDAO().getUserByName(name);
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return null;
        }
    }

    /**
     * @return Collection
     */
    public Collection getUsers() {
        try {
            return getUserDAO().getUsers();
        } catch (GLWebPersistenceException e) {
            getLogger().error(e.getMessage(), e);
            return null;
        }
    }

    /**
     * @return
     */
    public int getUserCount() {
        return getUsers().size();
    }

}