1 /*==================================================================== 2 3 Objectweb Browser Framework 4 Copyright (C) 2000-2004 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): Romain Rouvoy. 23 Contributor(s): ______________________________________. 24 25 --------------------------------------------------------------------- 26 $Id: InterfaceWrapperFactory.java,v 1.2 2004/05/28 14:51:48 moroy Exp $ 27 ====================================================================*/ 28 29 package org.objectweb.fractal.explorer.context; 30 31 import org.objectweb.fractal.api.Interface; 32 import org.objectweb.fractal.api.type.InterfaceType; 33 34 /** 35 * Interface wrapper factory. 36 * @author <a HREF="mailto:Romain.Rouvoy@lifl.fr">Romain Rouvoy</a> 37 * @version 0.1 38 */ 39 public class InterfaceWrapperFactory 40 { 41 /** Factory singleton. */ 42 protected static final InterfaceWrapperFactory singleton = new InterfaceWrapperFactory(); 43 44 /** 45 * Provides the instance of the default factory. 46 * @return the default factory. 47 */ 48 public static InterfaceWrapperFactory singleton() { 49 return singleton ; 50 } 51 52 /** 53 * Provides the appropriate wrapper for the requested interface. 54 * @param itf the interface to wrap. 55 * @return the associated interface wrapper. 56 */ 57 public InterfaceWrapper getWrapper(Interface itf) { 58 InterfaceType type = (InterfaceType) itf.getFcItfType(); 59 if (type.isFcClientItf()) 60 if (type.isFcCollectionItf()) 61 return new ClientCollectionInterfaceWrapper(itf); 62 else 63 return new ClientInterfaceWrapper(itf); 64 else 65 return new InterfaceWrapper(itf); 66 } 67 } 68