Publisher.java 1.96 KB
package org.legrog.entities;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Set;

@Entity
//@Table(name = "editeur")
public class Publisher /* extends org.roliste.data.DbLinkableEntity */ {
// TODO L'éventuel usage de Linkable reste à confirmer https://tree.taiga.io/project/jr-utily-grog-v3/us/48
// TODO Attention, en v2 Linkable implique Traceable (journalisable) qui devrait aussi être évalué
    @Id
    @Column(name = "PUBLISHER_ID")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int publisherId;

    @OneToOne
    private PublisherRevision validatedRevision;

    @OneToOne
    private User validator;

    private Timestamp validationDateTime;

    @OneToMany(mappedBy = "publisher", fetch = FetchType.EAGER)
    private Set<PublisherRevision> revisions;

    public int getPublisherId() {
        return publisherId;
    }

    public void setPublisherId(int publisherId) {
        this.publisherId = publisherId;
    }

    public PublisherRevision getValidatedRevision() {
        return validatedRevision;
    }

    public void setValidatedRevision(PublisherRevision activeRevision) {
        this.validatedRevision = activeRevision;
    }

    public Set<PublisherRevision> getRevisions() {
        return revisions;
    }

    public void setRevisions(Set<PublisherRevision> revisions) {
        this.revisions = revisions;
    }

    public User getValidator() {
        return validator;
    }

    public void setValidator(User activeValidator) {
        this.validator = activeValidator;
    }

    public Timestamp getValidationDateTime() {
        return validationDateTime;
    }

    public void setValidationDateTime(Timestamp validationDateTime) {
        this.validationDateTime = validationDateTime;
    }

    @Override
    public String toString() {
        return "PUBLISHER_ID = " + publisherId + ", Active Revision = " + validatedRevision + ", Validator = " + validator + ", Validation DateTime = " + validationDateTime;
    }
}