diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/BoardMessageDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/BoardMessageDao.java new file mode 100644 index 0000000000..1260150d4c --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/BoardMessageDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.BoardMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface BoardMessageDao extends LazyDeleteDao<BoardMessage>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageBoardDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageBoardDao.java new file mode 100644 index 0000000000..c540d4d1fe --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageBoardDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.HiddenMessageBoard; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface HiddenMessageBoardDao extends LazyDeleteDao<HiddenMessageBoard>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageDao.java new file mode 100644 index 0000000000..11ae3ef7c1 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/HiddenMessageDao.java @@ -0,0 +1,15 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.BoardMessage; +import se.su.dsv.scipro.data.dataobjects.HiddenMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface HiddenMessageDao extends LazyDeleteDao<HiddenMessage>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageBoardDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageBoardDao.java new file mode 100644 index 0000000000..b1fc487869 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageBoardDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.MessageBoard; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface MessageBoardDao extends LazyDeleteDao<MessageBoard>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageDao.java new file mode 100644 index 0000000000..7482bc065c --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/MessageDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.Message; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface MessageDao extends LazyDeleteDao<Message>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/PrivateMessageDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/PrivateMessageDao.java new file mode 100644 index 0000000000..a862090fb5 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/PrivateMessageDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.PrivateMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface PrivateMessageDao extends LazyDeleteDao<PrivateMessage>{ + +} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/RecipientDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/RecipientDao.java new file mode 100644 index 0000000000..80dc14bea6 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/RecipientDao.java @@ -0,0 +1,14 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.interfaces; + +import se.su.dsv.scipro.data.dataobjects.Recipient; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public interface RecipientDao extends LazyDeleteDao<Recipient>{ + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardDaoJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardDaoJPAImp.java new file mode 100644 index 0000000000..f231746189 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardDaoJPAImp.java @@ -0,0 +1,19 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.BoardDao; +import se.su.dsv.scipro.data.dataobjects.Board; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class BoardDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Board> implements BoardDao { + + public BoardDaoJPAImp() { + super(Board.class); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardMessageJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardMessageJPAImp.java new file mode 100644 index 0000000000..a449a16cd4 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/BoardMessageJPAImp.java @@ -0,0 +1,20 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.BoardMessageDao; +import se.su.dsv.scipro.data.dataobjects.BoardMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class BoardMessageJPAImp extends LazyDeleteAbstractDaoJPAImp<BoardMessage> + implements BoardMessageDao { + + public BoardMessageJPAImp() { + super(BoardMessage.class); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageBoardJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageBoardJPAImp.java new file mode 100644 index 0000000000..ece51d1bc4 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageBoardJPAImp.java @@ -0,0 +1,21 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.HiddenMessageBoardDao; +import se.su.dsv.scipro.data.dataobjects.HiddenMessageBoard; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class HiddenMessageBoardJPAImp extends LazyDeleteAbstractDaoJPAImp<HiddenMessageBoard> + implements HiddenMessageBoardDao { + + public HiddenMessageBoardJPAImp() { + super(HiddenMessageBoard.class); + } + +} + diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageJPAImp.java new file mode 100644 index 0000000000..89ad5eac5a --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/HiddenMessageJPAImp.java @@ -0,0 +1,20 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.HiddenMessageDao; +import se.su.dsv.scipro.data.dataobjects.HiddenMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class HiddenMessageJPAImp extends LazyDeleteAbstractDaoJPAImp<HiddenMessage> + implements HiddenMessageDao { + + public HiddenMessageJPAImp() { + super(HiddenMessage.class); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageBoardJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageBoardJPAImp.java new file mode 100644 index 0000000000..91f5aa9ca3 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageBoardJPAImp.java @@ -0,0 +1,19 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.MessageBoardDao; +import se.su.dsv.scipro.data.dataobjects.MessageBoard; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class MessageBoardJPAImp extends LazyDeleteAbstractDaoJPAImp<MessageBoard> + implements MessageBoardDao { + + public MessageBoardJPAImp() { + super(MessageBoard.class); + } +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageJPAImp.java new file mode 100644 index 0000000000..e92b19a8d6 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/MessageJPAImp.java @@ -0,0 +1,17 @@ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.MessageDao; +import se.su.dsv.scipro.data.dataobjects.Message; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class MessageJPAImp extends LazyDeleteAbstractDaoJPAImp<Message> + implements MessageDao { + + public MessageJPAImp() { + super(Message.class); + } +} + diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/PrivateMessageJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/PrivateMessageJPAImp.java new file mode 100644 index 0000000000..4cfeb475b1 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/PrivateMessageJPAImp.java @@ -0,0 +1,16 @@ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao; +import se.su.dsv.scipro.data.dataobjects.PrivateMessage; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class PrivateMessageJPAImp extends + LazyDeleteAbstractDaoJPAImp<PrivateMessage> implements PrivateMessageDao { + + public PrivateMessageJPAImp() { + super(PrivateMessage.class); + } +} diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/RecipientJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/RecipientJPAImp.java new file mode 100644 index 0000000000..85234454e8 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/RecipientJPAImp.java @@ -0,0 +1,19 @@ +/** + * + */ +package se.su.dsv.scipro.data.dao.jpa; + +import se.su.dsv.scipro.data.dao.interfaces.RecipientDao; +import se.su.dsv.scipro.data.dataobjects.Recipient; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class RecipientJPAImp extends LazyDeleteAbstractDaoJPAImp<Recipient> + implements RecipientDao { + + public RecipientJPAImp() { + super(Recipient.class); + } +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Board.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Board.java new file mode 100644 index 0000000000..07fe7ed946 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Board.java @@ -0,0 +1,95 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.OneToOne; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ + +@MappedSuperclass +public abstract class Board extends LazyDeletableDomainObject implements Comparable<Board> { + + @Id + @GeneratedValue + private Long id; + + private String title; + + @OneToOne + private Project project; + + public Long getId() { + return id; + } + + + public String getTitle() { + return title; + } + + + + + public void setTitle(String title) { + this.title = title; + } + + + + + public Project getProject() { + return project; + } + + + + + public void setProject(Project project) { + this.project = project; + } + + + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Board other = (Board) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + + + @Override + public int compareTo(Board other) { + return title.compareTo(other.title); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/BoardMessage.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/BoardMessage.java new file mode 100644 index 0000000000..6f8b707c24 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/BoardMessage.java @@ -0,0 +1,26 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import javax.persistence.Cacheable; +import javax.persistence.Entity; +import javax.persistence.Table; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ + +@Entity +@Table(name="board_message") +@Cacheable(true) +@Cache(usage= CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class BoardMessage extends Message{ + + + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessage.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessage.java new file mode 100644 index 0000000000..e30535e412 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessage.java @@ -0,0 +1,25 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import javax.persistence.Cacheable; +import javax.persistence.Entity; +import javax.persistence.Table; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ + +@Entity +@Table(name="hidden_message") +@Cacheable(true) +@Cache(usage= CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class HiddenMessage extends Message{ + + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessageBoard.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessageBoard.java new file mode 100644 index 0000000000..4c0959c19b --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/HiddenMessageBoard.java @@ -0,0 +1,40 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Cacheable; +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ + +@Entity +@Table(name = "hidden_message_board") +@Cacheable(true) +@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class HiddenMessageBoard extends Board { + @OneToMany + private List<HiddenMessage> hiddenMessageList = new ArrayList<HiddenMessage>(); + + public List<HiddenMessage> getHiddenMessageList() { + return hiddenMessageList; + } + + public void setHiddenMessageList(List<HiddenMessage> hiddenMessageList) { + this.hiddenMessageList = hiddenMessageList; + } + + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Message.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Message.java new file mode 100644 index 0000000000..f7c4f195c8 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Message.java @@ -0,0 +1,86 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class Message extends LazyDeletableDomainObject implements Comparable<Message> { + + @Id + @GeneratedValue + private Long id; + + private String title; + + @Lob + private String message; + + @ManyToOne(optional=false) + private User user; + + public Long getId() { + return id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + @Override + public int compareTo(Message o) { + return getDateCreated().compareTo(o.getDateCreated()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Message other = (Message) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/MessageBoard.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/MessageBoard.java new file mode 100644 index 0000000000..599c1a0726 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/MessageBoard.java @@ -0,0 +1,40 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Cacheable; +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ + +@Entity +@Table(name="message_board") +@Cacheable(true) +@Cache(usage= CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class MessageBoard extends Board { + + + @OneToMany + private List<BoardMessage> boardMessageList = new ArrayList<BoardMessage>(); + + public List<BoardMessage> getBoardMessageList() { + return boardMessageList; + } + + public void setBoardMessageList(List<BoardMessage> boardMessageList) { + this.boardMessageList = boardMessageList; + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/PrivateMessage.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/PrivateMessage.java new file mode 100644 index 0000000000..004a6ed190 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/PrivateMessage.java @@ -0,0 +1,90 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class PrivateMessage extends LazyDeletableDomainObject implements Comparable<PrivateMessage>{ + + + @Id + @GeneratedValue + private Long id; + + private String title; + + @Lob + private String message; + + @ManyToOne(optional=false) + private User fromUser; + + @OneToMany + private List<Recipient> recipientList = new ArrayList<Recipient>(); + + public String getTitle() { + return title; + } + + + public void setTitle(String title) { + this.title = title; + } + + + public String getMessage() { + return message; + } + + + + public void setMessage(String message) { + this.message = message; + } + + + public User getFromUser() { + return fromUser; + } + + + public void setFromUser(User fromUser) { + this.fromUser = fromUser; + } + + + + public List<Recipient> getRecipientList() { + return recipientList; + } + + + public void setRecipientList(List<Recipient> recipientList) { + this.recipientList = recipientList; + } + + + @Override + public int compareTo(PrivateMessage o) { + return getDateCreated().compareTo(o.getDateCreated()); + } + + + @Override + public Long getId() { + return id; + } + +} diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Recipient.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Recipient.java new file mode 100644 index 0000000000..9382598f10 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Recipient.java @@ -0,0 +1,73 @@ +/** + * + */ +package se.su.dsv.scipro.data.dataobjects; + +import java.util.Date; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +/** + * @author Johan Aschan - aschan@dsv.su.se + * + */ +public class Recipient extends LazyDeletableDomainObject { + + @Id + @GeneratedValue + private Long id; + + @ManyToOne + private User user; + + private Date dateRead; + + @Override + public Long getId() { + return id; + } + + public Date getDateRead() { + return dateRead; + } + + public void setDateRead(Date dateRead) { + this.dateRead = dateRead; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Recipient other = (Recipient) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + +}