org.jasig.services.persondir.support
Class MergingPersonAttributeDaoImpl

java.lang.Object
  extended by org.jasig.services.persondir.support.AbstractFlatteningPersonAttributeDao
      extended by org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao
          extended by org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao
              extended by org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl
All Implemented Interfaces:
org.jasig.services.persondir.IPersonAttributeDao

public class MergingPersonAttributeDaoImpl
extends AbstractAggregatingDefaultQueryPersonAttributeDao

A IPersonAttributeDao implementation which iterates over children IPersonAttributeDaos queries each with the same data and merges their reported attributes in a configurable way. The default merger is MultivaluedAttributeMerger.

Since:
uPortal 2.5
Version:
$Revision: 43106 $ $Date: 2008-02-14 11:22:40 -0600 (Thu, 14 Feb 2008) $
Author:
andrew.petro@yale.edu, Eric Dalquist

Field Summary
 
Fields inherited from class org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao
attrMerger, personAttributeDaos, recoverExceptions
 
Fields inherited from class org.jasig.services.persondir.support.AbstractFlatteningPersonAttributeDao
logger
 
Constructor Summary
MergingPersonAttributeDaoImpl()
           
 
Method Summary
protected  Map<String,List<Object>> getAttributesFromDao(Map<String,List<Object>> seed, boolean isFirstQuery, org.jasig.services.persondir.IPersonAttributeDao currentlyConsidering, Map<String,List<Object>> resultAttributes)
          Calls the current IPersonAttributeDao from using the seed.
 
Methods inherited from class org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao
getMerger, getMultivaluedUserAttributes, getPersonAttributeDaos, getPossibleUserAttributeNames, isRecoverExceptions, setMerger, setPersonAttributeDaos, setRecoverExceptions
 
Methods inherited from class org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao
getDefaultAttributeName, getMultivaluedUserAttributes, setDefaultAttributeName
 
Methods inherited from class org.jasig.services.persondir.support.AbstractFlatteningPersonAttributeDao
flattenResults, getUserAttributes, getUserAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MergingPersonAttributeDaoImpl

public MergingPersonAttributeDaoImpl()
Method Detail

getAttributesFromDao

protected Map<String,List<Object>> getAttributesFromDao(Map<String,List<Object>> seed,
                                                        boolean isFirstQuery,
                                                        org.jasig.services.persondir.IPersonAttributeDao currentlyConsidering,
                                                        Map<String,List<Object>> resultAttributes)
Calls the current IPersonAttributeDao from using the seed.

Specified by:
getAttributesFromDao in class AbstractAggregatingDefaultQueryPersonAttributeDao
Parameters:
seed - The seed for the original query.
isFirstQuery - If this is the first query, this will stay true until a call to this method returns (does not throw an exception).
currentlyConsidering - The IPersonAttributeDao to execute the query on.
resultAttributes - The Map of results from all previous queries, may be null.
Returns:
The results from the call to the DAO, follows the same rules as IPersonAttributeDao.getUserAttributes(Map).
See Also:
AbstractAggregatingDefaultQueryPersonAttributeDao.getAttributesFromDao(java.util.Map, boolean, org.jasig.services.persondir.IPersonAttributeDao, java.util.Map)


Copyright © 1998-2008 Java Architectures Special Interest Group. All Rights Reserved.