Class 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
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
-
Field Summary
Fields inherited from class com.liferay.portlet.social.service.base.SocialRelationLocalServiceBaseImpl
counterLocalService, socialRelationLocalService, socialRelationPersistence
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncom.liferay.social.kernel.model.SocialRelation
addRelation
(long userId1, long userId2, int type) Adds a social relation between the two users to the database.void
deleteRelation
(long relationId) Removes the relation (and its inverse in case of a bidirectional relation) from the database.void
deleteRelation
(long userId1, long userId2, int type) Removes the matching relation (and its inverse in case of a bidirectional relation) from the database.void
deleteRelation
(com.liferay.social.kernel.model.SocialRelation relation) Removes the relation (and its inverse in case of a bidirectional relation) from the database.void
deleteRelations
(long userId) Removes all relations involving the user from the database.void
deleteRelations
(long userId1, long userId2) Removes all relations between User1 and User2.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.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.com.liferay.social.kernel.model.SocialRelation
getRelation
(long relationId) Returns the relation identified by its primary key.com.liferay.social.kernel.model.SocialRelation
getRelation
(long userId1, long userId2, int type) Returns the relation of the given type between User1 and User2.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.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.int
getRelationsCount
(long userId, int type) Returns the number of relations of the given type where the user is the subject of the relation.int
getRelationsCount
(long userId1, long userId2) Returns the number of relations between User1 and User2.boolean
hasRelation
(long userId1, long userId2, int type) Returnstrue
if a relation of the given type exists where the user with primary keyuserId1
is User1 of the relation and the user with the primary keyuserId2
is User2 of the relation.boolean
isRelatable
(long userId1, long userId2, int type) Returnstrue
if the users can be in a relation of the given type where the user with primary keyuserId1
is User1 of the relation and the user with the primary keyuserId2
is User2 of the relation.Methods inherited from class com.liferay.portlet.social.service.base.SocialRelationLocalServiceBaseImpl
addSocialRelation, afterPropertiesSet, createPersistedModel, createSocialRelation, deletePersistedModel, deleteSocialRelation, deleteSocialRelation, destroy, dslQuery, dslQueryCount, dynamicQuery, dynamicQuery, dynamicQuery, dynamicQuery, dynamicQueryCount, dynamicQueryCount, fetchSocialRelation, fetchSocialRelationByUuidAndCompanyId, getActionableDynamicQuery, getBasePersistence, getCounterLocalService, getCTPersistence, getIndexableActionableDynamicQuery, getModelClass, getModelClassName, getOSGiServiceIdentifier, getPersistedModel, getSocialRelation, getSocialRelationByUuidAndCompanyId, getSocialRelationLocalService, getSocialRelationPersistence, getSocialRelations, getSocialRelationsCount, initActionableDynamicQuery, runSQL, setCounterLocalService, setSocialRelationLocalService, setSocialRelationPersistence, updateSocialRelation, updateWithUnsafeFunction
Methods inherited from class com.liferay.portal.kernel.service.BaseLocalServiceImpl
getClassLoader, getLocalizationMap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.liferay.portal.kernel.service.PersistedModelLocalService
fetchPersistedModel
-
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 relationuserId2
- the user at the other end of the relationtype
- 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 relationuserId2
- the user at the other end of the relationtype
- 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 relationuserId2
- 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
andend
are not primary keys, they are indexes in the result set. Thus,0
refers to the first result in the set. Setting bothstart
andend
toQueryUtil.ALL_POS
will return the full result set.- Parameters:
userId
- the primary key of the usertype
- the relation's typestart
- the lower bound of the range of resultsend
- 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 usertype
- 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 relationuserId2
- the user at the other end of the relationtype
- 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
andend
are not primary keys, they are indexes in the result set. Thus,0
refers to the first result in the set. Setting bothstart
andend
toQueryUtil.ALL_POS
will return the full result set.- Parameters:
userId
- the primary key of the usertype
- the relation's typestart
- the lower bound of the range of resultsend
- 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
andend
are not primary keys, they are indexes in the result set. Thus,0
refers to the first result in the set. Setting bothstart
andend
toQueryUtil.ALL_POS
will return the full result set.- Parameters:
userId1
- the user that is the subject of the relationuserId2
- the user at the other end of the relationstart
- the lower bound of the range of resultsend
- 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 usertype
- 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 relationuserId2
- the user at the other end of the relation- Returns:
- the number of relations
-
hasRelation
public boolean hasRelation(long userId1, long userId2, int type) Returnstrue
if a relation of the given type exists where the user with primary keyuserId1
is User1 of the relation and the user with the primary keyuserId2
is User2 of the relation.- Parameters:
userId1
- the user that is the subject of the relationuserId2
- the user at the other end of the relationtype
- the relation's type- Returns:
true
if the relation exists;false
otherwise
-
isRelatable
public boolean isRelatable(long userId1, long userId2, int type) Returnstrue
if the users can be in a relation of the given type where the user with primary keyuserId1
is User1 of the relation and the user with the primary keyuserId2
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 relationuserId2
- the user at the other end of the relationtype
- the relation's type- Returns:
true
if the two users can be in a new relation of the given type;false
otherwise
-