LogEvent.java

/*
 * +====================================================================+
 * |         Copyright (C) 2015 Rochester Institute of Technology,      |
 * |            103 Lomb Memorial Drive, Rochester, NY - 14623          |
 * |                        All Rights Reserved.                        |
 * +====================================================================+
 *   FILENAME
 *    LogEvent.java
 *
 *   AUTHOR
 *    @author Khanh Ho (kchisd at rit.edu)
 *
 * =====================================================================
 */

package edu.rit.coopeval.model;

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

@Entity
@Table(name = "LOGEVENT")
public class LogEvent {

    private long logEventId;
    private Timestamp time;
    private String message;
    private Long userId;
    private Timestamp createDate;
    private String createBy;
    private Timestamp modDate;
    private String modBy;
    private Collection<EmailLogEvent> emailLogEventsByLogEventId;
    private LogEventSeverityType logEventSeverityTypeByLogEventSeverityTypeId;
    private LogEventType logEventTypeByLogEventTypeId;

    @Id
    @Column(name = "LOGEVENTID", nullable = false, insertable = true, updatable = true, precision = 0)
    public long getLogEventId() {
        return logEventId;
    }

    public void setLogEventId(long logEventId) {
        this.logEventId = logEventId;
    }

    @Basic
    @Column(name = "TIME", nullable = true, insertable = true, updatable = true)
    public Timestamp getTime() {
        return time;
    }

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

    @Lob
    @Basic
    @Column(name = "MESSAGE", nullable = true, insertable = true, updatable = true)
    public String getMessage() {
        return message;
    }

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

    @Basic
    @Column(name = "USERID", nullable = true, insertable = true, updatable = true, precision = 0)
    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    @Basic
    @Column(name = "CREATEDATE", nullable = true, insertable = true, updatable = true)
    public Timestamp getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }

    @Basic
    @Column(name = "CREATEBY", nullable = true, insertable = true, updatable = true, length = 15)
    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    @Basic
    @Column(name = "MODDATE", nullable = true, insertable = true, updatable = true)
    public Timestamp getModDate() {
        return modDate;
    }

    public void setModDate(Timestamp modDate) {
        this.modDate = modDate;
    }

    @Basic
    @Column(name = "MODBY", nullable = true, insertable = true, updatable = true, length = 15)
    public String getModBy() {
        return modBy;
    }

    public void setModBy(String modBy) {
        this.modBy = modBy;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        LogEvent logEvent = (LogEvent) o;

        if (logEventId != logEvent.logEventId) {
            return false;
        }
        if (createBy != null ? !createBy.equals(logEvent.createBy) : logEvent.createBy != null) {
            return false;
        }
        if (createDate != null ? !createDate.equals(logEvent.createDate) : logEvent.createDate != null) {
            return false;
        }
        if (message != null ? !message.equals(logEvent.message) : logEvent.message != null) {
            return false;
        }
        if (modBy != null ? !modBy.equals(logEvent.modBy) : logEvent.modBy != null) {
            return false;
        }
        if (modDate != null ? !modDate.equals(logEvent.modDate) : logEvent.modDate != null) {
            return false;
        }
        if (time != null ? !time.equals(logEvent.time) : logEvent.time != null) {
            return false;
        }
        if (userId != null ? !userId.equals(logEvent.userId) : logEvent.userId != null) {
            return false;
        }

        return true;
    }

    @Override
    public int hashCode() {
        int result = (int) (logEventId ^ (logEventId >>> 32));
        result = 31 * result + (time != null ? time.hashCode() : 0);
        result = 31 * result + (message != null ? message.hashCode() : 0);
        result = 31 * result + (userId != null ? userId.hashCode() : 0);
        result = 31 * result + (createDate != null ? createDate.hashCode() : 0);
        result = 31 * result + (createBy != null ? createBy.hashCode() : 0);
        result = 31 * result + (modDate != null ? modDate.hashCode() : 0);
        result = 31 * result + (modBy != null ? modBy.hashCode() : 0);
        return result;
    }

    @OneToMany(mappedBy = "logEventByLogEventId")
    public Collection<EmailLogEvent> getEmailLogEventsByLogEventId() {
        return emailLogEventsByLogEventId;
    }

    public void setEmailLogEventsByLogEventId(Collection<EmailLogEvent> emailLogEventsByLogEventId) {
        this.emailLogEventsByLogEventId = emailLogEventsByLogEventId;
    }

    @ManyToOne
    @JoinColumn(name = "LOGEVENTSEVERITYTYPEID")
    public LogEventSeverityType getLogEventSeverityTypeByLogEventSeverityTypeId() {
        return logEventSeverityTypeByLogEventSeverityTypeId;
    }

    public void setLogEventSeverityTypeByLogEventSeverityTypeId(
        LogEventSeverityType logEventSeverityTypeByLogEventSeverityTypeId) {
        this.logEventSeverityTypeByLogEventSeverityTypeId = logEventSeverityTypeByLogEventSeverityTypeId;
    }

    @ManyToOne
    @JoinColumn(name = "LOGEVENTTYPEID")
    public LogEventType getLogEventTypeByLogEventTypeId() {
        return logEventTypeByLogEventTypeId;
    }

    public void setLogEventTypeByLogEventTypeId(LogEventType logEventTypeByLogEventTypeId) {
        this.logEventTypeByLogEventTypeId = logEventTypeByLogEventTypeId;
    }
}