1 /*==================================================================== 2 3 Objectweb Explorer Framework 4 Copyright (C) 2000-2005 INRIA - USTL - LIFL - GOAL 5 Contact: openccm@objectweb.org 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or any later version. 11 12 This library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with this library; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20 USA 21 22 Initial developer(s): Jerome Moroy, Philippe Merle. 23 Contributor(s): ______________________________________. 24 25 ==================================================================== 26 $Id: KeyProvider.java,v 1.2 2005/07/06 15:36:00 moroy Exp $ 27 ====================================================================*/ 28 29 package org.objectweb.util.explorer.core.common.api; 30 31 /** 32 * This interface is used to compute a key according to several parameters. 33 * 34 * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>, 35 * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>. 36 * 37 * @version 0.1 38 */ 39 public interface KeyProvider { 40 41 /** The name of the fractal interface reference. */ 42 public static String KEY_PROVIDER = "key-provider"; 43 44 /** 45 * This method is used to compute a key. 46 * The expected parameter is an array of String elements wich are the following: 47 * <ul> 48 * <li>The ID of the type system (i.e. Java).</li> 49 * <li>The ID of the type name (i.e. java.lang.Object).</li> 50 * <li>The ID of the role.</li> 51 * </ul> 52 * @param key The elements of the key. 53 * @return The computed key. 54 * @throws BadParamException When the given key parameter is not an array of String. 55 */ 56 public Object computeKey(Object key) throws BadParamException; 57 58 } 59