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

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

There is a newer version: 2.0.0.2
Show newest version
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evasion.entity;

import com.evasion.entity.security.User;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 *
 * @author sebastien.glon
 */
@Entity
@Table(name = "staticpages")
@NamedQueries({
    @NamedQuery(name = StaticPage.FIND_ALL, query = "SELECT p FROM StaticPage p"),
    @NamedQuery(name = "findpage", query = "SELECT p.corps FROM StaticPage p WHERE p.id = ?1")
})
public class StaticPage implements Serializable {

    /***
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;
    public static final String FIND_ALL = "findAllStaticPage";
    /**
     * Identifiant d'une personne.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column(nullable = false, length = 150)
    private String titre;
    @Basic(fetch = FetchType.LAZY)
    @Lob
    @Column(nullable = false)
    private String corps;
    @Column(length = 500)
    private String description;
    @ManyToOne
    @JoinColumn(nullable = false)
    private User user;
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dateMaj")
    private Calendar dateMajInternal = new GregorianCalendar();

    /**
     * Constructeur interne pour la persistence.
     */
    protected StaticPage() {
    }

    /**
     * Constructeur publique.
     * @param titre titre de la page.
     * @param corps corps de la page.
     * @param description description de la page.
     * @param user utilisateur auteur de la page.
     */
    public StaticPage(String titre, String corps, String description, User user) {
        this.titre = titre;
        this.corps = corps;
        this.description = description;
        this.user = user;
        this.dateMajInternal = new GregorianCalendar();
    }

    /**
     * Getter du corps de page.
     * @return corps de page.
     */
    public String getCorps() {
        return corps;
    }

    /**
     * Setter du corps de page.
     * @param corps corps de page.
     */
    public void setCorps(String corps) {
        this.corps = corps;
    }

    /**
     * Getter de la description de page
     * @return description de page.
     */
    public String getDescription() {
        return description;
    }

    /**
     * Setter de la description de la page.
     * @param description description de la page.
     */
    public void setDescription(String description) {
        this.description = description;
    }

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

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

    /**
     * Getter de titre.
     * @return titre de la page.
     */
    public String getTitre() {
        return titre;
    }

    /**
     * Setter du titre de la page.
     * @param titre titre de la page.
     */
    public void setTitre(String titre) {
        this.titre = titre;
    }

    /**
     * Getter de la date de mise à jour (non protégé).
     * @return date de mise à jour non protégé.
     */
    protected Calendar getDateMajInternal() {
        return dateMajInternal;
    }

    /**
     * Setter de la date de mise à jour (non protégé).
     * @param dateMajInternal date de mise à jour non protégé.
     */
    protected void setDateMajInternal(Calendar dateMajInternal) {
        this.dateMajInternal = dateMajInternal;
    }

    /**
     * Getter de la date de mise à jour
     * @return date de dernière mise à jour.
     */
    public Date getDateMaj() {
        if (dateMajInternal == null) {
            return null;
        } else {
            return dateMajInternal.getTime();
        }
    }

    /**
     * Setter de la date de dernière mise à jour.
     * @param dateMaj date de dernière mise à jour.
     */
    public void setDateMaj(Date dateMaj) {
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(dateMaj);
        this.dateMajInternal = calendar;
    }

    /**
     * Getter de l'utilisateur.
     * @return utilisateur auteur de la page.
     */
    public User getUser() {
        return user;
    }

    /**
     * Setter de l'utilisateur.
     * @param user utilisateur auteur de la page.
     */
    public void setUser(User user) {
        this.user = user;
    }

    /**
     * {@inheritDoc }
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!( obj instanceof StaticPage )) {
            return false;
        }
        StaticPage rhs = (StaticPage) obj;

        return new EqualsBuilder().append(this.titre, rhs.titre).
                append(this.user, rhs.user).
                isEquals();
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy