in src/main/java/com/amazon/photosharing/facade/ShareFacade.java [246:280]
public List<Share> shareWithUsers(Album p_album, List<User> p_users) {
Album album = em().find(Album.class, p_album.getId());
if (album == null)
return null;
List<Share> result = new LinkedList<Share>();
for (User user : p_users) {
User u = em().find(User.class, user.getId());
if (u == null) //not with no-one
continue;
if (album.getUser().equals(u)) //not with self
continue;
//check if such a share already exists
_shareListRequest.setANDFilter(new Filter("album.id", p_album.getId()), new Filter("sharedWith", u));
List<Share> existing_shares_for_user = this.list(_shareListRequest).getResults();
if (existing_shares_for_user == null || existing_shares_for_user.size() == 0) {
beginTx();
Share s = new Share();
s.setSharedWith(u);
s.setAlbum(album);
s.setUser(album.getUser());
em().persist(s);
commitTx();
result.add(s);
}
}
return result;
}