diff --git a/YACOSCore/ejbModule/org/yacos/core/article/Article.java b/YACOSCore/ejbModule/org/yacos/core/article/Article.java index b50cd6d..30213d7 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/Article.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/Article.java @@ -7,6 +7,8 @@ import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @@ -80,6 +82,7 @@ public class Article implements Serializable { public enum State { SUMMARY, FINAL , REJECTED, ACCEPTED }; + @Enumerated(EnumType.ORDINAL) private State state; @@ -161,10 +164,12 @@ public class Article implements Serializable { this.secondaryAuthors = new ArrayList(secondaryAuthors); } + @Enumerated(EnumType.ORDINAL) public State getState() { return state; } + @Enumerated(EnumType.ORDINAL) public void setState(State state) { this.state=state; } @@ -261,11 +266,11 @@ public class Article implements Serializable { return false; } - @OneToMany(targetEntity=Report.class, mappedBy="article", cascade=CascadeType.ALL) + @OneToMany(targetEntity=Report.class, mappedBy="article") public Collection getReport() { return report; } - @OneToMany(targetEntity=Report.class, mappedBy="article", cascade=CascadeType.ALL) + @OneToMany(targetEntity=Report.class, mappedBy="article") public void setReport(Collection report) { this.report = report; } diff --git a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java index 62ab492..6845236 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java @@ -6,15 +6,12 @@ import java.util.List; import javax.annotation.Resource; import javax.ejb.SessionContext; import javax.ejb.Stateless; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; import javax.ejb.TransactionManagement; import javax.ejb.TransactionManagementType; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.PersistenceContext; import javax.persistence.Query; - import org.yacos.core.article.Article.State; import org.yacos.core.conferences.Conference; import org.yacos.core.exceptions.ConferenceDoesntExistException; @@ -62,7 +59,6 @@ public class ArticleManagerBean implements IArticleManager, Serializable { public void updateArticle(Article article) { em.merge(article); em.flush(); - } public void removeArticle(Integer articleId) { diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/Conference.java b/YACOSCore/ejbModule/org/yacos/core/conferences/Conference.java index cf8b257..5cc2349 100644 --- a/YACOSCore/ejbModule/org/yacos/core/conferences/Conference.java +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/Conference.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; - import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -13,7 +12,6 @@ import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; - import org.yacos.core.article.Article; import org.yacos.core.evaluation.Criterion; import org.yacos.core.users.Role; diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceManagerBean.java index d4bf374..429c739 100644 --- a/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceManagerBean.java @@ -3,16 +3,16 @@ package org.yacos.core.conferences; import java.util.ArrayList; import java.util.Date; import java.util.List; - import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; - +import org.yacos.core.evaluation.Criterion; import org.yacos.core.exceptions.ConferenceDoesntExistException; import org.yacos.core.system.InvitationToken; import org.yacos.core.system.InvitationTokenPK; import org.yacos.core.users.Role; +import org.yacos.core.users.RolePK; import org.yacos.core.users.User; import org.yacos.core.users.Role.RoleType; @@ -164,4 +164,26 @@ public class ConferenceManagerBean implements IConferenceManager { return query.getResultList(); } + public void addCriterionToConference(Integer conferenceId, String name, + Integer minRating, Integer maxRating) { + Conference conf = getConference(conferenceId); + Criterion criterion = new Criterion(name,minRating,maxRating,conf); + em.persist(criterion); + } + + public void addPCMemberToConference(Integer conferenceId, String userLogin) { + Conference conf = getConference(conferenceId); + User member = em.find(User.class, userLogin); + + // First checks if the role already exists, if not create it + RolePK memberRolePK = new RolePK(member,RoleType.PCMEMBER,conf); + if(em.find(Role.class, memberRolePK)==null){ + Role memberRole = new Role(); + memberRole.setType(RoleType.PCMEMBER); + memberRole.setUser(member); + memberRole.setConference(conf); + em.persist(memberRole); + } + } + } diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceManager.java b/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceManager.java index d332d16..8006bf7 100644 --- a/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceManager.java +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceManager.java @@ -18,6 +18,8 @@ public interface IConferenceManager { // CRUD methods public Conference addConference(String titre, String descirption, String infoComplementray, Date dataAbstract, Date dateArticle, Date dateEvaluation, Date dateStart, Date dateEnd); public Conference getConference(Integer id); + public void addCriterionToConference(Integer conferenceId,String name,Integer minRating, Integer maxRating); + public void addPCMemberToConference(Integer conferenceId, String userLogin); public void remove(Integer conferenceId); public void update(Conference conf); diff --git a/YACOSCore/ejbModule/org/yacos/core/users/User.java b/YACOSCore/ejbModule/org/yacos/core/users/User.java index f52177b..ed02029 100644 --- a/YACOSCore/ejbModule/org/yacos/core/users/User.java +++ b/YACOSCore/ejbModule/org/yacos/core/users/User.java @@ -13,9 +13,6 @@ import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; -import org.yacos.core.article.Article; -import org.yacos.core.conferences.Conference; - /** * A unique User of the system. @@ -71,9 +68,6 @@ public class User implements Serializable{ @OneToMany(cascade=CascadeType.ALL, targetEntity=Role.class,mappedBy="user") private List roles; - @OneToMany(targetEntity=Article.class,mappedBy="mainAuthor") - private List
articles; - public User(String login, String password, String firstName, String lastName, String organization, String email) { this(); @@ -172,18 +166,6 @@ public class User implements Serializable{ public void setLogin(String login) { this.login = login; } - - - - @OneToMany(targetEntity=Article.class,mappedBy="mainAuthor") - public List
getArticles() { - return articles; - } - - @OneToMany(targetEntity=Article.class,mappedBy="mainAuthor") - public void setArticles(List
articles) { - this.articles = articles; - } public static String hashPassword(String password){ try {