/*
* @author mchyzer
* $Id$
*/
package poc;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter;
import edu.internet2.middleware.grouper.util.GrouperUtil;
import edu.internet2.middleware.subject.Subject;
import edu.internet2.middleware.subject.SubjectNotFoundException;
import edu.internet2.middleware.subject.SubjectNotUniqueException;
/**
*
*/
public class MyGrouperJdbcSourceAdapter extends GrouperJdbcSourceAdapter {
/**
* as an example, concatenate two attributes together, store as a third attribute
* @param subject
*/
private void decorateSubject(Subject subject) {
if (subject != null) {
String idNameLoginid = subject.getId() + " " + subject.getName() + " "
+ StringUtils.defaultString(subject.getAttributeValue("LOGINID"));
subject.getAttributes().put("idNameLoginid", idNameLoginid);
}
}
@Override
public Subject getSubject(String id) throws SubjectNotFoundException,
SubjectNotUniqueException {
Subject subject = super.getSubject(id);
decorateSubject(subject);
return subject;
}
@Override
public Subject getSubjectByIdentifier(String id)
throws SubjectNotFoundException, SubjectNotUniqueException {
Subject subject = super.getSubjectByIdentifier(id);
decorateSubject(subject);
return subject;
}
@Override
public Set<Subject> search(String searchValue) {
Set<Subject> subjectSet = super.search(searchValue);
for (Subject subject : GrouperUtil.nonNull(subjectSet)) {
decorateSubject(subject);
}
return subjectSet;
}
}
|