1 /*=========================================================================== 2 3 ObjectWeb Naming Context Framework 4 Copyright (C) 2002 USTL - LIFL - GOAL 5 Contact: architecture@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): Philippe Merle. 23 Contributor(s): ______________________________________. 24 25 ===========================================================================*/ 26 27 package org.objectweb.util.browser.core.wrapper; 28 29 /** To use the AssociatedContext interface */ 30 /** To use the PropertyLoader interface */ 31 /** To use the Context interface */ 32 /** To use the Entry interface */ 33 /** To use the ContextFactory interface */ 34 /** To use the AssociatedElementImpl class */ 35 import org.objectweb.util.browser.api.Context; 36 import org.objectweb.util.browser.api.Entry; 37 import org.objectweb.util.browser.core.api.AssociatedContext; 38 import org.objectweb.util.browser.core.api.BrowserProperty; 39 import org.objectweb.util.browser.core.api.ContextFactory; 40 import org.objectweb.util.browser.core.common.AssociatedElementImpl; 41 42 /** 43 * Implementation of AssociatedContext API 44 * 45 * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a> 46 * @version 0.1 47 */ 48 public class AssociatedContextImpl extends AssociatedElementImpl implements AssociatedContext { 49 50 /** 51 * Default constructor 52 * @param loader The propertyLoader to use to load new configuration 53 */ 54 public AssociatedContextImpl(BrowserProperty loader) { 55 super(); 56 context_ = new WrapperPropertyContainer(loader); 57 } 58 59 /** 60 * Returns the context associates to the node 61 * 62 * @param node The node 63 * @return The associated context or null if no context is found 64 */ 65 public Context getContext(Object node) { 66 if (context_ != null) { 67 Entry entry = context_.getRecursiveProperty(node); 68 if (entry != null) { 69 ContextFactory cf = (ContextFactory) entry.getValue(); 70 return cf.newOWContext(node); 71 } 72 } 73 return null; 74 } 75 76 } 77