Interface CanonicalityChecker
- All Known Implementing Classes:
OptimizedCanonicalityChecker
,SimpleCanonicalityChecker
public interface CanonicalityChecker
-
Method Summary
Modifier and TypeMethodDescriptiongroupByCanonicalId
(Set<String> names, EntityDescriptor entityDescriptor) Returns names grouped by their canonical directory id.void
removeNonCanonicalEntities
(com.google.common.collect.Multimap<Long, String> allNames, EntityDescriptor entity) Given a username is duplicated in severaluser directories
under the sameapplication
.
-
Method Details
-
removeNonCanonicalEntities
void removeNonCanonicalEntities(com.google.common.collect.Multimap<Long, String> allNames, EntityDescriptor entity) Given a username is duplicated in several
user directories
under the sameapplication
.The user in the first directory, according to directory ordering is considered to be the canonical user for the given username, and the other users are shadowed and thus not to be returned from searches.
This method removes all entities which were found for a given directory, but were not canonical in it (they existed in a preceding directory, not necessarily in the allEntities map). The allEntities map will be mutated in the process. For example: Given the following directories and entities:- Directory 1 - Users A, B, C
- Directory 2 - Users C, D, E
- Directory 1 - Users A, B, C
- Directory 2 - User E
- Parameters:
allNames
- a directoryId to list of entities map containing the entities to check for canonicality.entity
- the EntityDescriptor used to look up the entities that will be determined as canonical
-
groupByCanonicalId
com.google.common.collect.SetMultimap<Long,String> groupByCanonicalId(Set<String> names, EntityDescriptor entityDescriptor) Returns names grouped by their canonical directory id. Case-sensitivity of the provided names is preserved. Names not found won't be returned.- Parameters:
names
- names to be groupedentityDescriptor
- entity to which the names are referring to- Returns:
- names grouped by their canonical directory id
-
getDirectories
- Returns:
- ordered list of directories for which the canonicality is computed
-