Class SocialRelationLocalServiceImpl

Object
com.liferay.portal.kernel.service.BaseLocalServiceImpl
com.liferay.portlet.social.service.base.SocialRelationLocalServiceBaseImpl
com.liferay.portlet.social.service.impl.SocialRelationLocalServiceImpl
All Implemented Interfaces:
com.liferay.portal.kernel.module.framework.service.IdentifiableOSGiService, com.liferay.portal.kernel.service.BaseLocalService, com.liferay.portal.kernel.service.change.tracking.CTService<com.liferay.social.kernel.model.SocialRelation>, com.liferay.portal.kernel.service.PersistedModelLocalService, com.liferay.social.kernel.service.SocialRelationLocalService

public class SocialRelationLocalServiceImpl extends SocialRelationLocalServiceBaseImpl
The social relation local service. This service provides methods to handle unidirectional or bidirectional relations between users.

Relations between users can be unidirectional or bidirectional. The type of relation is determined by an integer constant. Some example relations are co-worker, friend, romantic partner, sibling, spouse, child, enemy, follower, parent, subordinate, supervisor.

The two users participating in the relation are designated as User1 and User2. In case of unidirectional relations User1 should always be the subject of the relation. You can use the following English sentence to find out which user to use as User1 and which to use as User2:

User1 is <relation> of User2 (e.g. User1 is parent of User2; User1 is supervisor of User2)

For bidirectional relations, the service automatically generates the inverse relation.

Author:
Brian Wing Shun Chan
  • Constructor Details

    • SocialRelationLocalServiceImpl

      public SocialRelationLocalServiceImpl()
  • Method Details

    • addRelation

      public com.liferay.social.kernel.model.SocialRelation addRelation(long userId1, long userId2, int type) throws com.liferay.portal.kernel.exception.PortalException
      Adds a social relation between the two users to the database.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      type - the type of the relation
      Returns:
      the social relation
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • deleteRelation

      public void deleteRelation(long relationId) throws com.liferay.portal.kernel.exception.PortalException
      Removes the relation (and its inverse in case of a bidirectional relation) from the database.
      Parameters:
      relationId - the primary key of the relation
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • deleteRelation

      public void deleteRelation(long userId1, long userId2, int type) throws com.liferay.portal.kernel.exception.PortalException
      Removes the matching relation (and its inverse in case of a bidirectional relation) from the database.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      type - the relation's type
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • deleteRelation

      public void deleteRelation(com.liferay.social.kernel.model.SocialRelation relation) throws com.liferay.portal.kernel.exception.PortalException
      Removes the relation (and its inverse in case of a bidirectional relation) from the database.
      Parameters:
      relation - the relation to be removed
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • deleteRelations

      public void deleteRelations(long userId)
      Removes all relations involving the user from the database.
      Parameters:
      userId - the primary key of the user
    • deleteRelations

      public void deleteRelations(long userId1, long userId2) throws com.liferay.portal.kernel.exception.PortalException
      Removes all relations between User1 and User2.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • getInverseRelations

      public List<com.liferay.social.kernel.model.SocialRelation> getInverseRelations(long userId, int type, int start, int end)
      Returns a range of all the inverse relations of the given type for which the user is User2 of the relation.

      Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil.ALL_POS will return the full result set.

      Parameters:
      userId - the primary key of the user
      type - the relation's type
      start - the lower bound of the range of results
      end - the upper bound of the range of results (not inclusive)
      Returns:
      the range of matching relations
    • getInverseRelationsCount

      public int getInverseRelationsCount(long userId, int type)
      Returns the number of inverse relations of the given type for which the user is User2 of the relation.
      Parameters:
      userId - the primary key of the user
      type - the relation's type
      Returns:
      the number of matching relations
    • getRelation

      public com.liferay.social.kernel.model.SocialRelation getRelation(long relationId) throws com.liferay.portal.kernel.exception.PortalException
      Returns the relation identified by its primary key.
      Parameters:
      relationId - the primary key of the relation
      Returns:
      Returns the relation
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • getRelation

      public com.liferay.social.kernel.model.SocialRelation getRelation(long userId1, long userId2, int type) throws com.liferay.portal.kernel.exception.PortalException
      Returns the relation of the given type between User1 and User2.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      type - the relation's type
      Returns:
      Returns the relation
      Throws:
      com.liferay.portal.kernel.exception.PortalException
    • getRelations

      public List<com.liferay.social.kernel.model.SocialRelation> getRelations(long userId, int type, int start, int end)
      Returns a range of all the relations of the given type where the user is the subject of the relation.

      Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil.ALL_POS will return the full result set.

      Parameters:
      userId - the primary key of the user
      type - the relation's type
      start - the lower bound of the range of results
      end - the upper bound of the range of results (not inclusive)
      Returns:
      the range of relations
    • getRelations

      public List<com.liferay.social.kernel.model.SocialRelation> getRelations(long userId1, long userId2, int start, int end)
      Returns a range of all the relations between User1 and User2.

      Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil.ALL_POS will return the full result set.

      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      start - the lower bound of the range of results
      end - the upper bound of the range of results (not inclusive)
      Returns:
      the range of relations
    • getRelationsCount

      public int getRelationsCount(long userId, int type)
      Returns the number of relations of the given type where the user is the subject of the relation.
      Parameters:
      userId - the primary key of the user
      type - the relation's type
      Returns:
      the number of relations
    • getRelationsCount

      public int getRelationsCount(long userId1, long userId2)
      Returns the number of relations between User1 and User2.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      Returns:
      the number of relations
    • hasRelation

      public boolean hasRelation(long userId1, long userId2, int type)
      Returns true if a relation of the given type exists where the user with primary key userId1 is User1 of the relation and the user with the primary key userId2 is User2 of the relation.
      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      type - the relation's type
      Returns:
      true if the relation exists; false otherwise
    • isRelatable

      public boolean isRelatable(long userId1, long userId2, int type)
      Returns true if the users can be in a relation of the given type where the user with primary key userId1 is User1 of the relation and the user with the primary key userId2 is User2 of the relation.

      This method returns false if User1 and User2 are the same, if either user is the default user, or if a matching relation already exists.

      Parameters:
      userId1 - the user that is the subject of the relation
      userId2 - the user at the other end of the relation
      type - the relation's type
      Returns:
      true if the two users can be in a new relation of the given type; false otherwise