01: /*
02: * JOnAS: Java(TM) Open Application Server
03: * Copyright (C) 1999 Bull S.A.
04: * Contact: jonas-team@objectweb.org
05: *
06: * ObjectWeb Connector: an implementation of JCA Sun specification along
07: * with some extensions of this specification.
08: * Copyright (C) 2001-2002 France Telecom R&D - INRIA
09: *
10: * This library is free software; you can redistribute it and/or
11: * modify it under the terms of the GNU Lesser General Public
12: * License as published by the Free Software Foundation; either
13: * version 2 of the License, or (at your option) any later version.
14: *
15: * This library is distributed in the hope that it will be useful,
16: * but WITHOUT ANY WARRANTY; without even the implied warranty of
17: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18: * Lesser General Public License for more details.
19: *
20: * You should have received a copy of the GNU Lesser General Public
21: * License along with this library; if not, write to the Free Software
22: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23: *
24: * Based on PoolMatchFactory in ObjectWeb common
25: *
26: * --------------------------------------------------------------------------
27: * $Id: PoolMatchFactory.java 5699 2004-10-29 23:33:37Z ehardesty $
28: * --------------------------------------------------------------------------
29: *
30: */
31:
32: /**
33: * Package definition.
34: *
35: * Author: E. Hardesty
36: */package org.objectweb.jonas.resource.pool.api;
37:
38: /**
39: * Import clauses: one for each external Java definition used. Do not use
40: * clauses in the form "import package.*".
41: */
42: import java.util.Set;
43:
44: /**
45: * The interface <b>PoolMatchFactory</b> defines the object used by a Pool to
46: * test if a given resource of a Pool matches with the hints passed with the
47: * Pool getResource method. It also allows such a Pool to allocate a
48: * Object as needed, conforming to the passed hints.
49: */
50: public interface PoolMatchFactory {
51: /**
52: * <b>createResource</b> creates a new Object.
53: * @param hints The "properties" that the created Object should
54: * conform to.
55: * @return The created Object.
56: * @throws Exception if an error occurs
57: */
58: Object createResource(Object hints) throws Exception;
59:
60: /**
61: * <b>matchResource</b> tests if a given resource of a Pool matches with
62: * the hints passed with the Pool getResource method.
63: * @param pr The Object to test its matching with some
64: * "properties" specified by hints.
65: * @param hints The "properties" that the Object specified by pr
66: * should match.
67: * @return <b>true</b> if the pr Object matches the hints
68: * "properties".
69: */
70: boolean matchResource(Object pr, Object hints);
71:
72: /**
73: * <b>matchResource</b> tests if a given resource of a Pool matches with
74: * the hints passed with the Pool getResource method.
75: * @param res A set of Objects to test if matching with some
76: * "properties" specified by hints.
77: * @param hints The "properties" that the Object specified by pr
78: * should match.
79: * @return <b>Object</b> that matches the hints "properties".
80: * or null if no match.
81: * @exception Exception Description of Exception
82: */
83: Object matchResource(Set res, Object hints) throws Exception;
84:
85: /**
86: * <b>releaseResource</b> make sure that any cleanup needed for this entry is done
87: * @param pr The Object to release
88: * @exception Exception Description of Exception
89: */
90: void releaseResource(Object pr) throws Exception;
91:
92: /**
93: * <b>validateResource</b> tests if a given resource of a Pool is invalid
94: * @param res A set of Objects to test if matching with some
95: * "properties" specified by hints.
96: * @exception Exception Description of Exception
97: */
98: void validateResource(Set res) throws Exception;
99: }
|