AccountManager.java :  » MVC » simpleframework » net » simpleframework » organization » account » Java Open Source

Java Open Source » MVC » simpleframework 
simpleframework » net » simpleframework » organization » account » AccountManager.java
package net.simpleframework.organization.account;

import java.util.Date;

import net.simpleframework.ado.DataObjectException;
import net.simpleframework.ado.db.ITableEntityManager;
import net.simpleframework.ado.db.event.TableEntityAdapter;
import net.simpleframework.ado.db.schema.UniqueValue;
import net.simpleframework.organization.AbstractOrganizationManager;
import net.simpleframework.organization.OrgUtils;
import net.simpleframework.organization.account.IAccount.InsertCallback;
import net.simpleframework.organization.user.IUser;
import net.simpleframework.util.ConvertUtils;

/**
 * LGPLv3
 * 
 * @author (cknet@126.com, 13910090885)
 *         http://code.google.com/p/simpleframework/
 *         http://www.simpleframework.net
 */
public class AccountManager extends AbstractOrganizationManager<Account> {

  public AccountManager() {
    // admin
    final Account account = (Account) getAccountByName(IUser.admin);
    if (account == null) {
      insertAccount(IUser.admin, IUser.admin, null, new IAccount.InsertCallback() {
        @Override
        public void insert(final IUser user) {
          user.setText(IUser.admin);
        }
      });
    }
  }

  public IAccount getAccountByName(final String name) {
    final IUser user = OrgUtils.um().getUserByName(name);
    if (user == null) {
      return null;
    }
    return getAccountById(user.getId());
  }

  public IAccount getAccountById(final Object id) {
    if (id == null) {
      return null;
    }
    return queryForObject(new UniqueValue(ConvertUtils.toLong(id, 0)));
  }

  public IAccount insertAccount(final String name, final String password, final String ip,
      final InsertCallback callback) {
    final ITableEntityManager temgr = getEntityManager();
    final Account account = new Account();
    account.setPassword(password);
    account.setStatus(EAccountStatus.normal);
    account.setCreateDate(new Date());
    account.setLastLoginDate(account.getCreateDate());
    account.setLastLoginIP(ip);
    if (callback != null) {
      callback.init(account);
    }
    temgr.insertTransaction(account, new TableEntityAdapter() {
      @Override
      public void afterInsert(final ITableEntityManager manager, final Object[] objects) {
        final IUser user = OrgUtils.um().createUser(account.getId());
        user.setName(name);
        if (callback != null) {
          try {
            callback.insert(user);
          } catch (final Exception e) {
            throw new DataObjectException(e);
          }
        }
        OrgUtils.um().getEntityManager().insert(user);
      }
    });
    return account;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.