|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jasig.portal.services.persondir.support.AbstractDefaultQueryPersonAttributeDao
org.jasig.portal.services.persondir.support.CascadingPersonAttributeDao
public class CascadingPersonAttributeDao
This IPersonAttributeDao
implementation iterates through an ordered List
of
IPersonAttributeDao
impls
when getting user attributes.
The first DAO is queried using the seed Map
passed to this class. The results
of the query are merged into a general result map. After the first DAO this general
result map used as the query seed for each DAO and each DAOs results are merged into it.
This behavior allows a DAO lower on the list to rely on attributes returned by a DAO
higher on the list.
The default merger for the general result set is ReplacingAttributeAdder
.
Note that most DAOs expect a Map of String->String. Some of the DAOs return a Map of
String->Object or String->List. This may cause problems in the DAO if the key for an
attribute with a non String value matches a key needed by the DAO for the query it is
running.
It is highly recomended that the first DAO on the list for this class is
the EchoPersonAttributeDaoImpl
to ensure the seed gets placed into the general result map.
Field Summary | |
---|---|
private IAttributeMerger |
attrMerger
Strategy for merging together the results from successive PersonAttributeDaos. |
private java.util.List |
personAttributeDaos
A List of child IPersonAttributeDao instances which we will poll in order. |
private boolean |
recoverExceptions
True if we should catch, log, and ignore Throwables propogated by individual DAOs. |
Fields inherited from class org.jasig.portal.services.persondir.support.AbstractDefaultQueryPersonAttributeDao |
---|
log |
Constructor Summary | |
---|---|
CascadingPersonAttributeDao()
|
Method Summary | |
---|---|
IAttributeMerger |
getMerger()
Get the strategy whereby we accumulate attributes. |
java.util.List |
getPersonAttributeDaos()
Get an unmodifiable List of delegates which we will poll for attributes. |
java.util.Set |
getPossibleUserAttributeNames()
This implementation is not always correct. |
java.util.Map |
getUserAttributes(java.util.Map seed)
Iterates through the configured List of IPersonAttributeDao
instances. |
boolean |
isRecoverExceptions()
True if this class will catch exceptions thrown by its delegate DAOs and fail to propogate them. |
void |
setMerger(IAttributeMerger merger)
Set the strategy whereby we accumulate attributes from the results of polling our delegates. |
void |
setPersonAttributeDaos(java.util.List daos)
Set the List of delegates which we will poll for attributes. |
void |
setRecoverExceptions(boolean recover)
Set to true if you would like this class to swallow RuntimeExceptions thrown by its delegates. |
Methods inherited from class org.jasig.portal.services.persondir.support.AbstractDefaultQueryPersonAttributeDao |
---|
getDefaultAttributeName, getUserAttributes, setDefaultAttributeName |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.util.List personAttributeDaos
private IAttributeMerger attrMerger
private boolean recoverExceptions
Constructor Detail |
---|
public CascadingPersonAttributeDao()
Method Detail |
---|
public java.util.Map getUserAttributes(java.util.Map seed)
List
of IPersonAttributeDao
instances. The results from each DAO are merged into the result Map
by the configured IAttributeMerger
.
seed
- immutable Map of attributes to values to seed the query
IPersonAttributeDao.getUserAttributes(java.util.Map)
public java.util.Set getPossibleUserAttributeNames()
IPersonAttributeDao.getPossibleUserAttributeNames()
public IAttributeMerger getMerger()
public void setMerger(IAttributeMerger merger)
merger
- The attrMerger to set.
java.lang.IllegalArgumentException
- If merger is null
.public java.util.List getPersonAttributeDaos()
List
of delegates which we will poll for attributes.
public void setPersonAttributeDaos(java.util.List daos)
List
of delegates which we will poll for attributes.
daos
- The personAttributeDaos to set.
java.lang.IllegalArgumentException
- If daos is null
.public boolean isRecoverExceptions()
public void setRecoverExceptions(boolean recover)
recover
- whether you would like exceptions recovered internally
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |