Author: mfranklin
Date: Tue Aug 28 18:41:02 2012
New Revision: 1378263
URL: http://svn.apache.org/viewvc?rev=1378263&view=rev
Log:
Refactored person from group (RAVE-729)
Modified:
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/GroupImpl.java
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PersonImpl.java
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaGroup.java
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPerson.java
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/conversion/JpaGroupConverter.java
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPersonRepository.java
rave/branches/model-split/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/model/conversion/JpaGroupConverterTest.java
Modified:
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
(original)
+++
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
Tue Aug 28 18:41:02 2012
@@ -26,17 +26,17 @@ import java.util.List;
*/
@XmlTransient
public interface Group {
- Person getOwner();
+ String getOwnerId();
- void setOwner(Person owner);
+ void setOwnerId(String ownerId);
String getDescription();
void setDescription(String description);
- List<Person> getMembers();
+ List<String> getMemberIds();
- void setMembers(List<Person> members);
+ void setMemberIds(List<String> members);
String getTitle();
Modified:
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
(original)
+++
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
Tue Aug 28 18:41:02 2012
@@ -25,6 +25,10 @@ import java.util.List;
*/
@XmlTransient
public interface Person {
+ String getId();
+
+ void setId(String userId);
+
String getUsername();
void setUsername(String username);
Modified:
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/GroupImpl.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/GroupImpl.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/GroupImpl.java
(original)
+++
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/GroupImpl.java
Tue Aug 28 18:41:02 2012
@@ -25,18 +25,18 @@ import java.util.List;
public class GroupImpl implements Group {
protected String description;
- protected Person owner;
+ protected String owner;
protected String title;
- protected List<Person> members;
+ protected List<String> members;
@Override
- public Person getOwner() {
+ public String getOwnerId() {
return owner;
}
@Override
- public void setOwner(Person owner) {
- this.owner = owner;
+ public void setOwnerId(String ownerId) {
+ this.owner = ownerId;
}
@Override
@@ -50,12 +50,12 @@ public class GroupImpl implements Group
}
@Override
- public List<Person> getMembers() {
+ public List<String> getMemberIds() {
return members;
}
@Override
- public void setMembers(List<Person> members) {
+ public void setMemberIds(List<String> members) {
this.members = members;
}
Modified:
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PersonImpl.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PersonImpl.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PersonImpl.java
(original)
+++
rave/branches/model-split/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PersonImpl.java
Tue Aug 28 18:41:02 2012
@@ -24,6 +24,7 @@ import java.util.List;
public class PersonImpl implements Person {
+ protected String id;
protected String username;
protected String email;
protected String displayName;
@@ -39,6 +40,14 @@ public class PersonImpl implements Perso
protected List<Organization> organizations;
protected List<PersonProperty> properties;
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
public String getUsername() {
return username;
}
Modified:
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaGroup.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaGroup.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaGroup.java
(original)
+++
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaGroup.java
Tue Aug 28 18:41:02 2012
@@ -18,11 +18,10 @@
*/
package org.apache.rave.portal.model;
+import com.google.common.collect.Lists;
import org.apache.rave.persistence.BasicEntity;
import org.apache.rave.portal.model.conversion.ConvertingListProxyFactory;
import org.apache.rave.portal.model.conversion.JpaConverter;
-import org.apache.rave.portal.model.conversion.JpaGroupConverter;
-import org.apache.rave.portal.model.conversion.JpaPersonConverter;
import javax.persistence.*;
import java.util.ArrayList;
@@ -62,20 +61,21 @@ public class JpaGroup implements BasicEn
@Column(name = "description")
private String description;
- @ManyToOne
- @JoinColumn(name = "owner_id", referencedColumnName = "entity_id")
- private JpaPerson owner;
-
+ @Basic
+ @Column(name = "owner_id")
+ private String owner;
- @ManyToMany(fetch = FetchType.EAGER, mappedBy="groups")
- private List<JpaPerson> members;
+ @ElementCollection(fetch = FetchType.EAGER)
+ @CollectionTable(name = "group_members", joinColumns =
@JoinColumn(name="group_id"))
+ @Column(name= "person_Id")
+ private List<String> members;
- public JpaPerson getOwner() {
+ public String getOwnerId() {
return owner;
}
- public void setOwner(Person owner) {
- this.owner = JpaConverter.getInstance().convert(owner, Person.class);
+ public void setOwnerId(String ownerId) {
+ this.owner = ownerId;
}
public String getDescription() {
@@ -86,17 +86,17 @@ public class JpaGroup implements BasicEn
this.description = description;
}
- public List<Person> getMembers() {
- return ConvertingListProxyFactory.createProxyList(Person.class,
members);
+ public List<String> getMemberIds() {
+ return members;
}
- public void setMembers(List<Person> members) {
+ public void setMemberIds(List<String> members) {
if(this.members == null) {
- this.members = new ArrayList<JpaPerson>();
+ this.members = Lists.<String>newLinkedList();
}
- this.getMembers().clear();
+ this.getMemberIds().clear();
if(members != null) {
- this.getMembers().addAll(members);
+ this.getMemberIds().addAll(members);
}
}
Modified:
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPerson.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPerson.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPerson.java
(original)
+++
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPerson.java
Tue Aug 28 18:41:02 2012
@@ -52,16 +52,13 @@ import java.util.List;
@Access(AccessType.FIELD)
@NamedQueries(value = {
@NamedQuery(name = JpaPerson.FIND_BY_USERNAME, query = "select p from
JpaPerson p where p.username like :username"),
- @NamedQuery(name = JpaPerson.FIND_FRIENDS_BY_USERNAME, query = "select
a.followedby from JpaPersonAssociation a where a.follower.username = :username
and a.status = :status"),
- @NamedQuery(name = JpaPerson.FIND_BY_GROUP_MEMBERSHIP, query = "select m
from JpaGroup g join g.members m where exists " +
- "(select 'found' from g.members b where b.username = :username)
and m.username <> :username")
+ @NamedQuery(name = JpaPerson.FIND_FRIENDS_BY_USERNAME, query = "select
a.followedby from JpaPersonAssociation a where a.follower.username = :username
and a.status = :status")
})
@DiscriminatorValue("Person")
public class JpaPerson implements BasicEntity, Person {
public static final String FIND_BY_USERNAME = "Person.findByUsername";
public static final String FIND_FRIENDS_BY_USERNAME =
"Person.findFriendsByUsername";
- public static final String FIND_BY_GROUP_MEMBERSHIP =
"Person.findByGroupMembership";
public static final String USERNAME_PARAM = "username";
public static final String STATUS_PARAM = "status";
@@ -130,12 +127,6 @@ public class JpaPerson implements BasicE
@JoinColumn(name = "person_id", referencedColumnName = "entity_id")
protected List<JpaPersonProperty> properties;
- @ManyToMany(fetch = FetchType.LAZY)
- @JoinTable(name = "group_members",
- joinColumns = @JoinColumn(name = "person_id", referencedColumnName
= "entity_id"),
- inverseJoinColumns = @JoinColumn(name = "group_id",
referencedColumnName = "entity_id"))
- private List<JpaGroup> groups;
-
public Long getEntityId() {
return entityId;
}
@@ -145,6 +136,16 @@ public class JpaPerson implements BasicE
}
@Override
+ public String getId() {
+ return this.getEntityId() == null ? null :
this.getEntityId().toString();
+ }
+
+ @Override
+ public void setId(String userId) {
+ this.setEntityId(userId == null ? null : Long.parseLong(userId));
+ }
+
+ @Override
public String getUsername() {
return username;
}
@@ -302,20 +303,6 @@ public class JpaPerson implements BasicE
}
}
- public List<Group> getGroups() {
- return ConvertingListProxyFactory.createProxyList(Group.class, groups);
- }
-
- public void setGroups(List<JpaGroup> groups) {
- if(this.groups == null) {
- this.groups = new ArrayList<JpaGroup>();
- }
- this.getGroups().clear();
- if(groups != null) {
- this.getGroups().addAll(groups);
- }
- }
-
@Override
public boolean equals(Object o) {
if (this == o) return true;
Modified:
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/conversion/JpaGroupConverter.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/conversion/JpaGroupConverter.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/conversion/JpaGroupConverter.java
(original)
+++
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/conversion/JpaGroupConverter.java
Tue Aug 28 18:41:02 2012
@@ -62,7 +62,7 @@ public class JpaGroupConverter implement
private void updateProperties(Group source, JpaGroup converted) {
converted.setDescription(source.getDescription());
converted.setTitle(source.getTitle());
- converted.setOwner(source.getOwner());
- converted.setMembers(source.getMembers());
+ converted.setOwnerId(source.getOwnerId());
+ converted.setMemberIds(source.getMemberIds());
}
}
Modified:
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPersonRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPersonRepository.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPersonRepository.java
(original)
+++
rave/branches/model-split/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPersonRepository.java
Tue Aug 28 18:41:02 2012
@@ -19,33 +19,25 @@
package org.apache.rave.portal.repository.impl;
-import static org.apache.rave.persistence.jpa.util.JpaUtil.getSingleResult;
-import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-
+import com.google.common.collect.Lists;
import org.apache.rave.exception.NotSupportedException;
-import org.apache.rave.portal.model.FriendRequestStatus;
-import org.apache.rave.portal.model.JpaGroup;
-import org.apache.rave.portal.model.JpaPerson;
-import org.apache.rave.portal.model.JpaPersonAssociation;
-import org.apache.rave.portal.model.JpaUser;
-import org.apache.rave.portal.model.JpaWidget;
-import org.apache.rave.portal.model.Person;
-import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.model.*;
import org.apache.rave.portal.model.conversion.JpaPersonConverter;
import org.apache.rave.portal.repository.PersonRepository;
import org.apache.rave.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.apache.rave.persistence.jpa.util.JpaUtil.getSingleResult;
+import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate;
+
/**
*
*/
@@ -67,11 +59,18 @@ public class JpaPersonRepository impleme
@Override
public List<Person> findAllConnectedPeople(String username) {
- List<Person> connections = new ArrayList<Person>();
- connections.addAll(findFriends(username));
- TypedQuery<JpaPerson> members =
manager.createNamedQuery(JpaPerson.FIND_BY_GROUP_MEMBERSHIP, JpaPerson.class);
- members.setParameter(JpaPerson.USERNAME_PARAM, username);
-
CollectionUtils.addUniqueValues(CollectionUtils.<Person>toBaseTypedList(members.getResultList()),
connections);
+ Person person = findByUsername(username);
+ List<Person> connections = Lists.newLinkedList();
+ if (person != null) {
+ String personId = person.getId();
+ connections.addAll(findFriends(username));
+ TypedQuery<JpaGroup> members = manager.createQuery("SELECT g from
JpaGroup g where :userId member of g.members", JpaGroup.class);
+ members.setParameter("userId", personId);
+ for(JpaGroup groups : members.getResultList()) {
+ addPeopleByIds(groups, connections);
+ }
+ }
+ connections.remove(person);
return connections;
}
@@ -94,14 +93,14 @@ public class JpaPersonRepository impleme
}
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ @Override
public List<Person> findFriends(String username, String appId) {
- List<Person> friendsUsingWidget = new ArrayList<Person>();
+ List<Person> friendsUsingWidget = new ArrayList<Person>();
- TypedQuery query =
manager.createNamedQuery(JpaWidget.WIDGET_GET_BY_URL, JpaWidget.class);
- query.setParameter(JpaWidget.PARAM_URL, appId);
- final List<JpaWidget> resultList = query.getResultList();
+ TypedQuery query =
manager.createNamedQuery(JpaWidget.WIDGET_GET_BY_URL, JpaWidget.class);
+ query.setParameter(JpaWidget.PARAM_URL, appId);
+ final List<JpaWidget> resultList = query.getResultList();
Widget widget = getSingleResult(resultList);
query =
manager.createNamedQuery(JpaUser.USER_GET_ALL_FOR_ADDED_WIDGET, JpaUser.class);
@@ -109,37 +108,36 @@ public class JpaPersonRepository impleme
List<User> widgetUsers = query.getResultList();
List<Person> userFriends = findFriends(username);
- for(Person userFriend : userFriends) {
- for (User widgetUser : widgetUsers) {
-
if(userFriend.getUsername().equals(widgetUser.getUsername())) {
- friendsUsingWidget.add(userFriend);
- }
- }
- }
+ for (Person userFriend : userFriends) {
+ for (User widgetUser : widgetUsers) {
+ if (userFriend.getUsername().equals(widgetUser.getUsername()))
{
+ friendsUsingWidget.add(userFriend);
+ }
+ }
+ }
return friendsUsingWidget;
}
@Override
public List<Person> findFriendsWithFriend(String username, String
friendUsername) {
- List<Person> friendsWithFriend = new ArrayList<Person>();
- List<Person> userFriends = findFriends(username);
- List<Person> friendFriends = findFriends(friendUsername);
- for(Person userFriend : userFriends) {
- for (Person friendFriend : friendFriends) {
-
if(userFriend.getUsername().equals(friendFriend.getUsername())) {
- friendsWithFriend.add(userFriend);
- }
- }
- }
- return friendsWithFriend;
+ List<Person> friendsWithFriend = new ArrayList<Person>();
+ List<Person> userFriends = findFriends(username);
+ List<Person> friendFriends = findFriends(friendUsername);
+ for (Person userFriend : userFriends) {
+ for (Person friendFriend : friendFriends) {
+ if
(userFriend.getUsername().equals(friendFriend.getUsername())) {
+ friendsWithFriend.add(userFriend);
+ }
+ }
+ }
+ return friendsWithFriend;
}
@Override
public List<Person> findByGroup(String groupId) {
TypedQuery<JpaGroup> query =
manager.createNamedQuery(JpaGroup.FIND_BY_TITLE, JpaGroup.class);
query.setParameter(JpaGroup.GROUP_ID_PARAM, groupId);
- JpaGroup result = getSingleResult(query.getResultList());
- return result == null ? new ArrayList<Person>() :
CollectionUtils.<Person>toBaseTypedList(result.getMembers());
+ return getPeopleByIds(getSingleResult(query.getResultList()));
}
@Override
@@ -173,49 +171,46 @@ public class JpaPersonRepository impleme
manager.remove(item instanceof JpaPerson ? item :
findByUsername(item.getUsername()));
}
- @Override
- public boolean addFriend(String friendUsername, String username) {
- JpaPersonAssociation senderItem = new JpaPersonAssociation();
-
senderItem.setFollower(personConverter.convert(findByUsername(username)));
-
senderItem.setFollowedby(personConverter.convert(findByUsername(friendUsername)));
- senderItem.setStatus(FriendRequestStatus.SENT);
- senderItem = saveOrUpdate(senderItem.getEntityId(), manager,
senderItem);
-
- JpaPersonAssociation receiverItem = new JpaPersonAssociation();
-
receiverItem.setFollower(personConverter.convert(findByUsername(friendUsername)));
-
receiverItem.setFollowedby(personConverter.convert(findByUsername(username)));
- receiverItem.setStatus(FriendRequestStatus.RECEIVED);
- receiverItem = saveOrUpdate(receiverItem.getEntityId(),
manager, receiverItem);
-
- if(senderItem.getEntityId()!=null &&
receiverItem.getEntityId()!=null)
- return true;
- else
- return false;
- }
-
- @Override
- public void removeFriend(String friendUsername, String username) {
- TypedQuery<JpaPersonAssociation> query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
+ @Override
+ public boolean addFriend(String friendUsername, String username) {
+ JpaPersonAssociation senderItem = new JpaPersonAssociation();
+
senderItem.setFollower(personConverter.convert(findByUsername(username)));
+
senderItem.setFollowedby(personConverter.convert(findByUsername(friendUsername)));
+ senderItem.setStatus(FriendRequestStatus.SENT);
+ senderItem = saveOrUpdate(senderItem.getEntityId(), manager,
senderItem);
+
+ JpaPersonAssociation receiverItem = new JpaPersonAssociation();
+
receiverItem.setFollower(personConverter.convert(findByUsername(friendUsername)));
+
receiverItem.setFollowedby(personConverter.convert(findByUsername(username)));
+ receiverItem.setStatus(FriendRequestStatus.RECEIVED);
+ receiverItem = saveOrUpdate(receiverItem.getEntityId(), manager,
receiverItem);
+
+ return senderItem.getEntityId() != null && receiverItem.getEntityId()
!= null;
+ }
+
+ @Override
+ public void removeFriend(String friendUsername, String username) {
+ TypedQuery<JpaPersonAssociation> query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
query.setParameter(JpaPersonAssociation.FOLLOWER_USERNAME, username);
query.setParameter(JpaPersonAssociation.FOLLOWEDBY_USERNAME,
friendUsername);
JpaPersonAssociation item = getSingleResult(query.getResultList());
manager.remove(item);
- query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
+ query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
query.setParameter(JpaPersonAssociation.FOLLOWER_USERNAME,
friendUsername);
query.setParameter(JpaPersonAssociation.FOLLOWEDBY_USERNAME, username);
JpaPersonAssociation inverseItem =
getSingleResult(query.getResultList());
manager.remove(inverseItem);
- }
+ }
- @Override
- public HashMap<String, List<Person>> findFriendsAndRequests(String
username) {
- HashMap<String, List<Person>> friendsAndRequests = new
HashMap<String, List<Person>>();
- friendsAndRequests.put(FriendRequestStatus.ACCEPTED.toString(),
findFriends(username));
- friendsAndRequests.put(FriendRequestStatus.SENT.toString(),
findFriendRequestsSent(username));
- friendsAndRequests.put(FriendRequestStatus.RECEIVED.toString(),
findFriendRequestsReceived(username));
+ @Override
+ public HashMap<String, List<Person>> findFriendsAndRequests(String
username) {
+ HashMap<String, List<Person>> friendsAndRequests = new HashMap<String,
List<Person>>();
+ friendsAndRequests.put(FriendRequestStatus.ACCEPTED.toString(),
findFriends(username));
+ friendsAndRequests.put(FriendRequestStatus.SENT.toString(),
findFriendRequestsSent(username));
+ friendsAndRequests.put(FriendRequestStatus.RECEIVED.toString(),
findFriendRequestsReceived(username));
return friendsAndRequests;
- }
+ }
@Override
public List<Person> findFriendRequestsSent(String username) {
@@ -233,25 +228,39 @@ public class JpaPersonRepository impleme
return
CollectionUtils.<Person>toBaseTypedList(friends.getResultList());
}
- @Override
- public boolean acceptFriendRequest(String friendUsername, String
username) {
- TypedQuery<JpaPersonAssociation> query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
+ @Override
+ public boolean acceptFriendRequest(String friendUsername, String username)
{
+ TypedQuery<JpaPersonAssociation> query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
query.setParameter(JpaPersonAssociation.FOLLOWER_USERNAME, username);
query.setParameter(JpaPersonAssociation.FOLLOWEDBY_USERNAME,
friendUsername);
JpaPersonAssociation receiverItem =
getSingleResult(query.getResultList());
receiverItem.setStatus(FriendRequestStatus.ACCEPTED);
receiverItem = saveOrUpdate(receiverItem.getEntityId(), manager,
receiverItem);
- query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
+ query =
manager.createNamedQuery(JpaPersonAssociation.FIND_ASSOCIATION_ITEM_BY_USERNAMES,
JpaPersonAssociation.class);
query.setParameter(JpaPersonAssociation.FOLLOWER_USERNAME,
friendUsername);
query.setParameter(JpaPersonAssociation.FOLLOWEDBY_USERNAME, username);
JpaPersonAssociation senderItem =
getSingleResult(query.getResultList());
senderItem.setStatus(FriendRequestStatus.ACCEPTED);
senderItem = saveOrUpdate(senderItem.getEntityId(), manager,
senderItem);
- if(receiverItem.getEntityId()!=null &&
senderItem.getEntityId()!=null)
- return true;
- else
- return false;
- }
+ return receiverItem.getEntityId() != null && senderItem.getEntityId()
!= null;
+ }
+
+ private List<Person> getPeopleByIds(JpaGroup result) {
+ List<Person> members = Lists.newLinkedList();
+ addPeopleByIds(result, members);
+ return members;
+ }
+
+ private void addPeopleByIds(JpaGroup result, List<Person> members) {
+ if (result != null) {
+ for (String personId : result.getMemberIds()) {
+ Person person = get(personId);
+ if (!members.contains(person)) {
+ members.add(person);
+ }
+ }
+ }
+ }
}
Modified:
rave/branches/model-split/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/model/conversion/JpaGroupConverterTest.java
URL:
http://svn.apache.org/viewvc/rave/branches/model-split/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/model/conversion/JpaGroupConverterTest.java?rev=1378263&r1=1378262&r2=1378263&view=diff
==============================================================================
---
rave/branches/model-split/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/model/conversion/JpaGroupConverterTest.java
(original)
+++
rave/branches/model-split/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/model/conversion/JpaGroupConverterTest.java
Tue Aug 28 18:41:02 2012
@@ -49,24 +49,25 @@ public class JpaGroupConverterTest {
private Long entityId = Long.valueOf(400);
private String title = "GroupTitle";
private Person owner = null;
- private List<Person> members = null;
+ private List<String> members = null;
- private String ownerDisplayName = "Bob";
- private String ownerGivenName = "Smith";
+ private static final String ownerDisplayName = "Bob";
+ private static final String ownerGivenName = "Smith";
+ private static final String ownerId = "12345";
@Before
public void setup() {
- members = new ArrayList<Person>();
+ members = new ArrayList<String>();
owner = new PersonImpl();
owner.setDisplayName(ownerDisplayName);
owner.setGivenName(ownerGivenName);
- members.add(owner);
+ members.add(ownerId);
group = new GroupImpl();
group.setDescription(description);
group.setTitle(title);
- group.setOwner(owner);
- group.setMembers(members);
+ group.setOwnerId(ownerId);
+ group.setMemberIds(members);
}
@Test
@@ -89,8 +90,8 @@ public class JpaGroupConverterTest {
assertThat(jpaGroup, is(instanceOf(JpaGroup.class)));
assertEquals(description, jpaGroup.getDescription());
assertEquals(title, jpaGroup.getTitle());
- assertEquals(owner.getDisplayName(),
jpaGroup.getOwner().getDisplayName());
- assertEquals(members.size(), jpaGroup.getMembers().size());
+ assertEquals(ownerId, jpaGroup.getOwnerId());
+ assertEquals(members.size(), jpaGroup.getMemberIds().size());
}
}