code: @Override
      public void executeQuery(
              final ObjectClass objClass,
              final Operand query,
              final ResultsHandler handler,
              final OperationOptions options) {
  
          if (LOG.isOk()) {
              LOG.ok("Execute query: " + query);
          }
  
          // check objectclass
          if (objClass == null || (!objClass.equals(ObjectClass.ACCOUNT))) {
              throw new IllegalArgumentException("Invalid objectclass");
          }
  
          // check handler
          if (handler == null) {
              throw new IllegalArgumentException("Invalid handler");
          }
  
          // get web service client
          final Provisioning provisioning = connection.getProvisioning();
          if (provisioning == null) {
              throw new IllegalStateException("Web Service client not found");
          }
  
          try {
              final List<WSUser> resultSet = provisioning.query(query);
              if (resultSet == null) {
                  return;
              }
  
              boolean handle = true;
              for (final Iterator<WSUser> i = resultSet.iterator(); i.hasNext() && handle;) {
                  final WSUser user = i.next();
  
                  if (LOG.isOk()) {
                      LOG.ok("Found user: {0}", user);
                  }
  
                  try {
                      handle = handler.handle(buildConnectorObject(user.getAttributes()).build());
                      LOG.ok("Handle: {0}", handle);
                  } catch (Exception e) {
                      LOG.error(e, "Error building connector object for {0}", user);
                  }
              }
          } catch (Exception e) {
              throw new IllegalArgumentException(e);
          }
      }
docs: {@inheritDoc}
  
  @param objClass
  @param options
  @param query
  @param handler