ActionLogMessage.java 2.69 KB
package fi.insomnia.bortal.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;
import org.eclipse.persistence.annotations.PrivateOwned;

import fi.insomnia.bortal.enums.ActionLogMessageState;

@Entity
@Table(name = "actionlog_messages")
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class ActionLogMessage extends GenericEntity {
    private static final long serialVersionUID = -2902547412412000488L;

    @Column(name = "time", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date time = new Date();

    @JoinColumn(name = "user_id")
    private User user;

    @JoinColumn(name = "crew", nullable = false)
    private Role crew;

    @Column(name = "message", nullable = false)
    private String message;

    @OneToMany(mappedBy = "actionLogMessage", cascade = CascadeType.ALL)
    @PrivateOwned
    @OrderBy("id")
    private List<ActionLogMessageResponse> actionLogMessageResponses = new ArrayList<ActionLogMessageResponse>();

    @Column(name = "state", nullable = true)
    @Enumerated(EnumType.STRING)
    private ActionLogMessageState state;

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public User getUser() {
        return user;
    }

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

    public Role getCrew() {
        return crew;
    }

    public void setCrew(Role crew) {
        this.crew = crew;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public ActionLogMessageState getState() {
        return state;
    }

    public void setState(ActionLogMessageState state) {
        this.state = state;
    }

    public List<ActionLogMessageResponse> getActionLogMessageResponses() {
        return actionLogMessageResponses;
    }

    public void setActionLogMessageResponses(List<ActionLogMessageResponse> actionLogMessageResponses) {
        this.actionLogMessageResponses = actionLogMessageResponses;
    }

}