Policy failures:

Code warning
- failed on resource ArticleManagerBean.java. Reason: The import javax.transaction.HeuristicMixedException is never used, line 15
- failed on resource ArticleManagerBean.java. Reason: The import javax.transaction.HeuristicRollbackException is never used, line 16
- failed on resource ArticleManagerBean.java. Reason: The import javax.transaction.NotSupportedException is never used, line 17
- failed on resource ArticleManagerBean.java. Reason: The import javax.transaction.RollbackException is never used, line 18
- failed on resource ArticleManagerBean.java. Reason: The import javax.transaction.SystemException is never used, line 19
... and more.  
Override reason:   
x
This commit is contained in:
Maxime Dagnicourt
2008-02-12 10:56:51 +00:00
parent 60c4bfc7e3
commit 8c3877461a
6 changed files with 214 additions and 8 deletions

View File

@@ -249,5 +249,11 @@ public class Article implements Serializable {
this.delegation = delegation;
}
//FIXME a tester
public boolean equals(Object obj){
if (this.getClass() == obj.getClass())
return this.id == ((Article)obj).getId();
else return false;
}
}

View File

@@ -162,7 +162,9 @@ public class ArticleManagerBean implements IArticleManager, Serializable {
ut.begin();
Article article = this.getArticle(articleId);
User PCMember = em.find(User.class, memberId);
article.getPcMembers().add(PCMember);
if(!article.getPcMembers().contains(PCMember)){
article.getPcMembers().add(PCMember);
}
ut.commit();
this.updateArticle(article);

View File

@@ -34,7 +34,15 @@ public interface IUserManager {
public List<User> getRefereesOFPCMemberForArticle(String PCMemberLogin, Integer articleId);
public List<User> getPCMemberForArticle(Integer articleId);
//speciality methodes
public Speciality getSpeciality(int SpecialityId);
public List<Speciality> getSpecialities();
public void addSpeciality(String name);
public void removeSpeciality(int specialityId);
public void addSpecialityToUser(int specialityId,String login);
public void removeSpecialityToUser(int specialityId, String login);
public List<Speciality> getSpecialitiesFromUser(String login);
public boolean existe(Speciality spe);
//roles methods
/**
* Create and adds a role to a user

View File

@@ -0,0 +1,78 @@
package org.yacos.core.users;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Speciality implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name;
@ManyToMany(targetEntity=User.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="userId"),
inverseJoinColumns=@JoinColumn(name="specialityId")
)
private List<User> users;
public Speciality(String name) {
super();
this.name = name;
}
public Speciality() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany(targetEntity=User.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="userId"),
inverseJoinColumns=@JoinColumn(name="specialityId")
)
public List<User> getUsers() {
return users;
}
@ManyToMany(targetEntity=User.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="userId"),
inverseJoinColumns=@JoinColumn(name="specialityId")
)
public void setUsers(List<User> users) {
this.users = users;
}
}

View File

@@ -9,11 +9,14 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
/**
* A unique User of the system.
* The user is registered globally in the application and would be able to get different roles for
@@ -61,6 +64,14 @@ public class User implements Serializable{
*/
private String email;
@ManyToMany(targetEntity=Speciality.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="specialityId"),
inverseJoinColumns=@JoinColumn(name="userId")
)
private List<Speciality> specialities;
/**
* Roles for this user
*/
@@ -68,6 +79,9 @@ public class User implements Serializable{
@OneToMany(cascade=CascadeType.ALL, targetEntity=Role.class,mappedBy="user")
private List<Role> roles;
/*@OneToMany(cascade=CascadeType.ALL, targetEntity=Delegation.class, mappedBy="user")
private List<Delegation> delegation;
*/
public User(String login, String password, String firstName,
String lastName, String organization, String email) {
this();
@@ -125,6 +139,15 @@ public class User implements Serializable{
this.email = email;
}
public void addSpeciality(Speciality spe){
this.specialities.add(spe);
}
public void removeSpeciality(Speciality spe){
this.specialities.remove(spe);
}
public void addRole(Role role){
roles.add(role);
}
@@ -190,4 +213,36 @@ public class User implements Serializable{
}
return null;
}
@ManyToMany(targetEntity=Speciality.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="specialityId"),
inverseJoinColumns=@JoinColumn(name="userId")
)
public List<Speciality> getSpecialities() {
return specialities;
}
@ManyToMany(targetEntity=Speciality.class)
@JoinTable(
name="speciality_user_map",
joinColumns=@JoinColumn(name="specialityId"),
inverseJoinColumns=@JoinColumn(name="userId")
)
public void setSpecialities(List<Speciality> specialities) {
this.specialities = specialities;
}
/*
@OneToMany(cascade=CascadeType.ALL, targetEntity=Delegation.class, mappedBy="user")
public List<Delegation> getDelegation() {
return delegation;
}
@OneToMany(cascade=CascadeType.ALL, targetEntity=Delegation.class, mappedBy="user")
public void setDelegation(List<Delegation> delegation) {
this.delegation = delegation;
}
*/
}

View File

@@ -7,12 +7,13 @@ package org.yacos.core.users;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.yacos.core.article.Article;
import org.yacos.core.conferences.Conference;
import org.yacos.core.exceptions.PKAlreadyUsedException;
import org.yacos.core.exceptions.UserEMailAlreadyExistsException;
@@ -114,7 +115,6 @@ public class UserManagerBean implements IUserManager{
@SuppressWarnings("unchecked")
public List<User> getPCMemberForArticle(Integer articleId){
//select p from Paper p join p.referees r where r.login=:aLogin and p.conference=:aConf
Query query = em.createQuery("select a.pcMembers from Article a where a.id=?");
query.setParameter(1, articleId);
return query.getResultList();
@@ -128,6 +128,63 @@ public class UserManagerBean implements IUserManager{
return query.getResultList();
}
public Speciality getSpeciality(int SpecialityId){
Speciality spe = em.find(Speciality.class, SpecialityId);
return spe;
}
@SuppressWarnings("unchecked")
public List<Speciality> getSpecialities(){
Query query = em.createQuery("from Speciality");
return query.getResultList();
}
public void addSpeciality(String name){
Speciality spe = new Speciality(name);
if(!existe(spe)){
em.persist(spe);
em.flush();
}
}
public void removeSpeciality(int specialityId){
Speciality spe = em.find(Speciality.class, specialityId);
em.remove(spe);
em.flush();
}
public void addSpecialityToUser(int specialityId,String login){
User user = this.getUser(login);
Speciality spe = this.getSpeciality(specialityId);
user.addSpeciality(spe);
this.UpdateUser(user);
}
public void removeSpecialityToUser(int specialityId, String login){
Query query = em.createQuery("delete from User u, u.specialities s WHERE s = ? and u = ?");
query.setParameter(1, this.getSpeciality(specialityId));
query.setParameter(2, this.getUser(login));
query.executeUpdate();
}
@SuppressWarnings("unchecked")
public List<Speciality> getSpecialitiesFromUser(String login){
Query query = em.createQuery("select user.specialities from User user WHERE user.login=?");
query.setParameter(1, login);
return query.getResultList();
}
public boolean existe(Speciality spe){
List<Speciality> list = this.getSpecialities();
for (Speciality spe2 : list) {
if(spe2.getName().equalsIgnoreCase(spe.getName())){
return true;
}
}
return false;
}
/*
*
* methodes de Roles