All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.evasion.entity.Person Maven / Gradle / Ivy

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

import com.evasion.EntityJPA;
import javax.persistence.*;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 * Definit la structure de base d'une personne physique ou morale.
 * @author sebglon
 */
@Entity(name=Person.ENTITY_NAME)
@Table(name=Person.ENTITY_NAME)
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Person extends EntityJPA {
    /***
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;
    public static final String ENTITY_NAME = "COM_PERSON";
    /**
     * Identifiant d'une personne.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    /**
     * Taille max du nom d'une personne.
     */
    public static final int NOM_MAX_LENGTH = 100;

    /**
     * Nom de la personne.
     */
    @Column(nullable = false, length = NOM_MAX_LENGTH)
    private String nom;

    /**
     * Taille max d'une adresse mail.
     */
    public static final int EMAIL_MAX_LENGTH = 320;

    /**
     * Email de contact de la personne.
     */
    @Column(nullable = false, length = EMAIL_MAX_LENGTH)
    private String email;

    /**
     * Constructeur par defaut.
     */
    public Person() {
    }

    /**
     * Constructeur d'une personne.
     * @param name nom de la personne.
     * @param mail adresse mail de la personne.
     */
    public Person(final String name, final String mail) {
        this.nom = name;
        this.email = mail;
    }

    /**
     * Getter de l'ID technique.
     * @return renvoi d'ID technique.
     */
    public Long getId() {
        return id;
    }

    /**
     * Setter de l'ID technique.
     * @param id valeur de l'ID technique.
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Getter de email.
     * @return renvoi l'adresse mail de la personne.
     */
    public String getEmail() {
        return email;
    }

    /**
     * Setter de l'email.
     * @param email adresse mail à setter.
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /*
     * Gettter de nom.
     * @return nom de la personne.
     */
    public String getNom() {
        return nom;
    }

    /**
     * Setter de nom.
     * @param nom nom de la personne.
     */
    public void setNom(String nom) {
        this.nom = nom;
    }

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

    /**
     * {@inheritDoc }.
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37).append(this.nom).append(this.email).toHashCode();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy