From e83589da387dcdd4cc5606bdfc0a917c66ab5a9b Mon Sep 17 00:00:00 2001 From: Frederic Debuire Date: Mon, 10 Mar 2008 15:44:13 +0000 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20conf=20STATEFUL=20(pas=20f?= =?UTF-8?q?ini)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/conferences/ConferenceSession.java | 234 ++++++++++++++++++ .../yacos/core/conferences/CriterionBean.java | 73 ++++++ .../core/conferences/IConferenceSession.java | 63 +++++ .../yacos/core/conferences/PersonBean.java | 50 ++++ 4 files changed, 420 insertions(+) create mode 100644 YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceSession.java create mode 100644 YACOSCore/ejbModule/org/yacos/core/conferences/CriterionBean.java create mode 100644 YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceSession.java create mode 100644 YACOSCore/ejbModule/org/yacos/core/conferences/PersonBean.java diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceSession.java b/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceSession.java new file mode 100644 index 0000000..ccd7c51 --- /dev/null +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/ConferenceSession.java @@ -0,0 +1,234 @@ +package org.yacos.core.conferences; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.ejb.Stateful; + + +@Stateful +public class ConferenceSession implements IConferenceSession, Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + // ########################################################### + + private static int nextPerson = 1; + + private List listPersonBean; + private List listPersonFiltered; + private List listPersonAdded; + private List listInvitations; + + public void fillUser(String text) { + if (text.equals("")) + listPersonFiltered = listPersonBean; + else { + listPersonFiltered = new ArrayList(); + for (PersonBean b : listPersonBean) { + if (b.getFirstName().toLowerCase().startsWith(text.toLowerCase()) || b.getLastName().toLowerCase().startsWith(text.toLowerCase())){ + listPersonFiltered.add(b); + } + } + } + } + + public void setPerson(PersonBean b) { + if (b.getId() == -1) { + b.setId(getNextPerson()); + } + + PersonBean truePerson = getTruePerson(b.getLogin()); + + listPersonAdded.remove(truePerson); + listPersonAdded.add(truePerson); + listPersonBean.remove(truePerson); + listPersonFiltered.remove(truePerson); + } + + public void deletePerson(PersonBean b) { + + PersonBean truePerson = getTruePerson(b.getLogin()); + + listPersonAdded.remove(truePerson); + listPersonBean.add(truePerson); + } + + public PersonBean getTruePerson(String login) { + for (PersonBean b : listPersonBean) { + if (b.getLogin().equals(login)){ + return b; + } + } + + for (PersonBean b : listPersonAdded) { + if (b.getLogin().equals(login)){ + return b; + } + } + + return null; + } + + private static synchronized int getNextPerson() + { + return nextPerson++; + } + + public List getUsersFiltered() { + return listPersonFiltered; + } + + public List getUsers() { + return listPersonBean; + } + + public List getUsersAdded() { + return listPersonAdded; + } + + public List getInvitation(){ + return listInvitations; + } + + public boolean addInvitation(String email){ + email = email.toLowerCase(); + Pattern emailPattern = Pattern.compile("^[a-z0-9._-]+@[a-z0-9._-]{2,}[.][a-z]{2,4}$"); // Regex + Matcher emailMatcher = emailPattern.matcher(email); + + if(!emailMatcher.matches()){ + return false; + } + + listInvitations.add(email); + + return true; + } + + public void removeInvitations(List emailList){ + for(String email : emailList){ + listInvitations.remove(email); + } + } + + + // ########################################################### + + + private static int nextId = 1; + + private Set criteria; + private Set criteriaAll; + + public Set getCriteriaAll() { + return criteriaAll; + } + + public Set getCriteriaAdded() { + return criteria; + } + + public CriterionBean getTrueCriteria(int id) { + for (CriterionBean cb : criteriaAll) { + if (cb.getId() == id){ + return cb; + } + } + + for (CriterionBean cb : criteria) { + if (cb.getId() == id){ + return cb; + } + } + + return null; + } + + public void setCriterionClick(CriterionBean c) { + if (c.getId() == -1) { + c.setId(getNextId()); + } + + criteria.remove(c); + criteria.add(c); + } + + public void setCriterion(CriterionBean c) { + if (c.getId() == -1) { + c.setId(getNextId()); + } + + CriterionBean trueCriteria = getTrueCriteria(c.getId()); + + criteria.remove(trueCriteria); + criteria.add(trueCriteria); + criteriaAll.remove(trueCriteria); + } + + public void deleteCriterion(CriterionBean c) { + + CriterionBean trueCriteria = getTrueCriteria(c.getId()); + + + + criteria.remove(trueCriteria); + criteriaAll.add(trueCriteria); + } + + private static synchronized int getNextId() + { + return nextId++; + } + + + public void setListPersonBean(List listPersonBean) { + this.listPersonBean = listPersonBean; + } + + public void setListPersonFiltered(List listPersonFiltered) { + this.listPersonFiltered = listPersonFiltered; + } + + public void setListPersonAdded(List listPersonAdded) { + this.listPersonAdded = listPersonAdded; + } + + public void setListInvitations(List listInvitations) { + this.listInvitations = listInvitations; + } + + public void setCriteria(Set criteria) { + this.criteria = criteria; + } + + public void setCriteriaAll(Set criteriaAll) { + this.criteriaAll = criteriaAll; + } + + // ########################################################### + + public int getNextId2() { + return nextId; + } + + public void setNextId2(int nextId2){ + nextId = nextId2; + } + + public void setNextPerson2(int nextPerson2){ + nextPerson = nextPerson2; + } + + + public int getNextPerson2(){ + return nextPerson; + } + +} diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/CriterionBean.java b/YACOSCore/ejbModule/org/yacos/core/conferences/CriterionBean.java new file mode 100644 index 0000000..8449d30 --- /dev/null +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/CriterionBean.java @@ -0,0 +1,73 @@ +package org.yacos.core.conferences; + +import java.io.Serializable; + +public class CriterionBean implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 6392466372370560230L; + private int id; + private String label; + private int min; + private int max; + + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + public String getLabel() { + return label; + } + public void setLabel(String label) { + this.label = label; + } + public int getMin() { + return min; + } + public void setMin(int min) { + this.min = min; + } + public int getMax() { + return max; + } + public void setMax(int max) { + this.max = max; + } + + public int hashCode() + { + return 5924 + id; + } + + public boolean equals(Object obj) + { + if (obj == null) + { + return false; + } + + if (obj == this) + { + return true; + } + + if (!this.getClass().equals(obj.getClass())) + { + return false; + } + + CriterionBean that = (CriterionBean) obj; + + if (this.id != that.id) + { + return false; + } + + return true; + } + +} diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceSession.java b/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceSession.java new file mode 100644 index 0000000..7feb6a4 --- /dev/null +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/IConferenceSession.java @@ -0,0 +1,63 @@ +package org.yacos.core.conferences; + +import java.util.List; +import java.util.Set; +import javax.ejb.Remote; + + +@Remote +public interface IConferenceSession { + + public void fillUser(String text); + + public void setPerson(PersonBean b); + + public void deletePerson(PersonBean b); + + public List getUsersFiltered(); + + public List getUsers(); + + public List getUsersAdded(); + + public List getInvitation(); + + public boolean addInvitation(String email); + + public void removeInvitations(List emailList); + + public Set getCriteriaAll(); + + public Set getCriteriaAdded(); + + public void setCriterionClick(CriterionBean c); + + public void setCriterion(CriterionBean c); + + public void deleteCriterion(CriterionBean c); + + + public void setListPersonBean(List listPersonBean); + + public void setListPersonFiltered(List listPersonFiltered) ; + + public void setListPersonAdded(List listPersonAdded) ; + + public void setListInvitations(List listInvitations) ; + + public void setCriteria(Set criteria) ; + + public void setCriteriaAll(Set criteriaAll) ; + + public int getNextId2(); + + public void setNextId2(int nextId2); + + public void setNextPerson2(int nextPerson2); + + + public int getNextPerson2(); + + + +} diff --git a/YACOSCore/ejbModule/org/yacos/core/conferences/PersonBean.java b/YACOSCore/ejbModule/org/yacos/core/conferences/PersonBean.java new file mode 100644 index 0000000..3764bb9 --- /dev/null +++ b/YACOSCore/ejbModule/org/yacos/core/conferences/PersonBean.java @@ -0,0 +1,50 @@ +package org.yacos.core.conferences; + +import java.io.Serializable; + +public class PersonBean implements Serializable { + + /** + * + */ + private static final long serialVersionUID = -1832356235818712606L; + private int id; + private String firstName; + private String lastName; + private String login; + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public PersonBean() {} + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + +}