All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ldaptive.pool.CompareValidator Maven / Gradle / Ivy

There is a newer version: 2.4.0
Show newest version
/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.pool;

import org.ldaptive.CompareOperation;
import org.ldaptive.CompareRequest;
import org.ldaptive.Connection;
import org.ldaptive.LdapAttribute;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Validates a connection is healthy by performing a compare operation.
 *
 * @author  Middleware Services
 */
public class CompareValidator implements Validator
{

  /** Logger for this class. */
  protected final Logger logger = LoggerFactory.getLogger(getClass());

  /** Compare request to perform validation with. */
  private CompareRequest compareRequest;


  /** Creates a new compare validator. */
  public CompareValidator()
  {
    compareRequest = new CompareRequest();
    compareRequest.setDn("");
    compareRequest.setAttribute(new LdapAttribute("objectClass", "top"));
  }


  /**
   * Creates a new compare validator.
   *
   * @param  cr  to use for compares
   */
  public CompareValidator(final CompareRequest cr)
  {
    compareRequest = cr;
  }


  /**
   * Returns the compare request.
   *
   * @return  compare request
   */
  public CompareRequest getCompareRequest()
  {
    return compareRequest;
  }


  /**
   * Sets the compare request.
   *
   * @param  cr  compare request
   */
  public void setCompareRequest(final CompareRequest cr)
  {
    compareRequest = cr;
  }


  @Override
  public boolean validate(final Connection c)
  {
    boolean success = false;
    if (c != null) {
      try {
        final CompareOperation compare = new CompareOperation(c);
        success = compare.execute(compareRequest).getResult();
      } catch (Exception e) {
        logger.debug("validation failed for compare request {}", compareRequest, e);
      }
    }
    return success;
  }


  @Override
  public String toString()
  {
    return String.format("[%s@%d::compareRequest=%s]", getClass().getName(), hashCode(), compareRequest);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy