public Object getComponentInstance(String key) { return getComponentInstance(key, true); }
/** * Get a component or child namespace */ public Object get(String key) { Object component = getComponentInstance(key); return component==null ? children.get(key) : component; }
private Object getInstanceInAllNamespaces(String name, boolean create, boolean allowAutocreation) { Object result; result = getInstance(name, create, allowAutocreation); if (result==null) { for ( Namespace namespace: getImports() ) { result = namespace.getComponentInstance(name, create, allowAutocreation); if (result!=null) break; } } if (result==null) { for ( Namespace namespace: Init.instance().getGlobalImports() ) { result = namespace.getComponentInstance(name, create, allowAutocreation); if (result!=null) break; } } if (result==null) { Namespace namespace = getNamespace(); if (namespace!=null) { result = namespace.getComponentInstance(name, create, allowAutocreation); } } return result; }
private Object resolveBase(ELContext context, Object property) { if (!Contexts.isApplicationContextActive()) { // if no Seam contexts, bypass straight through to JSF return null; } String key = (String) property; Init init = Init.instance(); // look for a component in the root namespace Object result = init.getRootNamespace().getComponentInstance(key); if (result != null) { context.setPropertyResolved(true); return result; } else { // look for a component in the imported namespaces for (Namespace ns : init.getGlobalImports()) { result = ns.getComponentInstance(key); if (result != null) { context.setPropertyResolved(true); return result; } } } // look for a namespace Namespace namespace = init.getRootNamespace().getChild(key); if (namespace != null) { context.setPropertyResolved(true); } return namespace; }