Package com.evasion.plugin.common.entity

Source Code of com.evasion.plugin.common.entity.Account

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.plugin.common.entity;

import com.evasion.EntityJPA;
import com.evasion.entity.Person;
import com.evasion.entity.security.User;
import com.evasion.module.common.entity.AccountDTO;
import javax.persistence.*;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

/**
*
* @author sebastien.glon
*/
@Entity(name = Account.ENTITY_NAME)
@Table(name = Account.ENTITY_NAME)
@NamedQuery(name=Account.QUERY_ACCOUNT_BY_USERNAME, query="select DISTINCT a from "+Account.ENTITY_NAME+" a where a.user.username = ?1")
public class Account extends EntityJPA<Long> {

    /**
     * *
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;

    public static final String ENTITY_NAME = "COM_ACCOUNT";

    public static final String QUERY_ACCOUNT_BY_USERNAME ="account_by_username";
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    @JoinColumn(unique=true)
    private User user;

    @OneToOne
    @JoinColumn(unique=true)
    private Person person;

    public Account() {
    }

    public Account(User user, Person person) {
        this.user = user;
        this.person = person;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public static AccountDTO toDTO(Account account) {
        AccountDTO dto = new AccountDTO();
        dto.setId(account.getId());
        dto.setEmail(account.getUser().getEmail());
        dto.setPassword(account.getUser().getPassword());
        dto.setPerson(account.getPerson());
        dto.setUsername(account.getUser().getUsername());
        dto.setCreationDate(account.getUser().getCreationDate());
        dto.setLastLogin(account.getUser().getLastLogin());
        return dto;
    }

    public void mergeFromDTO(AccountDTO dto) {
        if (this.getPerson()==null) {
            this.setPerson(dto.getPerson());
        } else {
        this.getPerson().setEmail(dto.getEmail());
        this.setPerson(dto.getPerson());
        }
        if (this.getUser()==null) {
            this.setUser(new User());
        }
        this.getUser().setUsername(dto.getUsername());
        this.getUser().setPassword(dto.getPassword());
        this.getUser().setEmail(dto.getEmail());
       

    }

    /**
     * {@inheritDoc }
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof Account)) {
            return false;
        }
        Account rhs = (Account) obj;
        return new EqualsBuilder().append(this.user, rhs.user).append(this.person, rhs.person).isEquals();
    }

    /**
     * Calcul du hashcode sur la clé naturelle.
     *
     * @return valeur du hashCode.
     */
    @Override
    public int hashCode() {
        HashCodeBuilder hash = new HashCodeBuilder();
        hash.append(this.getUser()).append(this.getPerson());
        return hash.toHashCode();
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this).append(user).append(person).toString();
    }
}
TOP

Related Classes of com.evasion.plugin.common.entity.Account

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.