diff --git a/YACOSCore/ejbModule/org/yacos/core/article/Article.java b/YACOSCore/ejbModule/org/yacos/core/article/Article.java index 519ad57..c444a97 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/Article.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/Article.java @@ -32,7 +32,11 @@ public class Article implements Serializable { private String title; private String topic; private String URL_article; - private String mainAuthor; + + //@ManyToOne(targetEntity=Conference.class) + //@JoinColumn(name="mainAuthor",nullable=false) + private User mainAuthor; + private ArrayList secondaryAuthors; /** @@ -77,9 +81,9 @@ public class Article implements Serializable { secondaryAuthors = new ArrayList(); } - public Article(int reference, String title, String topic, - String url_article, String mainAuthor, - List secondaryAuthor, int state) { + public Article(String title, String topic, + String url_article, User mainAuthor, + List secondaryAuthor, int state, Conference conference) { //this.id = reference; this.title = title; this.topic = topic; @@ -93,6 +97,7 @@ public class Article implements Serializable { this.state = state; referees = new ArrayList(); pcMembers = new ArrayList(); + this.conference = conference; } @Id @@ -129,11 +134,15 @@ public class Article implements Serializable { URL_article = url_article; } - public String getMainAuthor() { + @ManyToOne(targetEntity=User.class) + @JoinColumn(name="mainAuthor",nullable=false) + public User getMainAuthor() { return mainAuthor; } - public void setMainAuthor(String mainAuthor) { + @ManyToOne(targetEntity=User.class) + @JoinColumn(name="mainAuthor",nullable=false) + public void setMainAuthor(User mainAuthor) { this.mainAuthor = mainAuthor; } @@ -213,13 +222,13 @@ public class Article implements Serializable { } } } - @ManyToOne(targetEntity=Conference.class) + @JoinColumn(name="conference_id",nullable=false) public Conference getConference(){ return conference; } - @ManyToOne(targetEntity=Conference.class) + @JoinColumn(name="conference_id",nullable=false) public void setConference(Conference conference){ this.conference = conference; } diff --git a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java index 3fd830a..2d29ad2 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java @@ -7,8 +7,9 @@ import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.PersistenceContext; +import javax.persistence.Query; - +import org.yacos.core.conferences.Conference; import org.yacos.core.users.User; @Stateless @@ -26,18 +27,13 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } - public Article addArticle(int reference, String title, String topic,String url_article, - String mainAuthor, List secondaryAuthor, int state) { - Article a = new Article(reference, title, topic, url_article, mainAuthor, secondaryAuthor, state); + public Article addArticle(String title, String topic,String url_article, + User mainAuthor, List secondaryAuthor, int state,Conference conference) { + Article a = new Article(title, topic, url_article, mainAuthor, secondaryAuthor, state, conference); em.persist(a); return a; } - @SuppressWarnings("unchecked") - public List
getArticles() { - return em.createQuery("from Article a ORDER BY a.title").getResultList(); - } - public void updateArticle(Article article) { em.merge(article); @@ -52,6 +48,26 @@ public class ArticleManagerBean implements IArticleManager, Serializable { return em.find(Article.class, id); } + @SuppressWarnings("unchecked") + public List
getArticles(Conference conf) { + Query query = em.createQuery("from Article a WHERE conference = ? ORDER BY a.title"); + query.setParameter(1, conf); + return query.getResultList(); + } + + @SuppressWarnings("unchecked") + public List
getArticleOfAuthor(Conference conf, User author) { + Query query = em.createQuery("from Article a WHERE conference = ? and mainAuthor = ? ORDER BY a.title"); + query.setParameter(1, conf); + query.setParameter(2, author); + return query.getResultList(); + } + + public List
getArticlesOfMember(Conference conf, User member){ + //TODO + return null; + } + public void assignArticleToPCMember(Article article,User pcMember){ article.assignToPCMember(pcMember); em.flush(); diff --git a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java index 3250dd1..9f3f89a 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java @@ -1,27 +1,42 @@ package org.yacos.core.article; import java.util.List; + import javax.ejb.Remote; +import org.yacos.core.conferences.Conference; +import org.yacos.core.users.User; + @Remote public interface IArticleManager { public Article getArticle(Integer id); - public Article addArticle(int reference, String title, String topic,String url_article, - String mainAuthor, List secondaryAuthor, int state); + public Article addArticle(String title, String topic,String url_article, + User mainAuthor, List secondaryAuthor, int state,Conference conference); public void removeArticle(Article a); public void updateArticle(Article article); - public List
getArticles(); + + //liste d'articles + + //public List
getArticles(); + public List
getArticles(Conference conf); + public List
getArticleOfAuthor(Conference conf, User Author); + public List
getArticlesOfMember(Conference conf, User member); + + //FIXME a déplacer dans user?? public List getArticlePCMembers(Article article); public List getArticleReferees(Article article); + + public Preference getArticlePreferenceForUser(Integer article_id, String pcMemberLogin); public void setArticlePreferences(Article article, List preferences); public void addArticlePreference(Integer article_id, String userLogin, String preferenceValue); public void addOrUpdatePreference(Integer article_id, String userLogin, String preferenceValue); + + //FIXME interet ? public boolean existsArticle(Article article); public boolean existsPreference(Preference preference); - }