1 /** 2 * Copyright (C) 2001-2002 3 * - France Telecom R&D 4 * - Laboratoire Logiciels, Systemes, Reseaux - UMR 5526, CNRS-INPG-UJF 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * 20 * Release: 1.0 21 * 22 * Authors: 23 * 24 */ 25 26 package org.objectweb.perseus.persistence.api; 27 28 import org.objectweb.perseus.cache.api.CacheManager; 29 import org.objectweb.perseus.concurrency.api.ConcurrencyManager; 30 31 /** 32 * This interface defines the links needed by a PersistenceManager: 33 * - a CacheManager 34 * [ - a ConcurencyManager implementation ] 35 * [ - another PersistentManager which has the role of ContextCopyManager] 36 * This interface is a Binding Controller weither the Fractal terminology. 37 * 38 * @author Luciano Garcia-Banuelos (Luciano.Garcia@imag.fr) 39 */ 40 public interface PersistenceManagerBindingController { 41 42 /** 43 * It assignes the CacheManager used by the PersistenceManager. 44 * @param cm is the cache. 45 */ 46 void setCacheManager(CacheManager cm); 47 48 /** 49 * It retrieves the CacheManager used by the PersistenceManager. 50 */ 51 CacheManager getCacheManager(); 52 53 54 /** 55 * It assignes the context copy manager instance. A context copy manager 56 * implements the PersistentManager interface. In addition It is optional. 57 * @param pm is the context copy manager. 58 */ 59 void setContextCopyManager(PersistenceManager pm); 60 61 /** 62 * It retrieves the ContextCopyManager used by the PersistenceManager. 63 */ 64 PersistenceManager getContextCopyManager(); 65 66 67 /** 68 * It assignes the ConcurrencyManager instance. It is optional. 69 * @param cm is the ConcurrencyManager instance. 70 */ 71 void setConcurrencyManager(ConcurrencyManager cm); 72 73 /** 74 * It retrieves the ConcurrencyManager used by the PersistenceManager. 75 */ 76 ConcurrencyManager getConcurrencyManager(); 77 } 78