01: package org.apache.turbine.util.pool;
02:
03: /*
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21:
22: /**
23: * An interface for objects that can be pooled and
24: * recycled several times by different clients.
25: *
26: * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
27: * @version $Id: Recyclable.java 534527 2007-05-02 16:10:59Z tv $
28: */
29: public interface Recyclable {
30: /**
31: * Recycles the object for a new client. Recycle methods with
32: * parameters must be added to implementing object and they will be
33: * automatically called by pool implementations when the object is
34: * taken from the pool for a new client. The parameters must
35: * correspond to the parameters of the constructors of the object.
36: * For new objects, constructors can call their corresponding recycle
37: * methods whenever applicable.
38: * The recycle methods must call their super.
39: */
40: void recycle();
41:
42: /**
43: * Disposes the object after use. The method is called
44: * when the object is returned to its pool.
45: * The dispose method must call its super.
46: */
47: void dispose();
48:
49: /**
50: * Checks whether the recyclable has been disposed.
51: * @return true, if the recyclable is disposed.
52: */
53: boolean isDisposed();
54: }
|