// add passed in attribute criteria to filter.
AbstractFilter abstractFilter = filterCreator.getFilter(inRequest.getQueryString());
// get the configured CollectingNameClassPairCallbackHandler to use for query.
CollectingNameClassPairCallbackHandler collectingHandler = handlerFactory.getCallbackHandler();
// execute query.
ldapSearchStrategy.searchLdap(template, abstractFilter.encode(), searchControls, collectingHandler);
// get results gathered by CollectingNameClassPairCallbackHandler.
List<Type> rawResults = collectingHandler.getList();
// Results contain nulls if the context/attribute mappers were unable to create objects, so pull them out.
List<Type> results = new ArrayList<Type>();
for (Type t : rawResults)
{