1 package com.atlassian.user.impl.ldap.search.page;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.impl.ldap.repository.LdapContextFactory;
5 import com.atlassian.user.impl.ldap.search.LDAPPagerInfo;
6 import org.apache.log4j.Category;
7
8 import javax.naming.directory.Attribute;
9 import javax.naming.directory.Attributes;
10 import javax.naming.directory.SearchResult;
11 import java.util.List;
12
13 public class LDAPSingleStringPager extends AbstractLDAPPager<String>
14 {
15 public static final Category log = Category.getInstance(LDAPSingleStringPager.class);
16
17 public LDAPSingleStringPager(LdapContextFactory repository, LDAPPagerInfo info)
18 {
19 super(repository, info);
20
21 preload();
22 }
23
24 protected List<String> preloadSearchResult(SearchResult result, List<String> prefetched) throws EntityException
25 {
26 try
27 {
28 Attributes entityAttributes = result.getAttributes();
29 String attributeToFind = returningAttributes[0];
30 Attribute attr = entityAttributes.get(attributeToFind);
31 prefetched.add((String) attr.get());
32 }
33 catch (Throwable t)
34 {
35 log.error("Error converting search result: " + result + " into a string value.", t);
36 }
37
38 return prefetched;
39 }
40 }