org.jasig.services.persondir.support.merger
Interface IAttributeMerger

All Known Implementing Classes:
BaseAdditiveAttributeMerger, MultivaluedAttributeMerger, NoncollidingAttributeAdder, ReplacingAttributeAdder

public interface IAttributeMerger

Interface for merging attributes from sibling PersonAttributeDaos.

Version:
$Revision$ $Date$
Author:
andrew.petro@yale.edu

Method Summary
 Map<String,List<Object>> mergeAttributes(Map<String,List<Object>> toModify, Map<String,List<Object>> toConsider)
          Modify the "toModify" argument in consideration of the "toConsider" argument.
 Set<String> mergeAvailableQueryAttributes(Set<String> toModify, Set<String> toConsider)
          Modify the "toModify" argument in consideration of the "toConsider" argument.
 Set<String> mergePossibleUserAttributeNames(Set<String> toModify, Set<String> toConsider)
          Modify the "toModify" argument in consideration of the "toConsider" argument.
 Set<IPersonAttributes> mergeResults(Set<IPersonAttributes> toModify, Set<IPersonAttributes> toConsider)
          Merge the results of a search.IPersonLookupDao call and a compiled results map.
 

Method Detail

mergeResults

Set<IPersonAttributes> mergeResults(Set<IPersonAttributes> toModify,
                                    Set<IPersonAttributes> toConsider)
Merge the results of a search.IPersonLookupDao call and a compiled results map.

Parameters:
toModify - The compiled results map, this will be modified based on the values in toConsider.
toConsider - The query results map, this will not be modified.

mergePossibleUserAttributeNames

Set<String> mergePossibleUserAttributeNames(Set<String> toModify,
                                            Set<String> toConsider)
Modify the "toModify" argument in consideration of the "toConsider" argument. Return the resulting Set which may or may not be the same reference as the "toModify" argument. The modification performed is implementation-specific -- implementations of this interface exist to perform some particular transformation on the toModify argument given the toConsider argument.

Parameters:
toModify - Modify this set
toConsider - In consideration of this set
Returns:
The modified set
Throws:
IllegalArgumentException - if either toModify or toConsider is null

mergeAvailableQueryAttributes

Set<String> mergeAvailableQueryAttributes(Set<String> toModify,
                                          Set<String> toConsider)
Modify the "toModify" argument in consideration of the "toConsider" argument. Return the resulting Set which may or may not be the same reference as the "toModify" argument. The modification performed is implementation-specific -- implementations of this interface exist to perform some particular transformation on the toModify argument given the toConsider argument.

Parameters:
toModify - Modify this set
toConsider - In consideration of this set
Returns:
The modified set
Throws:
IllegalArgumentException - if either toModify or toConsider is null

mergeAttributes

Map<String,List<Object>> mergeAttributes(Map<String,List<Object>> toModify,
                                         Map<String,List<Object>> toConsider)
Modify the "toModify" argument in consideration of the "toConsider" argument. Return the resulting Map, which may or may not be the same reference as the "toModify" argument. The modification performed is implementation-specific -- implementations of this interface exist to perform some particular transformation on the toModify argument given the toConsider argument.

Parameters:
toModify - - modify this map
toConsider - - in consideration of this map
Returns:
the modified Map
Throws:
IllegalArgumentException - if either toModify or toConsider is null


Copyright © 2012 Jasig. All Rights Reserved.