/* * Copyright (c) 2010 Lockheed Martin Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eurekastreams.server.service.actions.strategies.ldap; import java.util.List; import org.eurekastreams.server.domain.Person; import org.eurekastreams.server.persistence.mappers.ldap.LdapLookup; import org.eurekastreams.server.persistence.mappers.requests.LdapLookupRequest; import org.eurekastreams.server.service.actions.strategies.PersonLookupStrategy; /** * Find people via LDAP attribute. * */ public class PersonLookupViaAttribute implements PersonLookupStrategy { /** * {@link LdapLookup} to use. */ private LdapLookup<Person> ldapLookup; /** * Constructor. * * @param inLdapLookup * {@link LdapLookup}. */ public PersonLookupViaAttribute(final LdapLookup<Person> inLdapLookup) { ldapLookup = inLdapLookup; } /** * Returns a list of people from on ldap lookup based on an attribute value provided by user. Ldap attribute to * value search results are base entirely on the {@link LdapLookup} DAO passed into this strategy. * * @param inSearchString * the value to be matched to an ldap attribue. * @param inResultsUpperBound * Max number of results. * @return List of Person objects. */ @Override public List<Person> findPeople(final String inSearchString, final int inResultsUpperBound) { // lookup users. List<Person> results = ldapLookup.execute(new LdapLookupRequest(inSearchString, inResultsUpperBound)); // set sourcelist criteria on results. for (Person p : results) { p.getSourceList().add(inSearchString); } return results; } }