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

com.evasion.entity.event.EventData Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
package com.evasion.entity.event;

import com.evasion.EntityJPA;
import com.evasion.entity.security.User;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author sebastien.glon
 */
@Entity
@Table(name = "eventData")
public class EventData extends EntityJPA {

    /***
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;
    /**
     * Id technique.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    /**
     * Date de l'évènement.
     */
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Calendar dateRecordInternal;
    @Column(nullable = false)
    private String entityName;
    @Column(nullable = false)
    private String entityId;
    @Column(nullable = false)
    private String code;
    @Column(nullable = false)
    private String plugin;
    /**
     * Auteur à l'origine de l'évènement.
     */
    @ManyToOne
    private User auteur;

    /**
     * Constructeur par défaut pour la persistence.
     */
    protected EventData() {
    }

    /**
     * Constructeur général.
     * @param entityName nom de l'entity.
     * @param entityId identifiant technique de l'entity.
     * @param code code technique de caractérisant l'évènement.
     * @param plugin nom du plugin ayant provoqué l'évènement.
     */
    public EventData(String entityName, String entityId, String code, String plugin, User auteur) {
        this.entityName = entityName;
        this.entityId = entityId;
        this.code = code;
        this.plugin = plugin;
        this.auteur = auteur;
        this.dateRecordInternal = new GregorianCalendar();
    }

    /**
     * Getter de id.
     * @return identifiant technique.
     */
    @Override
    public Long getId() {
        return id;
    }

    /*
     * Setter de id.
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Getter de code.
     * @return code d'identification de l'évènement.
     */
    public String getCode() {
        return code;
    }

    /**
     * Getter de entityId.
     * @return identifiant technique de l'entity.
     */
    public String getEntityId() {
        return entityId;
    }

    /**
     * Getter de entityName.
     * @return entity name.
     */
    public String getEntityName() {
        return entityName;
    }

    /**
     * Getter pour la persistence de la dateRecordInternal.
     * @return date d'enregistrement.
     */
    protected Calendar getDateRecordInternal() {
        if (dateRecordInternal == null) {
            dateRecordInternal = new GregorianCalendar();
        }
        return dateRecordInternal;
    }

    /**
     * Setter pour la persistence de la dateRecordInternal.
     * @param calendar date d'enregistrement.
     */
    protected void setDateRecordInternal(Calendar calendar) {
        this.dateRecordInternal = calendar;
    }

    /**
     * Getter de la dateRecordInternal.
     * @return date d'enregistrement.
     */
    public Date getDateRecord() {
        return this.getDateRecordInternal().getTime();
    }

    /**
     * Getter de l'auteur.
     * @return auteur de l'évènement.
     */
    public User getAuteur() {
        return auteur;
    }

    /**
     * Getter du plugin à l'origine de l'évènement.
     * @return nom du plugin à l'origine de l'évènement
     */
    public String getPlugin() {
        return plugin;
    }

    /**
     * {@inheritDoc }
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!( obj instanceof EventData )) {
            return false;
        }
        EventData rhs = (EventData) obj;
        return new EqualsBuilder().append(this.dateRecordInternal, rhs.dateRecordInternal).
                append(this.plugin, rhs.plugin).append(this.entityId, rhs.entityId).
                append(this.entityName, rhs.entityName).
                append(this.code, rhs.code).append(this.auteur, rhs.auteur).isEquals();
    }

    /**
     * {@inheritDoc }
     */
    @Override
    public int hashCode() {
        HashCodeBuilder hash = new HashCodeBuilder();
        hash.append(this.dateRecordInternal).
                append(this.plugin).append(this.entityId).
                append(this.entityName).
                append(this.code).append(this.auteur);
        return hash.toHashCode();
    }

    /**
     * {@inheritDoc }
     */
    @Override
    public String toString() {
        return new ToStringBuilder(this).append(EventData.class.getName()).append("[").
                append("id", this.id).append("dateRecordInternal", this.dateRecordInternal).
                append("code", this.code).append("]").toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy