public final void executeADQuery(final ResultsHandler handler) {
    final String[] attrsToGetOption = options.getAttributesToGet();
    final Set<String> attrsToGet = utils.getAttributesToGet(attrsToGetOption, oclass);

    final LdapInternalSearch search = getInternalSearch(attrsToGet);

    search.execute(
        new SearchResultsHandler() {

          @Override
          public boolean handle(String baseDN, SearchResult result) throws NamingException {
            return handler.handle(
                utils.createConnectorObject(
                    result.getNameInNamespace(), result, attrsToGet, oclass));
          }
        });
  }