001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.runtime.util.pool;
020
021/**
022 * Interface for a Pool
023 */
024public interface Pool {
025        
026        /**
027         * adds a new object to the pool, if object is already in the Pool, it will be overwritten
028         * @param key key for the Objects
029         * @param handler pool handler object
030         */
031        public void set(Object key, PoolHandler handler);
032        
033        /**
034         * gets a Object from the pool
035         * @param key key for the Objects
036         * @return
037         */
038        public PoolHandler get(Object key);
039
040        /**
041         * checks if Object exists in Pool
042         * @param key key for the Objects
043         * @return object exists or not
044         */
045        public boolean exists(Object key);
046        
047        /**
048         * remove a Object from the pool
049         * @param key key for the Objects
050         * @return
051         */
052        public boolean remove(Object key);
053        
054}