Interface SegmentService

    • Method Detail

      • getSegmentMetadatas

        PartialList<Metadata> getSegmentMetadatas​(int offset,
                                                  int size,
                                                  String sortBy)
        Retrieves segment metadatas, ordered according to the specified sortBy String and and paged: only size of them are retrieved, starting with the offset-th one.
        Parameters:
        offset - zero or a positive integer specifying the position of the first element in the total ordered collection of matching elements
        size - a positive integer specifying how many matching elements should be retrieved or -1 if all of them should be retrieved
        sortBy - an optional (null if no sorting is required) String of comma (,) separated property names on which ordering should be performed, ordering elements according to the property order in the String, considering each in turn and moving on to the next one in case of equality of all preceding ones. Each property name is optionally followed by a column (:) and an order specifier: asc or desc.
        Returns:
        a PartialList of segment metadata
      • getSegmentMetadatas

        PartialList<Metadata> getSegmentMetadatas​(String scope,
                                                  int offset,
                                                  int size,
                                                  String sortBy)
        Retrieves segment metadatas for segments in the specified scope, ordered according to the specified sortBy String and and paged: only size of them are retrieved, starting with the offset-th one. TODO: remove?
        Parameters:
        scope - the scope for which we want to retrieve segment metadata
        offset - zero or a positive integer specifying the position of the first element in the total ordered collection of matching elements
        size - a positive integer specifying how many matching elements should be retrieved or -1 if all of them should be retrieved
        sortBy - an optional (null if no sorting is required) String of comma (,) separated property names on which ordering should be performed, ordering elements according to the property order in the String, considering each in turn and moving on to the next one in case of equality of all preceding ones. Each property name is optionally followed by a column (:) and an order specifier: asc or desc.
        Returns:
        a PartialList of segment metadata
      • getSegmentMetadatas

        PartialList<Metadata> getSegmentMetadatas​(Query query)
        Retrieves the metadata for segments matching the specified Query.
        Parameters:
        query - the query that the segments must match for their metadata to be retrieved
        Returns:
        a PartialList of segment metadata
      • getSegmentDefinition

        Segment getSegmentDefinition​(String segmentId)
        Retrieves the segment identified by the specified identifier.
        Parameters:
        segmentId - the identifier of the segment to be retrieved
        Returns:
        the segment identified by the specified identifier or null if no such segment exists
      • setSegmentDefinition

        void setSegmentDefinition​(Segment segment)
        Persists the specified segment in the context server.
        Parameters:
        segment - the segment to be persisted
      • removeSegmentDefinition

        DependentMetadata removeSegmentDefinition​(String segmentId,
                                                  boolean validate)
        Removes the segment definition identified by the specified identifier. We can specify that we want the operation to be validated beforehand so that we can know if any other segment that might use the segment we're trying to delete as a condition might be impacted. If validate is set to false, no validation is performed. If set to true, we will first check if any segment or scoring depends on the segment we're trying to delete and if so we will not delete the segment but rather return the list of the metadata of the impacted items. If no dependents are found, then we properly delete the segment.
        Parameters:
        segmentId - the identifier of the segment we want to delete
        validate - whether or not to perform validation
        Returns:
        a list of impacted segment metadata if any or an empty list if none were found or validation was skipped
      • getSegmentDependentMetadata

        DependentMetadata getSegmentDependentMetadata​(String segmentId)
        Retrieves the list of Segment and Scoring metadata depending on the specified segment. A segment or scoring is depending on a segment if it includes a profileSegmentCondition with a test on this segment.
        Parameters:
        segmentId - the segment identifier
        Returns:
        a list of Segment/Scoring Metadata depending on the specified segment
      • getMatchingIndividuals

        PartialList<Profile> getMatchingIndividuals​(String segmentID,
                                                    int offset,
                                                    int size,
                                                    String sortBy)
        Retrieves a list of profiles matching the conditions defined by the segment identified by the specified identifier, ordered according to the specified sortBy String and and paged: only size of them are retrieved, starting with the offset-th one.
        Parameters:
        segmentID - the identifier of the segment for which we want to retrieve matching profiles
        offset - zero or a positive integer specifying the position of the first element in the total ordered collection of matching elements
        size - a positive integer specifying how many matching elements should be retrieved or -1 if all of them should be retrieved
        sortBy - an optional (null if no sorting is required) String of comma (,) separated property names on which ordering should be performed, ordering elements according to the property order in the String, considering each in turn and moving on to the next one in case of equality of all preceding ones. Each property name is optionally followed by a column (:) and an order specifier: asc or desc.
        Returns:
        a PartialList of profiles matching the specified segment
      • getMatchingIndividualsCount

        long getMatchingIndividualsCount​(String segmentID)
        Retrieves the number of profiles matching the conditions defined by the segment identified by the specified identifier.
        Parameters:
        segmentID - the identifier of the segment for which we want to retrieve matching profiles
        Returns:
        the number of profiles matching the conditions defined by the segment identified by the specified identifier
      • isProfileInSegment

        Boolean isProfileInSegment​(Profile profile,
                                   String segmentId)
        Determines whether the specified profile is part of the segment identified by the specified identifier.
        Parameters:
        profile - the profile we want to check
        segmentId - the identifier of the segment against which we want to check the profile
        Returns:
        true if the specified profile is in the specified segment, false otherwise
      • getSegmentsAndScoresForProfile

        SegmentsAndScores getSegmentsAndScoresForProfile​(Profile profile)
        Retrieves the segments and scores for the specified profile.
        Parameters:
        profile - the profile for which we want to retrieve segments and scores
        Returns:
        a SegmentsAndScores instance encapsulating the segments and scores for the specified profile
      • getSegmentMetadatasForProfile

        List<Metadata> getSegmentMetadatasForProfile​(Profile profile)
        Retrieves the list of segment metadata for the segments the specified profile is a member of.
        Parameters:
        profile - the profile for which we want to retrieve the segment metadata
        Returns:
        the (possibly empty) list of segment metadata for the segments the specified profile is a member of
      • getScoringMetadatas

        PartialList<Metadata> getScoringMetadatas​(int offset,
                                                  int size,
                                                  String sortBy)
        Retrieves the set of all scoring metadata.
        Parameters:
        offset - the offset
        size - the size
        sortBy - sort by
        Returns:
        the set of all scoring metadata
      • getScoringMetadatas

        PartialList<Metadata> getScoringMetadatas​(Query query)
        Retrieves the set of scoring metadata for scorings matching the specified query.
        Parameters:
        query - the query the scorings must match for their metadata to be retrieved
        Returns:
        the set of scoring metadata for scorings matching the specified query
      • getScoringDefinition

        Scoring getScoringDefinition​(String scoringId)
        Retrieves the scoring identified by the specified identifier.
        Parameters:
        scoringId - the identifier of the scoring to be retrieved
        Returns:
        the scoring identified by the specified identifier or null if no such scoring exists
      • setScoringDefinition

        void setScoringDefinition​(Scoring scoring)
        Persists the specified scoring in the context server.
        Parameters:
        scoring - the scoring to be persisted
      • createScoringDefinition

        void createScoringDefinition​(String scope,
                                     String scoringId,
                                     String name,
                                     String description)
        Creates a scoring with the specified scope, identifier, name and description.
        Parameters:
        scope - the scope for the new scoring
        scoringId - the identifier for the new scoring
        name - the name of the new scoring
        description - the description of the new scoring
        See Also:
        Item's description for a discussion of scope
      • removeScoringDefinition

        DependentMetadata removeScoringDefinition​(String scoringId,
                                                  boolean validate)
        Removes the scoring definition identified by the specified identifier. We can specify that we want the operation to be validated beforehand so that we can know if any other segment that might use the segment we're trying to delete as a condition might be impacted. If validate is set to false, no validation is performed. If set to true, we will first check if any segment or scoring depends on the scoring we're trying to delete and if so we will not delete the scoring but rather return the list of the metadata of the impacted items. If no dependents are found, then we properly delete the scoring.
        Parameters:
        scoringId - the identifier of the scoring we want to delete
        validate - whether or not to perform validation
        Returns:
        a list of impacted items metadata if any or an empty list if none were found or validation was skipped
      • getScoringDependentMetadata

        DependentMetadata getScoringDependentMetadata​(String scoringId)
        Retrieves the list of Segment and Scoring metadata depending on the specified scoring. A segment or scoring is depending on a segment if it includes a scoringCondition with a test on this scoring.
        Parameters:
        scoringId - the segment identifier
        Returns:
        a list of Segment/Scoring Metadata depending on the specified scoring
      • getGeneratedPropertyKey

        String getGeneratedPropertyKey​(Condition condition,
                                       Condition parentCondition)
        Get generated property key for past event condition
        Parameters:
        condition - The event condition
        parentCondition - The past event condition
        Returns:
        a String representing the condition and parent condition uniquelly
      • recalculatePastEventConditions

        void recalculatePastEventConditions()
        This will recalculate the past event conditions from existing rules It will also recalculate date relative Segments and Scorings (when they contains date expression conditions for example) This operation can be heavy and take time, it will: - browse existing rules to extract the past event condition, - query the matching events for those conditions, - update the corresponding profiles - reevaluate segments/scorings linked to this rules to engaged/disengaged profiles after the occurrences have been updated - reevaluate segments/scoring that contains date expressions So use it carefully or execute this method in a dedicated thread.