Ajout d'une méthode pour avoir la conférence à laquelle appartient un article

This commit is contained in:
Frederic Debuire
2008-02-19 22:23:39 +00:00
parent e9e3a6f992
commit 815328104b
2 changed files with 65 additions and 40 deletions

View File

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

View File

@@ -7,6 +7,7 @@ import javax.ejb.Remote;
import org.yacos.core.article.Article.State; import org.yacos.core.article.Article.State;
import org.yacos.core.article.Preference.PreferenceType; import org.yacos.core.article.Preference.PreferenceType;
import org.yacos.core.conferences.Conference;
import org.yacos.core.exceptions.ConferenceDoesntExistException; import org.yacos.core.exceptions.ConferenceDoesntExistException;
@@ -35,6 +36,11 @@ public interface IArticleManager {
public List<Article> getArticlesOfMember(Integer confId, String memberId); public List<Article> getArticlesOfMember(Integer confId, String memberId);
//public List<Article> getAllArticles(); //public List<Article> getAllArticles();
/*
* return the conference which own the article
*/
public Conference getConferenceForArticle(Integer articleId);
//gestion des preferences //gestion des preferences
public Preference addPreference(Integer articleId, String userLogin, PreferenceType preferenceType); public Preference addPreference(Integer articleId, String userLogin, PreferenceType preferenceType);