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
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<Article> 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<Article> 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<Article> 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<User> getArticlePCMembers(Integer articleId) {
Article article = this.getArticle(articleId);
List<User> users = (List<User>)article.getPcMembers();
return users;
Article article = this.getArticle(articleId);
List<User> users = (List<User>)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<Preference> 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;
}

View File

@@ -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<Article> getArticlesOfMember(Integer confId, String memberId);
//public List<Article> 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);