java.lang.Object
com.evolveum.midpoint.model.impl.mining.algorithm.cluster.action.ClusteringUtils

public class ClusteringUtils extends Object
Utility class for performing clustering operations in the context of role analysis. Provides methods for creating, preparing, and processing data points used in clustering.
  • Constructor Details

    • ClusteringUtils

      public ClusteringUtils()
  • Method Details

    • getExistingRolesOidsSet

      @NotNull protected static @NotNull Set<String> getExistingRolesOidsSet(@NotNull @NotNull ModelService modelService, @NotNull @NotNull Task task, @NotNull @NotNull OperationResult result)
      Retrieves existing role OIDs from the model service.
      Parameters:
      modelService - The model service for accessing role data.
      task - The task associated with the operation.
      result - The operation result.
      Returns:
      A set of existing role OIDs.
    • getUserBasedRoleToUserMap

      @NotNull protected static @NotNull com.google.common.collect.ListMultimap<List<String>,String> getUserBasedRoleToUserMap(@NotNull @NotNull ModelService modelService, int minProperties, int maxProperties, @Nullable @Nullable SearchFilterType userQuery, @NotNull @NotNull Set<String> existingRolesOidsSet, @NotNull @NotNull Task task, @NotNull @NotNull OperationResult result)
      Creates a mapping of roles to users based on user properties.
      Parameters:
      modelService - The model service for accessing user data.
      minProperties - The minimum number of properties (RoleType) required.
      maxProperties - The maximum number of properties (RoleType) allowed.
      userQuery - The user query to filter user objects.
      existingRolesOidsSet - A set of existing role OIDs.
      task - The task associated with the operation.
      result - The operation result.
      Returns:
      A list multimap mapping roles to users.
    • getRoleBasedRoleToUserMap

      @NotNull protected static @NotNull com.google.common.collect.ListMultimap<String,String> getRoleBasedRoleToUserMap(@NotNull @NotNull ModelService modelService, @Nullable @Nullable SearchFilterType userQuery, @NotNull @NotNull Set<String> existingRolesOidsSet, @NotNull @NotNull Task task, @NotNull @NotNull OperationResult result)
      Creates a mapping of users to roles based on role properties.
      Parameters:
      modelService - The model service for accessing user data.
      userQuery - The user query to filter user objects.
      existingRolesOidsSet - A set of existing role OIDs.
      task - The task associated with the operation.
      result - The operation result.
      Returns:
      A list multimap mapping role to users.
    • getRoleBasedUserToRoleMap

      @NotNull protected static @NotNull com.google.common.collect.ListMultimap<List<String>,String> getRoleBasedUserToRoleMap(int minProperties, int maxProperties, @NotNull @NotNull com.google.common.collect.ListMultimap<String,String> roleToUserMap)
      Creates a mapping of users to roles based on (UserType) members.
      Parameters:
      minProperties - The minimum number of properties (UserType) required.
      maxProperties - The maximum number of properties (UserType) allowed.
      roleToUserMap - A list multimap mapping role to users.
      Returns:
      A list multimap mapping users to roles.
    • prepareDataPoints

      public static List<DataPoint> prepareDataPoints(@NotNull @NotNull com.google.common.collect.ListMultimap<List<String>,String> chunkMap)
      Prepares data points based on the provided chunk map.
      Parameters:
      chunkMap - A list multimap mapping roles to users.
      Returns:
      A list of DataPoint instances.