org.exoplatform.contact.service.impl
Class ContactServiceImpl

java.lang.Object
  extended by org.exoplatform.contact.service.impl.ContactServiceImpl
All Implemented Interfaces:
ContactService, ContactServiceLegacy

public class ContactServiceImpl
extends java.lang.Object
implements ContactService

Created by The eXo Platform SARL Author : Hung Nguyen Quang hung.nguyen@exoplatform.com Jul 11, 2007


Field Summary
 java.util.List<java.lang.String> nonPublicGroups
           
 boolean userCanSeeAllGroupAddressBooks
           
 
Constructor Summary
ContactServiceImpl(org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator nodeHierarchyCreator, org.exoplatform.services.jcr.RepositoryService rservice, org.exoplatform.container.xml.InitParams initParams)
           
 
Method Summary
 void addGroupToPersonalContact(java.lang.String userId, java.lang.String groupId)
          
 void addTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.util.List<java.lang.String> contactIds, java.util.List<Tag> tags)
           
 void addTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.util.List<java.lang.String> contactIds, java.lang.String tagId)
           
 void addTag(java.lang.String username, java.util.List<java.lang.String> contactIds, java.util.List<Tag> tags)
          this method allow add some tags for some contacts
 void addTag(java.lang.String username, java.util.List<java.lang.String> contactIds, java.lang.String tagId)
          this method allow add an exist tag to some contacts
 void addUserContactInAddressBook(java.lang.String userId, java.lang.String addressBookId)
          Add a user's own contact to an address book
 java.util.List<Contact> getAllContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username)
          
 java.util.List<java.lang.String> getAllEmailAddressByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String groupId)
          
 java.util.List<java.lang.String> getAllEmailByPublicGroup(java.lang.String username, java.lang.String groupId)
          
 java.util.List<java.lang.String> getAllEmailBySharedGroup(java.lang.String username, java.lang.String addressBookId)
          
 java.util.List<java.lang.String> getAllsPublicAddressBookIds(java.lang.String user)
          Use this method to get all public AddressBookIds corresponding to groups that the user has the permission to view (including groups in which the user has at least one membership).
 Contact getContact(java.lang.String username, java.lang.String contactId)
          Get a personal contact for a given owner
 ContactImportExport getContactImportExports(java.lang.String type)
          this method allow get a object used to import, export contacts
 ContactPageList getContactPageListByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, ContactFilter filter, java.lang.String type)
          
 ContactPageList getContactPageListByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String groupId)
          
 DataPageList getContactPageListByTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String tagName)
           
 DataPageList getContactPageListByTag(java.lang.String username, java.lang.String tagName)
          this method will get contacts by a specific tag
 java.util.List<java.lang.String> getEmailsByAddressBook(java.lang.String username, java.lang.String addressBookId)
          Get all email addresses of contacts in a personal address book
 AddressBook getGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String groupId)
          
 java.util.List<AddressBook> getGroups(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username)
           
 java.util.List<AddressBook> getGroups(java.lang.String username)
          get all personal address books of user
 java.lang.String[] getImportExportType()
          get type of import, export formats, for example : x-vcard
 AddressBook getPersonalAddressBook(java.lang.String username, java.lang.String addressBookId)
          Get a personal address book by ID
 Contact getPersonalContact(java.lang.String userId)
          
 java.util.List<Contact> getPersonalContacts(java.lang.String username)
          get all contacts in all personal address books that belong to current user
 ContactPageList getPersonalContactsByAddressBook(java.lang.String ownerId, java.lang.String addressBookId)
          get contact page list in a specific personal address book
 ContactPageList getPersonalContactsByFilter(java.lang.String username, ContactFilter filter)
          Get personal contacts by filter
 java.util.List<java.lang.String> getPublicAddressBookIdsOfUser(java.lang.String user)
          use this method to look all public AddressBookIds corresponding to groups in which the user has at least one membership.
 Contact getPublicContact(java.lang.String contactId)
          Get the public contact for a given user Id
 java.util.List<GroupContactData> getPublicContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String[] groupIds)
           
 ContactPageList getPublicContactsByAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String groupId)
           
 ContactPageList getPublicContactsByAddressBook(java.lang.String groupId)
          get contact page list of public address book specific by id of address book
 ContactPageList getPublicContactsByFilter(java.lang.String username, ContactFilter filter)
          Get public contacts by filter
 AddressBook getSharedAddressBook(java.lang.String username, java.lang.String addressBookId)
          Get a shared address book by ID for a given user
 java.util.List<SharedAddressBook> getSharedAddressBooks(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username)
          
 java.util.List<SharedAddressBook> getSharedAddressBooks(java.lang.String username)
          Get address books that are shared (by others) to a given user
 Contact getSharedContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String contactId)
           
 Contact getSharedContact(java.lang.String username, java.lang.String contactId)
          when a user is shared contact by another user then this user can get contact info base on id of shared contact
 Contact getSharedContactAddressBook(java.lang.String username, java.lang.String contactId)
          user can get a contact in a shared address book by id of contact
 DataPageList getSharedContacts(java.lang.String username)
          get all contacts shared by any user for current user
 ContactPageList getSharedContactsByAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, SharedAddressBook addressBook)
           
 ContactPageList getSharedContactsByAddressBook(java.lang.String username, SharedAddressBook addressBook)
          when a user has a shared address book from another user then shared user can view contacts in this shared address book
 ContactPageList getSharedContactsByFilter(java.lang.String username, ContactFilter filter)
          Get shared contacts by filter
 AddressBook getSharedGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String groupId)
          
 Tag getTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String tagName)
           
 Tag getTag(java.lang.String username, java.lang.String tagName)
          user can get a specific tag base on id of tag
 java.util.List<Tag> getTags(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username)
           
 java.util.List<Tag> getTags(java.lang.String username)
          this method will get all tags that user has been added
 void moveContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sysProvider, java.lang.String username, java.util.List<Contact> contacts, java.lang.String addressType)
           
 void moveContacts(java.lang.String username, java.util.List<Contact> contacts, java.lang.String addressType)
          move contacts to another address books
 void pasteAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String srcAddress, java.lang.String srcType, java.lang.String destAddress, java.lang.String destType)
           
 void pasteAddressBook(java.lang.String username, java.lang.String srcAddress, java.lang.String srcType, java.lang.String destAddress, java.lang.String destType)
          user can copy all contacts in a address book and paste them to another address book
 java.util.List<Contact> pasteContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String destAddress, java.lang.String destType, java.util.Map<java.lang.String,java.lang.String> contactsMap)
           
 java.util.List<Contact> pasteContacts(java.lang.String username, java.lang.String destAddress, java.lang.String destType, java.util.Map<java.lang.String,java.lang.String> contactsMap)
          this method allow add contacts list to a address book
 void registerNewUser(org.exoplatform.services.organization.User user, boolean isNew)
          save default address and default contact of new user
 AddressBook removeAddressBook(java.lang.String username, java.lang.String addressBookId)
          Remove a personal address book
 java.util.List<Contact> removeContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.util.List<java.lang.String> contactIds)
          
 java.util.List<Contact> removeContacts(java.lang.String username, java.util.List<java.lang.String> contactIds)
          Remove several personal contacts
 void removeContactTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.util.List<java.lang.String> contactIds, java.util.List<java.lang.String> tags)
           
 void removeContactTag(java.lang.String username, java.util.List<java.lang.String> contactIds, java.util.List<java.lang.String> tags)
          this method allow remove tags info in some contacts but don't remove tags
 AddressBook removeGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String groupId)
          
 void removeSharedContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String addressBookId, java.lang.String contactId)
           
 void removeSharedContact(java.lang.String username, java.lang.String addressBookId, java.lang.String contactId)
          remove contact in a address book which was shared for current user
 Tag removeTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String tagName)
           
 Tag removeTag(java.lang.String username, java.lang.String tagName)
          user can remove an exist tag base on tagId
 void removeUserShareAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String addressBookId, java.lang.String removedUser)
          
 void removeUserShareContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String contactId, java.lang.String removedUser)
           
 void removeUserShareContact(java.lang.String username, java.lang.String contactId, java.lang.String removedUser)
          remove view permission of user shared contact
 void saveAddress(java.lang.String username, java.lang.String emailAddress)
          save collected email addresses
 void saveAddressBook(java.lang.String username, AddressBook group, boolean isNew)
          Save a personal or shared address book.
 void saveContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, Contact contact, boolean isNew)
          
 void saveContact(java.lang.String username, Contact contact, boolean isNew)
          Save a contact to a personal address book
 void saveContactToSharedAddressBook(java.lang.String username, java.lang.String addressBookId, Contact contact, boolean isNew)
          if user has edit permission on a shared address book then this user can save a contact to this address book
 void saveGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, AddressBook group, boolean isNew)
          
 void saveSharedContact(java.lang.String username, Contact contact)
          user can edit a shared contact and save to database
 DataPageList searchContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, ContactFilter filter)
           
 DataPageList searchContact(java.lang.String username, ContactFilter filter)
          search all contacts with some properties equals ContactFilter properties.
 java.util.Map<java.lang.String,java.lang.String> searchEmails(org.exoplatform.services.jcr.ext.common.SessionProvider sessionProvider, java.lang.String username, ContactFilter filter)
          
 java.util.Map<java.lang.String,java.lang.String> searchEmails(java.lang.String username, ContactFilter filter)
          get id, name, email of contacts base on properties of ContactFilter
 void shareAddressBook(java.lang.String username, java.lang.String addressBookId, java.util.List<java.lang.String> receiverUsers)
          Share a personal address book with other users.
 void shareContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, java.lang.String[] contactIds, java.util.List<java.lang.String> receiveUsers)
           
 void shareContact(java.lang.String username, java.lang.String[] contactIds, java.util.List<java.lang.String> receiveUsers)
          share some contacts to another users
 void unshareAddressBook(java.lang.String owner, java.lang.String addressBookId, java.lang.String unsharedUser)
          Un-share an address book with another user
 void updateTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider, java.lang.String username, Tag tag)
           
 void updateTag(java.lang.String username, Tag tag)
          user can edit a tag and save to database
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

userCanSeeAllGroupAddressBooks

public boolean userCanSeeAllGroupAddressBooks

nonPublicGroups

public java.util.List<java.lang.String> nonPublicGroups
Constructor Detail

ContactServiceImpl

public ContactServiceImpl(org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator nodeHierarchyCreator,
                          org.exoplatform.services.jcr.RepositoryService rservice,
                          org.exoplatform.container.xml.InitParams initParams)
                   throws java.lang.Exception
Throws:
java.lang.Exception
Method Detail

getPublicAddressBookIdsOfUser

public java.util.List<java.lang.String> getPublicAddressBookIdsOfUser(java.lang.String user)
                                                               throws java.lang.Exception
use this method to look all public AddressBookIds corresponding to groups in which the user has at least one membership.

Specified by:
getPublicAddressBookIdsOfUser in interface ContactService
Parameters:
user - The username of the user
Returns:
A collection of the found AddressBookIds. The return collection cannot be null, but it can be empty if no AddressBookId is found.
Throws:
java.lang.Exception

getAllsPublicAddressBookIds

public java.util.List<java.lang.String> getAllsPublicAddressBookIds(java.lang.String user)
                                                             throws java.lang.Exception
Use this method to get all public AddressBookIds corresponding to groups that the user has the permission to view (including groups in which the user has at least one membership).

Specified by:
getAllsPublicAddressBookIds in interface ContactService
Parameters:
user - The username of the user
Returns:
Throws:
java.lang.Exception

getPersonalContacts

public java.util.List<Contact> getPersonalContacts(java.lang.String username)
                                            throws java.lang.Exception
get all contacts in all personal address books that belong to current user

Specified by:
getPersonalContacts in interface ContactService
Parameters:
username - current user ID
Returns:
list of contacts of the user
Throws:
java.lang.Exception

searchEmails

public java.util.Map<java.lang.String,java.lang.String> searchEmails(java.lang.String username,
                                                                     ContactFilter filter)
                                                              throws java.lang.Exception
get id, name, email of contacts base on properties of ContactFilter

Specified by:
searchEmails in interface ContactService
Parameters:
username - current user
filter - set some properties to filter contacts.
Returns:
a map contains id, name, email of contacts.
Throws:
java.lang.Exception

getPersonalContactsByAddressBook

public ContactPageList getPersonalContactsByAddressBook(java.lang.String ownerId,
                                                        java.lang.String addressBookId)
                                                 throws java.lang.Exception
get contact page list in a specific personal address book

Specified by:
getPersonalContactsByAddressBook in interface ContactService
Parameters:
ownerId - current user
addressBookId - id of address book to get
Returns:
a contact page list
Throws:
java.lang.Exception

getPersonalContactsByFilter

public ContactPageList getPersonalContactsByFilter(java.lang.String username,
                                                   ContactFilter filter)
                                            throws java.lang.Exception
Get personal contacts by filter

Specified by:
getPersonalContactsByFilter in interface ContactService
Parameters:
username - owner user ID
filter - used to restrict results
Returns:
List of contacts
Throws:
java.lang.Exception

getSharedContactsByFilter

public ContactPageList getSharedContactsByFilter(java.lang.String username,
                                                 ContactFilter filter)
                                          throws java.lang.Exception
Get shared contacts by filter

Specified by:
getSharedContactsByFilter in interface ContactService
Parameters:
username - owner user ID
filter - used to restrict results
Returns:
List of contacts
Throws:
java.lang.Exception

getPublicContactsByFilter

public ContactPageList getPublicContactsByFilter(java.lang.String username,
                                                 ContactFilter filter)
                                          throws java.lang.Exception
Get public contacts by filter

Specified by:
getPublicContactsByFilter in interface ContactService
Parameters:
username - owner user ID
filter - used to restrict results
Returns:
List of contacts
Throws:
java.lang.Exception

getEmailsByAddressBook

public java.util.List<java.lang.String> getEmailsByAddressBook(java.lang.String username,
                                                               java.lang.String addressBookId)
                                                        throws java.lang.Exception
Get all email addresses of contacts in a personal address book

Specified by:
getEmailsByAddressBook in interface ContactService
Parameters:
username - current user
addressBookId - id of address book
Returns:
email list in this address book
Throws:
java.lang.Exception

getContact

public Contact getContact(java.lang.String username,
                          java.lang.String contactId)
                   throws java.lang.Exception
Description copied from interface: ContactService
Get a personal contact for a given owner

Specified by:
getContact in interface ContactService
Parameters:
username - user id of the contact owner
contactId - id of contact to get
Returns:
Contact in the personal contacts of owner
Throws:
java.lang.Exception

saveContact

public void saveContact(java.lang.String username,
                        Contact contact,
                        boolean isNew)
                 throws java.lang.Exception
Save a contact to a personal address book

Specified by:
saveContact in interface ContactService
Parameters:
username - user ID of the owner of the contact
contact - contact to save
isNew - is true if save a new contact and false if save an edited contact
Throws:
java.lang.Exception

removeContacts

public java.util.List<Contact> removeContacts(java.lang.String username,
                                              java.util.List<java.lang.String> contactIds)
                                       throws java.lang.Exception
Remove several personal contacts

Specified by:
removeContacts in interface ContactService
Parameters:
username - user ID of the owner of the contacts
contactIds - IDs of contacts will be removed
Returns:
contacts list of deleted contacts
Throws:
java.lang.Exception

moveContacts

public void moveContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sysProvider,
                         java.lang.String username,
                         java.util.List<Contact> contacts,
                         java.lang.String addressType)
                  throws java.lang.Exception
Specified by:
moveContacts in interface ContactServiceLegacy
Throws:
java.lang.Exception

moveContacts

public void moveContacts(java.lang.String username,
                         java.util.List<Contact> contacts,
                         java.lang.String addressType)
                  throws java.lang.Exception
Description copied from interface: ContactService
move contacts to another address books

Specified by:
moveContacts in interface ContactService
Parameters:
username - current user
contacts - contacts will be moved
addressType - type of address book which contacts will be moved to . type is personal or shared.
Throws:
java.lang.Exception

addUserContactInAddressBook

public void addUserContactInAddressBook(java.lang.String userId,
                                        java.lang.String addressBookId)
                                 throws java.lang.Exception
Add a user's own contact to an address book

Specified by:
addUserContactInAddressBook in interface ContactService
Parameters:
userId - user ID for the user whose contact will be added to the address book
addressBookId - id of the address book where the contact is added
Throws:
java.lang.Exception

getGroups

public java.util.List<AddressBook> getGroups(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                             java.lang.String username)
                                      throws java.lang.Exception
Specified by:
getGroups in interface ContactServiceLegacy
Throws:
java.lang.Exception

getGroups

public java.util.List<AddressBook> getGroups(java.lang.String username)
                                      throws java.lang.Exception
Description copied from interface: ContactService
get all personal address books of user

Specified by:
getGroups in interface ContactService
Parameters:
username - user name of user get groups
Returns:
list all groups of user
Throws:
java.lang.Exception

getPersonalAddressBook

public AddressBook getPersonalAddressBook(java.lang.String username,
                                          java.lang.String addressBookId)
                                   throws java.lang.Exception
Get a personal address book by ID

Specified by:
getPersonalAddressBook in interface ContactService
Parameters:
username - user ID of the owning user
addressBookId - ID of the address book to retrieve.
Returns:
object ContactGroup for the given ID
Throws:
java.lang.Exception

saveAddressBook

public void saveAddressBook(java.lang.String username,
                            AddressBook group,
                            boolean isNew)
                     throws java.lang.Exception
Save a personal or shared address book.

Specified by:
saveAddressBook in interface ContactService
Parameters:
username - user ID of the owner
group - the address book to save
isNew - true if save a new address book and false to update an existing address book
Throws:
java.lang.Exception

removeAddressBook

public AddressBook removeAddressBook(java.lang.String username,
                                     java.lang.String addressBookId)
                              throws java.lang.Exception
Remove a personal address book

Specified by:
removeAddressBook in interface ContactService
Parameters:
username - user ID of address book owner
addressBookId - ID of the address book to remove
Returns:
the removed address book
Throws:
java.lang.Exception

removeUserShareContact

public void removeUserShareContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                   java.lang.String username,
                                   java.lang.String contactId,
                                   java.lang.String removedUser)
                            throws java.lang.Exception
Specified by:
removeUserShareContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeUserShareContact

public void removeUserShareContact(java.lang.String username,
                                   java.lang.String contactId,
                                   java.lang.String removedUser)
                            throws java.lang.Exception
Description copied from interface: ContactService
remove view permission of user shared contact

Specified by:
removeUserShareContact in interface ContactService
Parameters:
username - userId of user has contact
contactId - id of contact shared
removedUser - userId of user has permission view contact
Throws:
java.lang.Exception

shareContact

public void shareContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                         java.lang.String username,
                         java.lang.String[] contactIds,
                         java.util.List<java.lang.String> receiveUsers)
                  throws java.lang.Exception
Specified by:
shareContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

shareContact

public void shareContact(java.lang.String username,
                         java.lang.String[] contactIds,
                         java.util.List<java.lang.String> receiveUsers)
                  throws java.lang.Exception
Description copied from interface: ContactService
share some contacts to another users

Specified by:
shareContact in interface ContactService
Parameters:
username - userId of current user
contactIds - id of contacts will be shared
Throws:
java.lang.Exception

getSharedContacts

public DataPageList getSharedContacts(java.lang.String username)
                               throws java.lang.Exception
Description copied from interface: ContactService
get all contacts shared by any user for current user

Specified by:
getSharedContacts in interface ContactService
Parameters:
username - userId of current user
Returns:
DataPageList object contains contacts list
Throws:
java.lang.Exception

shareAddressBook

public void shareAddressBook(java.lang.String username,
                             java.lang.String addressBookId,
                             java.util.List<java.lang.String> receiverUsers)
                      throws java.lang.Exception
Description copied from interface: ContactService
Share a personal address book with other users.

Specified by:
shareAddressBook in interface ContactService
Parameters:
username - user ID of the owner of the address book to share
addressBookId - ID of the address book to share
receiverUsers - user IDs of users that will receive the shared address book
Throws:
java.lang.Exception

unshareAddressBook

public void unshareAddressBook(java.lang.String owner,
                               java.lang.String addressBookId,
                               java.lang.String unsharedUser)
                        throws java.lang.Exception
Un-share an address book with another user

Specified by:
unshareAddressBook in interface ContactService
Parameters:
owner - user ID of the address book owner
addressBookId - id of shared address book
unsharedUser - user ID of the user that looses sharing to this address book
Throws:
java.lang.Exception

getSharedAddressBooks

public java.util.List<SharedAddressBook> getSharedAddressBooks(java.lang.String username)
                                                        throws java.lang.Exception
Get address books that are shared (by others) to a given user

Specified by:
getSharedAddressBooks in interface ContactService
Parameters:
username - userId of current user
Returns:
SharedAddressBook list contains some information about address books like name, shared user
Throws:
java.lang.Exception

getSharedContactsByAddressBook

public ContactPageList getSharedContactsByAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                      java.lang.String username,
                                                      SharedAddressBook addressBook)
                                               throws java.lang.Exception
Specified by:
getSharedContactsByAddressBook in interface ContactServiceLegacy
Throws:
java.lang.Exception

getSharedContactsByAddressBook

public ContactPageList getSharedContactsByAddressBook(java.lang.String username,
                                                      SharedAddressBook addressBook)
                                               throws java.lang.Exception
Description copied from interface: ContactService
when a user has a shared address book from another user then shared user can view contacts in this shared address book

Specified by:
getSharedContactsByAddressBook in interface ContactService
Parameters:
username - userId of current user
addressBook - shared address book that user wants to get contacts
Returns:
a contact page list contains list of contacts in specific address book
Throws:
java.lang.Exception

removeSharedContact

public void removeSharedContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                java.lang.String username,
                                java.lang.String addressBookId,
                                java.lang.String contactId)
                         throws java.lang.Exception
Specified by:
removeSharedContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeSharedContact

public void removeSharedContact(java.lang.String username,
                                java.lang.String addressBookId,
                                java.lang.String contactId)
                         throws java.lang.Exception
Description copied from interface: ContactService
remove contact in a address book which was shared for current user

Specified by:
removeSharedContact in interface ContactService
Parameters:
username - current user
addressBookId - id of address book shared, this address books contains contact will be removed.
contactId - id of contact will be removed
Throws:
java.lang.Exception

saveContactToSharedAddressBook

public void saveContactToSharedAddressBook(java.lang.String username,
                                           java.lang.String addressBookId,
                                           Contact contact,
                                           boolean isNew)
                                    throws java.lang.Exception
Description copied from interface: ContactService
if user has edit permission on a shared address book then this user can save a contact to this address book

Specified by:
saveContactToSharedAddressBook in interface ContactService
Parameters:
username - userId of current user
addressBookId - id of address book user wants to save contact to
contact - saved contact to shared address book
isNew - true if save a new contact, false if save a edited contact
Throws:
java.lang.Exception

getSharedContactAddressBook

public Contact getSharedContactAddressBook(java.lang.String username,
                                           java.lang.String contactId)
                                    throws java.lang.Exception
Description copied from interface: ContactService
user can get a contact in a shared address book by id of contact

Specified by:
getSharedContactAddressBook in interface ContactService
Parameters:
username - userId of current user
contactId - id of contact that user wants to get
Returns:
contact object in a shared address book
Throws:
java.lang.Exception

saveSharedContact

public void saveSharedContact(java.lang.String username,
                              Contact contact)
                       throws java.lang.Exception
Description copied from interface: ContactService
user can edit a shared contact and save to database

Specified by:
saveSharedContact in interface ContactService
Parameters:
username - userId of current user
contact - shared contact will be saved
Throws:
java.lang.Exception

getSharedContact

public Contact getSharedContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                java.lang.String username,
                                java.lang.String contactId)
                         throws java.lang.Exception
Specified by:
getSharedContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

getSharedContact

public Contact getSharedContact(java.lang.String username,
                                java.lang.String contactId)
                         throws java.lang.Exception
Description copied from interface: ContactService
when a user is shared contact by another user then this user can get contact info base on id of shared contact

Specified by:
getSharedContact in interface ContactService
Parameters:
username - userId of current user
contactId - id of shared contact that user wants to get
Returns:
shared contact object
Throws:
java.lang.Exception

getPublicContact

public Contact getPublicContact(java.lang.String contactId)
                         throws java.lang.Exception
Description copied from interface: ContactService
Get the public contact for a given user Id

Specified by:
getPublicContact in interface ContactService
Parameters:
contactId - User ID whose corresponding contact will be retrieved
Returns:
The self contact for the given user
Throws:
java.lang.Exception

getPublicContacts

public java.util.List<GroupContactData> getPublicContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                          java.lang.String[] groupIds)
                                                   throws java.lang.Exception
Throws:
java.lang.Exception

getTag

public Tag getTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                  java.lang.String username,
                  java.lang.String tagName)
           throws java.lang.Exception
Specified by:
getTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

getTag

public Tag getTag(java.lang.String username,
                  java.lang.String tagName)
           throws java.lang.Exception
Description copied from interface: ContactService
user can get a specific tag base on id of tag

Specified by:
getTag in interface ContactService
Parameters:
username - userId of current user
tagName - id of tag that user wants to get
Returns:
tag object has id same input id
Throws:
java.lang.Exception

getTags

public java.util.List<Tag> getTags(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                   java.lang.String username)
                            throws java.lang.Exception
Specified by:
getTags in interface ContactServiceLegacy
Throws:
java.lang.Exception

getTags

public java.util.List<Tag> getTags(java.lang.String username)
                            throws java.lang.Exception
Description copied from interface: ContactService
this method will get all tags that user has been added

Specified by:
getTags in interface ContactService
Parameters:
username - userId of current user
Returns:
a tags list contains all tags belong this user
Throws:
java.lang.Exception

getContactPageListByTag

public DataPageList getContactPageListByTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                            java.lang.String username,
                                            java.lang.String tagName)
                                     throws java.lang.Exception
Specified by:
getContactPageListByTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

getContactPageListByTag

public DataPageList getContactPageListByTag(java.lang.String username,
                                            java.lang.String tagName)
                                     throws java.lang.Exception
Description copied from interface: ContactService
this method will get contacts by a specific tag

Specified by:
getContactPageListByTag in interface ContactService
Parameters:
username - userId of current user
tagName - is of tag that user wants to get contacts
Returns:
DataPageList object contains contacts list
Throws:
java.lang.Exception

addTag

public void addTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                   java.lang.String username,
                   java.util.List<java.lang.String> contactIds,
                   java.util.List<Tag> tags)
            throws java.lang.Exception
Specified by:
addTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

addTag

public void addTag(java.lang.String username,
                   java.util.List<java.lang.String> contactIds,
                   java.util.List<Tag> tags)
            throws java.lang.Exception
Description copied from interface: ContactService
this method allow add some tags for some contacts

Specified by:
addTag in interface ContactService
Parameters:
username - userId of current user
contactIds - id of contacts that user wants to add tags
tags - tags that user wants to add to contacts
Throws:
java.lang.Exception

addTag

public void addTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                   java.lang.String username,
                   java.util.List<java.lang.String> contactIds,
                   java.lang.String tagId)
            throws java.lang.Exception
Throws:
java.lang.Exception

addTag

public void addTag(java.lang.String username,
                   java.util.List<java.lang.String> contactIds,
                   java.lang.String tagId)
            throws java.lang.Exception
Description copied from interface: ContactService
this method allow add an exist tag to some contacts

Specified by:
addTag in interface ContactService
Parameters:
username - userId of current user
contactIds - is of contacts that user wants to add tag
tagId - id of tag will be added to contacts
Throws:
java.lang.Exception

removeTag

public Tag removeTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                     java.lang.String username,
                     java.lang.String tagName)
              throws java.lang.Exception
Specified by:
removeTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeTag

public Tag removeTag(java.lang.String username,
                     java.lang.String tagName)
              throws java.lang.Exception
Description copied from interface: ContactService
user can remove an exist tag base on tagId

Specified by:
removeTag in interface ContactService
Parameters:
username - userId of current user
tagName - id of tag that user wants to remove
Returns:
removed tag object
Throws:
java.lang.Exception

updateTag

public void updateTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                      java.lang.String username,
                      Tag tag)
               throws java.lang.Exception
Specified by:
updateTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

updateTag

public void updateTag(java.lang.String username,
                      Tag tag)
               throws java.lang.Exception
Description copied from interface: ContactService
user can edit a tag and save to database

Specified by:
updateTag in interface ContactService
Parameters:
username - userId of current user
tag - tag object will be saved
Throws:
java.lang.Exception

removeContactTag

public void removeContactTag(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                             java.lang.String username,
                             java.util.List<java.lang.String> contactIds,
                             java.util.List<java.lang.String> tags)
                      throws java.lang.Exception
Specified by:
removeContactTag in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeContactTag

public void removeContactTag(java.lang.String username,
                             java.util.List<java.lang.String> contactIds,
                             java.util.List<java.lang.String> tags)
                      throws java.lang.Exception
Description copied from interface: ContactService
this method allow remove tags info in some contacts but don't remove tags

Specified by:
removeContactTag in interface ContactService
Parameters:
username - userId of current user
contactIds - id of contacts that user wants to remove tags information
tags - list tags id will be removed in contacts
Throws:
java.lang.Exception

getPublicContactsByAddressBook

public ContactPageList getPublicContactsByAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                      java.lang.String groupId)
                                               throws java.lang.Exception
Specified by:
getPublicContactsByAddressBook in interface ContactServiceLegacy
Throws:
java.lang.Exception

getPublicContactsByAddressBook

public ContactPageList getPublicContactsByAddressBook(java.lang.String groupId)
                                               throws java.lang.Exception
Description copied from interface: ContactService
get contact page list of public address book specific by id of address book

Specified by:
getPublicContactsByAddressBook in interface ContactService
Parameters:
groupId - id of address book want to get contacts
Returns:
a ContactPageList contains contact nodes
Throws:
java.lang.Exception

pasteAddressBook

public void pasteAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                             java.lang.String username,
                             java.lang.String srcAddress,
                             java.lang.String srcType,
                             java.lang.String destAddress,
                             java.lang.String destType)
                      throws java.lang.Exception
Specified by:
pasteAddressBook in interface ContactServiceLegacy
Throws:
java.lang.Exception

pasteAddressBook

public void pasteAddressBook(java.lang.String username,
                             java.lang.String srcAddress,
                             java.lang.String srcType,
                             java.lang.String destAddress,
                             java.lang.String destType)
                      throws java.lang.Exception
Description copied from interface: ContactService
user can copy all contacts in a address book and paste them to another address book

Specified by:
pasteAddressBook in interface ContactService
Parameters:
username - userId of current user
srcAddress - id of copied address book
srcType - type of copied address book (it's private, shared, public)
destAddress - id of
Throws:
java.lang.Exception

pasteContacts

public java.util.List<Contact> pasteContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                             java.lang.String username,
                                             java.lang.String destAddress,
                                             java.lang.String destType,
                                             java.util.Map<java.lang.String,java.lang.String> contactsMap)
                                      throws java.lang.Exception
Specified by:
pasteContacts in interface ContactServiceLegacy
Throws:
java.lang.Exception

pasteContacts

public java.util.List<Contact> pasteContacts(java.lang.String username,
                                             java.lang.String destAddress,
                                             java.lang.String destType,
                                             java.util.Map<java.lang.String,java.lang.String> contactsMap)
                                      throws java.lang.Exception
Description copied from interface: ContactService
this method allow add contacts list to a address book

Specified by:
pasteContacts in interface ContactService
Parameters:
username - userId of current user
destAddress - id of address book that user wants to add contacts
destType - type of address book (it's private, shared, public)
Throws:
java.lang.Exception

getContactImportExports

public ContactImportExport getContactImportExports(java.lang.String type)
Description copied from interface: ContactService
this method allow get a object used to import, export contacts

Specified by:
getContactImportExports in interface ContactService
Parameters:
type - type of import, export format , for example : x-vcard
Returns:
a ContactImportExport object

getImportExportType

public java.lang.String[] getImportExportType()
                                       throws java.lang.Exception
Description copied from interface: ContactService
get type of import, export formats, for example : x-vcard

Specified by:
getImportExportType in interface ContactService
Returns:
an array of import, export type
Throws:
java.lang.Exception

searchContact

public DataPageList searchContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                  java.lang.String username,
                                  ContactFilter filter)
                           throws java.lang.Exception
Specified by:
searchContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

searchContact

public DataPageList searchContact(java.lang.String username,
                                  ContactFilter filter)
                           throws java.lang.Exception
Description copied from interface: ContactService
search all contacts with some properties equals ContactFilter properties.

Specified by:
searchContact in interface ContactService
Parameters:
username - current user
filter - setted some properties to filter contacts
Returns:
a data page list contains list of contacts
Throws:
java.lang.Exception

getSharedAddressBook

public AddressBook getSharedAddressBook(java.lang.String username,
                                        java.lang.String addressBookId)
                                 throws java.lang.Exception
Get a shared address book by ID for a given user

Specified by:
getSharedAddressBook in interface ContactService
Parameters:
username - user ID to whom the address book is shared
addressBookId - ID of address group to retrieve for user
Returns:
a shared address book object
Throws:
java.lang.Exception

getAllEmailBySharedGroup

public java.util.List<java.lang.String> getAllEmailBySharedGroup(java.lang.String username,
                                                                 java.lang.String addressBookId)
                                                          throws java.lang.Exception

Specified by:
getAllEmailBySharedGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

getAllEmailByPublicGroup

public java.util.List<java.lang.String> getAllEmailByPublicGroup(java.lang.String username,
                                                                 java.lang.String groupId)
                                                          throws java.lang.Exception

Specified by:
getAllEmailByPublicGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

registerNewUser

public void registerNewUser(org.exoplatform.services.organization.User user,
                            boolean isNew)
                     throws java.lang.Exception
Description copied from interface: ContactService
save default address and default contact of new user

Specified by:
registerNewUser in interface ContactService
Throws:
java.lang.Exception

getContactPageListByGroup

public ContactPageList getContactPageListByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                 java.lang.String username,
                                                 java.lang.String groupId)
                                          throws java.lang.Exception

Specified by:
getContactPageListByGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

saveGroup

public void saveGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                      java.lang.String username,
                      AddressBook group,
                      boolean isNew)
               throws java.lang.Exception

Specified by:
saveGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

getGroup

public AddressBook getGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                            java.lang.String username,
                            java.lang.String groupId)
                     throws java.lang.Exception

Specified by:
getGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeGroup

public AddressBook removeGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                               java.lang.String username,
                               java.lang.String groupId)
                        throws java.lang.Exception

Specified by:
removeGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

getSharedGroup

public AddressBook getSharedGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                  java.lang.String username,
                                  java.lang.String groupId)
                           throws java.lang.Exception

Specified by:
getSharedGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

getSharedAddressBooks

public java.util.List<SharedAddressBook> getSharedAddressBooks(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                               java.lang.String username)
                                                        throws java.lang.Exception

Specified by:
getSharedAddressBooks in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeUserShareAddressBook

public void removeUserShareAddressBook(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                       java.lang.String username,
                                       java.lang.String addressBookId,
                                       java.lang.String removedUser)
                                throws java.lang.Exception

Specified by:
removeUserShareAddressBook in interface ContactServiceLegacy
Throws:
java.lang.Exception

saveContact

public void saveContact(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                        java.lang.String username,
                        Contact contact,
                        boolean isNew)
                 throws java.lang.Exception

Specified by:
saveContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

getAllContacts

public java.util.List<Contact> getAllContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                              java.lang.String username)
                                       throws java.lang.Exception

Specified by:
getAllContacts in interface ContactServiceLegacy
Throws:
java.lang.Exception

getAllEmailAddressByGroup

public java.util.List<java.lang.String> getAllEmailAddressByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                                  java.lang.String username,
                                                                  java.lang.String groupId)
                                                           throws java.lang.Exception

Specified by:
getAllEmailAddressByGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

addGroupToPersonalContact

public void addGroupToPersonalContact(java.lang.String userId,
                                      java.lang.String groupId)
                               throws java.lang.Exception

Specified by:
addGroupToPersonalContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

getPersonalContact

public Contact getPersonalContact(java.lang.String userId)
                           throws java.lang.Exception

Specified by:
getPersonalContact in interface ContactServiceLegacy
Throws:
java.lang.Exception

searchEmails

public java.util.Map<java.lang.String,java.lang.String> searchEmails(org.exoplatform.services.jcr.ext.common.SessionProvider sessionProvider,
                                                                     java.lang.String username,
                                                                     ContactFilter filter)
                                                              throws java.lang.Exception

Specified by:
searchEmails in interface ContactServiceLegacy
Throws:
java.lang.Exception

getContactPageListByGroup

public ContactPageList getContactPageListByGroup(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                                 java.lang.String username,
                                                 ContactFilter filter,
                                                 java.lang.String type)
                                          throws java.lang.Exception

Specified by:
getContactPageListByGroup in interface ContactServiceLegacy
Throws:
java.lang.Exception

removeContacts

public java.util.List<Contact> removeContacts(org.exoplatform.services.jcr.ext.common.SessionProvider sProvider,
                                              java.lang.String username,
                                              java.util.List<java.lang.String> contactIds)
                                       throws java.lang.Exception

Specified by:
removeContacts in interface ContactServiceLegacy
Throws:
java.lang.Exception

saveAddress

public void saveAddress(java.lang.String username,
                        java.lang.String emailAddress)
                 throws java.lang.Exception
Description copied from interface: ContactService
save collected email addresses

Specified by:
saveAddress in interface ContactService
emailAddress - collected email
Throws:
java.lang.Exception


Copyright © 2010 eXo Platform SAS. All Rights Reserved.