| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License") + you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.openmeetings.db.entity.user; |
| |
| import java.io.Serializable; |
| import java.util.Date; |
| |
| import javax.persistence.CascadeType; |
| 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.Table; |
| |
| import org.apache.openjpa.persistence.jdbc.ForeignKey; |
| import org.apache.openmeetings.db.entity.IDataProviderEntity; |
| import org.apache.openmeetings.db.entity.room.Room; |
| import org.simpleframework.xml.Element; |
| import org.simpleframework.xml.Root; |
| |
| @Entity |
| @NamedQueries({ |
| @NamedQuery(name = "getPrivateMessages", query = "SELECT c FROM PrivateMessage c ORDER BY c.id"), |
| @NamedQuery(name = "getPrivateMessageById", query = "SELECT c FROM PrivateMessage c WHERE c.id = :id "), |
| @NamedQuery(name = "updatePrivateMessagesReadStatus", query = "UPDATE PrivateMessage c SET c.isRead = :isRead " + |
| "WHERE c.id IN (:ids) "), |
| @NamedQuery(name = "moveMailsToFolder", query = "UPDATE PrivateMessage c SET c.folderId = :folderId " + |
| "WHERE c.id IN (:ids) "), |
| @NamedQuery(name = "deletePrivateMessages", query = "DELETE FROM PrivateMessage c WHERE c.id IN (:ids) "), |
| @NamedQuery(name = "getPrivateMessagesByRoom", query = "SELECT c FROM PrivateMessage c WHERE c.room.rooms_id = :roomId ") |
| }) |
| @Table(name = "private_message") |
| @Root(name = "privatemessage") |
| public class PrivateMessage implements Serializable, IDataProviderEntity { |
| private static final long serialVersionUID = 1L; |
| public final static long INBOX_FOLDER_ID = 0; |
| public final static long SENT_FOLDER_ID = -1; |
| public final static long TRASH_FOLDER_ID = -2; |
| |
| @Id |
| @GeneratedValue(strategy = GenerationType.IDENTITY) |
| @Column(name = "id") |
| @Element(data = true, name = "privateMessageId") |
| private long id; |
| |
| @Column(name = "subject") |
| @Element(data = true, required = false) |
| private String subject; |
| |
| @Lob |
| @Column(name = "message") |
| @Element(data = true, required = false) |
| private String message; |
| |
| @Column(name = "inserted") |
| @Element(data = true) |
| private Date inserted; |
| |
| @ManyToOne(fetch = FetchType.EAGER) |
| @JoinColumn(name = "from_id") |
| @ForeignKey(enabled = true) |
| @Element(data = true, required = false) |
| private User from; |
| |
| @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) |
| @JoinColumn(name = "to_id") |
| @ForeignKey(enabled = true) |
| @Element(data = true, required = false) |
| private User to; |
| |
| @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) |
| @JoinColumn(name = "owner_id") |
| @ForeignKey(enabled = true) |
| @Element(data = true, required = false) |
| private User owner; |
| |
| @Column(name = "booked_room") |
| @Element(data = true) |
| private boolean bookedRoom; |
| |
| @ManyToOne(fetch = FetchType.EAGER) |
| @JoinColumn(name = "rooms_id") |
| @ForeignKey(enabled = true) |
| @Element(data = true, required = false) |
| private Room room; |
| |
| @Column(name = "is_read") |
| @Element(data = true) |
| private boolean isRead; |
| |
| @Element(data = true) |
| private boolean isTrash; |
| |
| @Column(name = "parent_message_id") |
| @Element(data = true, required = false) |
| private Long parentMessage; |
| |
| @Column(name = "private_message_folder_id") |
| @Element(data = true, name = "privateMessageFolderId") |
| private Long folderId; |
| |
| @Column(name = "is_contact_request") |
| @Element(data = true) |
| private boolean isContactRequest; |
| |
| @Column(name = "user_contact_id") |
| @Element(data = true, required = false) |
| private Long userContactId; |
| |
| public PrivateMessage() { |
| } |
| |
| public PrivateMessage(PrivateMessage copy) { |
| subject = copy.subject; |
| message = copy.message; |
| from = copy.from; |
| to = copy.to; |
| owner = copy.owner; |
| bookedRoom = copy.bookedRoom; |
| room = copy.room; |
| isRead = copy.isRead; |
| parentMessage = copy.parentMessage; |
| folderId = copy.folderId; |
| isContactRequest = copy.isContactRequest; |
| userContactId = copy.userContactId; |
| } |
| |
| public long getId() { |
| return id; |
| } |
| |
| public void setId(long id) { |
| this.id = id; |
| } |
| |
| public String getSubject() { |
| return subject; |
| } |
| |
| public void setSubject(String subject) { |
| this.subject = subject; |
| } |
| |
| public String getMessage() { |
| return message; |
| } |
| |
| public void setMessage(String message) { |
| this.message = message; |
| } |
| |
| public Date getInserted() { |
| return inserted; |
| } |
| |
| public void setInserted(Date inserted) { |
| this.inserted = inserted; |
| } |
| |
| public User getFrom() { |
| return from; |
| } |
| |
| public void setFrom(User from) { |
| this.from = from; |
| } |
| |
| public User getTo() { |
| return to; |
| } |
| |
| public void setTo(User to) { |
| this.to = to; |
| } |
| |
| public User getOwner() { |
| return owner; |
| } |
| |
| public void setOwner(User owner) { |
| this.owner = owner; |
| } |
| |
| public boolean isBookedRoom() { |
| return bookedRoom; |
| } |
| |
| public void setBookedRoom(boolean bookedRoom) { |
| this.bookedRoom = bookedRoom; |
| } |
| |
| public Room getRoom() { |
| return room; |
| } |
| |
| public void setRoom(Room room) { |
| this.room = room; |
| } |
| |
| public Long getParentMessage() { |
| return parentMessage; |
| } |
| |
| public void setParentMessage(Long parentMessage) { |
| this.parentMessage = parentMessage; |
| } |
| |
| @Deprecated |
| public boolean getIsTrash() { |
| return TRASH_FOLDER_ID == folderId; |
| } |
| |
| @Deprecated |
| public void setIsTrash(boolean isTrash) { |
| if (isTrash) { |
| folderId = TRASH_FOLDER_ID; |
| } |
| } |
| |
| public Long getFolderId() { |
| return folderId; |
| } |
| |
| public void setFolderId(Long folderId) { |
| this.folderId = folderId; |
| } |
| |
| public Boolean getIsRead() { |
| return isRead; |
| } |
| |
| public void setIsRead(Boolean isRead) { |
| this.isRead = isRead; |
| } |
| |
| public Boolean getIsContactRequest() { |
| return isContactRequest; |
| } |
| |
| public void setIsContactRequest(Boolean isContactRequest) { |
| this.isContactRequest = isContactRequest; |
| } |
| |
| public Long getUserContactId() { |
| return userContactId; |
| } |
| |
| public void setUserContactId(Long userContactId) { |
| this.userContactId = userContactId; |
| } |
| } |