diff --git a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java index b15d5c4..b199a69 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java @@ -33,12 +33,12 @@ public class ArticleManagerBean implements IArticleManager, Serializable { @PersistenceContext private EntityManager em; - + @Resource private UserTransaction ut; - + public ArticleManagerBean() { - + } public Article addArticle(String title, String topic, String abstractText, String url_article, @@ -59,9 +59,9 @@ public class ArticleManagerBean implements IArticleManager, Serializable { a.setConference(conference); em.persist(a); ut.commit(); - + addRoleForConference(mainAuthorLogin,RoleType.AUTHOR,conferenceId); - + return a; } catch (Exception e) { try { @@ -111,7 +111,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { e.printStackTrace(); } } - + public Integer countArticle(Integer confId) { Query query = em.createQuery("from Article WHERE conference = ?"); Conference conf = em.find(Conference.class, confId); @@ -122,7 +122,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { public Article getArticle(Integer articleId) { return em.find(Article.class, articleId); } - + @SuppressWarnings("unchecked") public List
getArticles(Integer confId) throws ConferenceDoesntExistException { if(confId == null){ @@ -132,7 +132,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { if(conf == null){ throw new ConferenceDoesntExistException(confId); } - + Query query = em.createQuery("from Article a WHERE a.conference = ? ORDER BY a.title"); query.setParameter(1, conf); return query.getResultList(); @@ -145,7 +145,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { query.setParameter(1, author); return query.getResultList(); } - + @SuppressWarnings("unchecked") public List
getArticleOfAuthor(Integer confId, String authorId) { Conference conf = em.find(Conference.class, confId); @@ -155,7 +155,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { query.setParameter(2, author); return query.getResultList(); } - + @SuppressWarnings("unchecked") public List
getArticlesOfMember(Integer confId, String memberId){ Conference conf = em.find(Conference.class, confId); @@ -165,7 +165,26 @@ public class ArticleManagerBean implements IArticleManager, Serializable { query.setParameter(2, member); return query.getResultList(); } - + + public Conference getConferenceForArticle(Integer articleId) { + //try { + //ut.begin(); + Article article = em.find(Article.class, articleId); + Conference conf = article.getConference(); + //ut.commit(); + return conf; + /*} catch (Exception e) { + try { + ut.rollback(); + } catch (Exception e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } + return null;*/ + } + + public void assignArticleToPCMember(Integer articleId,String memberId){ try{ ut.begin(); @@ -175,7 +194,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { article.getPcMembers().add(PCMember); } ut.commit(); - + this.updateArticle(article); } catch (Exception e) { try { @@ -187,8 +206,8 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } //article.addPCMember(PCMember); } - - + + public void unassignArticleToPCMember(Integer articleId,String memberId){ try{ ut.begin(); @@ -205,14 +224,14 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } } } - - + + public List getArticlePCMembers(Integer articleId) { - Article article = this.getArticle(articleId); - List users = (List)article.getPcMembers(); - return users; + Article article = this.getArticle(articleId); + List users = (List)article.getPcMembers(); + return users; } - + public void delegateArticleToReferee(Integer articleId, String refereeId, String memberId){ try{ ut.begin(); @@ -241,10 +260,10 @@ public class ArticleManagerBean implements IArticleManager, Serializable { User PCMember = em.find(User.class, memberId); User referee = em.find(User.class, refereeId); Query query = em.createQuery( - "delete from Delegation where article=:article and referee=:referee and pcMember=:pcMember") - .setParameter("article", article) - .setParameter("referee", referee) - .setParameter("pcMember", PCMember); + "delete from Delegation where article=:article and referee=:referee and pcMember=:pcMember") + .setParameter("article", article) + .setParameter("referee", referee) + .setParameter("pcMember", PCMember); @SuppressWarnings("unused") int affectedRows = query.executeUpdate(); ut.commit(); @@ -256,15 +275,15 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } } } - - - + + + /* * gestion des preferences */ - + public Preference addPreference(Integer article_id, String userLogin,PreferenceType preferenceType){ try{ ut.begin(); @@ -287,8 +306,8 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } return null; } - - + + public void removePreference(Integer article_id, String userLogin){ try{ ut.begin(); @@ -304,7 +323,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { e.printStackTrace(); } } - + public void updatePreference(Preference preference){ try{ ut.begin(); @@ -313,13 +332,13 @@ public class ArticleManagerBean implements IArticleManager, Serializable { PreferencePK preferenceid = new PreferencePK(); preferenceid.article = em.find(Article.class, articleId); preferenceid.pcMember = em.find(User.class, login); - + Preference preference2 = em.find(Preference.class, preferenceid); - + em.remove(preference2); em.persist(preference); ut.commit(); - + } catch (Exception e) { try{ e.printStackTrace(); @@ -341,15 +360,15 @@ public class ArticleManagerBean implements IArticleManager, Serializable { return null; } } - + @SuppressWarnings("unchecked") public List getPreferencesForArticle(Integer article_id){ Query query = em.createQuery("from Preference p WHERE article_id = ?"); query.setParameter(1, article_id); return query.getResultList(); } - - + + public boolean existsArticle(Integer articleId) { return em.find(Article.class, articleId)!=null; } @@ -357,11 +376,11 @@ public class ArticleManagerBean implements IArticleManager, Serializable { public boolean existsPreference(Preference preference) { return em.find(Preference.class, preference.getId())!=null; } - + public boolean hasUserRoleForConference(String userLogin, RoleType roleType, Integer conferenceId){ Conference conference = em.find(Conference.class, conferenceId); User user = em.find(User.class, userLogin); - + RolePK rolePK = new RolePK(user,roleType,conference); return em.find(Role.class, rolePK)!=null; } @@ -390,7 +409,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { } } } - + public EntityManager getEntityManager() { return em; } diff --git a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java index 8aeee4e..8da3c26 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java @@ -7,6 +7,7 @@ import javax.ejb.Remote; import org.yacos.core.article.Article.State; import org.yacos.core.article.Preference.PreferenceType; +import org.yacos.core.conferences.Conference; import org.yacos.core.exceptions.ConferenceDoesntExistException; @@ -35,6 +36,11 @@ public interface IArticleManager { public List
getArticlesOfMember(Integer confId, String memberId); //public List
getAllArticles(); + /* + * return the conference which own the article + */ + public Conference getConferenceForArticle(Integer articleId); + //gestion des preferences public Preference addPreference(Integer articleId, String userLogin, PreferenceType preferenceType);