001    /*
002     * (c) 2005, 2009, 2010 ThoughtWorks Ltd
003     * All rights reserved.
004     *
005     * The software in this package is published under the terms of the BSD
006     * style license a copy of which has been included with this distribution in
007     * the LICENSE.txt file.
008     * 
009     * Created on 02-Aug-2005
010     */
011    package com.thoughtworks.proxy.kit;
012    
013    /**
014     * Interface for a resetter component. This will automatically reset the state of the pooled element, when it is
015     * returned to the pool.
016     *
017     * @author Jörg Schaible
018     * @since 0.2
019     */
020    public interface Resetter<T> {
021        /**
022         * Reset the pooled object. The implementation may do anything to reset the state of the pooled element. If the
023         * element is definitely exhausted, a return value of <code>false</code> prevents the element from returning into
024         * the pool and the instance is garbage collected.
025         *
026         * @param object the object to reset
027         * @return <code>true</code> if the element can be used for further tasks.
028         * @since 0.2
029         */
030        boolean reset(T object);
031    }