01: // $Id: Filter.java 8754 2005-12-05 23:36:59Z steveebersole $
02: package org.hibernate;
03:
04: import org.hibernate.engine.FilterDefinition;
05:
06: import java.util.Collection;
07:
08: /**
09: * Type definition of Filter. Filter defines the user's view into enabled dynamic filters,
10: * allowing them to set filter parameter values.
11: *
12: * @author Steve Ebersole
13: */
14: public interface Filter {
15:
16: /**
17: * Get the name of this filter.
18: *
19: * @return This filter's name.
20: */
21: public String getName();
22:
23: /**
24: * Get the filter definition containing additional information about the
25: * filter (such as default-condition and expected parameter names/types).
26: *
27: * @return The filter definition
28: */
29: public FilterDefinition getFilterDefinition();
30:
31: /**
32: * Set the named parameter's value for this filter.
33: *
34: * @param name The parameter's name.
35: * @param value The value to be applied.
36: * @return This FilterImpl instance (for method chaining).
37: */
38: public Filter setParameter(String name, Object value);
39:
40: /**
41: * Set the named parameter's value list for this filter. Used
42: * in conjunction with IN-style filter criteria.
43: *
44: * @param name The parameter's name.
45: * @param values The values to be expanded into an SQL IN list.
46: * @return This FilterImpl instance (for method chaining).
47: */
48: public Filter setParameterList(String name, Collection values);
49:
50: /**
51: * Set the named parameter's value list for this filter. Used
52: * in conjunction with IN-style filter criteria.
53: *
54: * @param name The parameter's name.
55: * @param values The values to be expanded into an SQL IN list.
56: * @return This FilterImpl instance (for method chaining).
57: */
58: public Filter setParameterList(String name, Object[] values);
59:
60: /**
61: * Perform validation of the filter state. This is used to verify the
62: * state of the filter after its enablement and before its use.
63: *
64: * @throws HibernateException If the state is not currently valid.
65: */
66: public void validate() throws HibernateException;
67: }
|