Interface CxSegmentService

  • All Known Implementing Classes:
    DefaultCxSegmentService

    public interface CxSegmentService
    Service for operations on cxSegment models
    • Method Detail

      • getSegment

        java.util.Optional<CxSegmentModel> getSegment​(java.lang.String code)
        Retrieves segment with given code
        Parameters:
        code - identifier of segment
        Returns:
        segment with given code of optional.empty if not found
      • getSegments

        SearchPageData<CxSegmentModel> getSegments​(java.util.Map<java.lang.String,​java.lang.String> filters,
                                                   SearchPageData<?> pagination)
        Retrieves segments
        Parameters:
        filters - parameters for filtering
        pagination - holder of pagination data and sort options
        Returns:
        SearchPageData with result list, used pagination and sort options
      • getUsersFromSegment

        java.util.Collection<UserModel> getUsersFromSegment​(CxSegmentModel segment)
        Retrieves all users related to this segment
        Parameters:
        segment - for which users should be retrieved
        Returns:
        Collection of users. Empty list if no users are related to this segment.
      • getSegmentsFromUser

        java.util.Collection<CxSegmentModel> getSegmentsFromUser​(UserModel user)
        Retrieves all segments of given user.
        Parameters:
        user - for which segments should be retrieved
        Returns:
        Collection of segments. Empty list if no segments are related to given user.
      • getUserToSegmentForUser

        java.util.Collection<CxUserToSegmentModel> getUserToSegmentForUser​(UserModel user)
        Retrieves all user to segments of given user.
        Parameters:
        user - for which segments should be retrieved
        Returns:
        Collection of segments. Empty list if no segments are related to given user.
      • getUserToSegmentForCalculation

        java.util.Collection<CxUserToSegmentModel> getUserToSegmentForCalculation​(UserModel user)
        Retrieves user to segments of given user. This method check also user consent.
        Method will return empty list if consent was not given.
        Parameters:
        user - User for which segments should be retrieved
        Returns:
        Collection of segments. Empty list if no segments are related to given user or user didn't give consent.
      • saveUserToSegments

        void saveUserToSegments​(java.util.Collection<CxUserToSegmentModel> userToSegments)
        Saves user to segment relations.
        Parameters:
        userToSegments - collection of CxUserToSegmentModel to be saved
      • removeUserToSegments

        void removeUserToSegments​(java.util.Collection<CxUserToSegmentModel> userToSegments)
        Removes provided user to segment relations from model.
        Parameters:
        userToSegments - collection of CxUserToSegmentModel to be removed
      • getUserToSegmentModel

        SearchPageData<CxUserToSegmentModel> getUserToSegmentModel​(UserModel user,
                                                                   CxSegmentModel segment,
                                                                   BaseSiteModel baseSite,
                                                                   SearchPageData<?> pagination)
        Retrieves relation object between user and segment. user and segment may be null. In such case this parameter is ignored and paginated collection of relations is returned.
        Parameters:
        user - defining one side of relation - may be null which means all users
        segment - defining other side of relation - may be null which means all segments
        baseSite - defining other side of relation - may be null which means all segments,users without assigned baseSite
        pagination - holder of pagination data and sort options
        Returns:
        collection of relation between given user and segment. Empty if no relation was found.
      • updateUserSegments

        void updateUserSegments​(UserModel user)
        Updates segments for given user.
        Parameters:
        user - to be updated
      • updateUserSegments

        void updateUserSegments​(UserModel user,
                                CxCalculationContext context)
        Updates segments for given user.
        Parameters:
        user - to be updated
        context - Context containing additional parameters for update e.g. providers which should be considered with this update process.
        Since:
        1811
      • getSegmentsForCodes

        java.util.Collection<CxSegmentModel> getSegmentsForCodes​(java.util.Collection<java.lang.String> codes)
        Retrieves all segments of given user.
        Parameters:
        codes - list of identifiers of segments
        Returns:
        Collection of segments. Empty list if no segments are related to given user.
      • updateSegments

        void updateSegments​(CxUpdateSegmentContext context)
        Update segments
        Parameters:
        context - - Context containing additional parameters for segment update e.g providers
        Since:
        1905