Open Source Repository

Home /hibernate/hibernate-3.2.7.ga | Repository Home


org/hibernate/Filter.java
// $Id: Filter.java 8754 2005-12-05 23:36:59Z steveebersole $
package org.hibernate;

import org.hibernate.engine.FilterDefinition;

import java.util.Collection;

/**
 * Type definition of Filter.  Filter defines the user's view into enabled dynamic filters,
 * allowing them to set filter parameter values.
 *
 @author Steve Ebersole
 */
public interface Filter {

  /**
   * Get the name of this filter.
   *
   @return This filter's name.
   */
  public String getName();

  /**
   * Get the filter definition containing additional information about the
   * filter (such as default-condition and expected parameter names/types).
   *
   @return The filter definition
   */
  public FilterDefinition getFilterDefinition();


  /**
   * Set the named parameter's value for this filter.
   *
   @param name The parameter's name.
   @param value The value to be applied.
   @return This FilterImpl instance (for method chaining).
   */
  public Filter setParameter(String name, Object value);

  /**
   * Set the named parameter's value list for this filter.  Used
   * in conjunction with IN-style filter criteria.
   *
   @param name The parameter's name.
   @param values The values to be expanded into an SQL IN list.
   @return This FilterImpl instance (for method chaining).
   */
  public Filter setParameterList(String name, Collection values);

  /**
   * Set the named parameter's value list for this filter.  Used
   * in conjunction with IN-style filter criteria.
   *
   @param name The parameter's name.
   @param values The values to be expanded into an SQL IN list.
   @return This FilterImpl instance (for method chaining).
   */
  public Filter setParameterList(String name, Object[] values);

  /**
   * Perform validation of the filter state.  This is used to verify the
   * state of the filter after its enablement and before its use.
   *
   @throws HibernateException If the state is not currently valid.
   */
  public void validate() throws HibernateException;
}