public Namespace getOrCreateChild(String key) { Namespace result = getChild(key); if (result==null) { result = new Namespace( qualifyName(key) + '.' ); addChild(key, result); } return result; }
private Object resolveInNamespace(ELContext context, Namespace namespace, Object property) { Object result = namespace.get((String) property); // JBSEAM-3077 if the result is null, it means that there is no component instance bound to this qualified name context.setPropertyResolved(true); return result; }
public Object getComponentInstance(String key) { return getComponentInstance(key, true); }
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; }
public void importNamespace(String namespaceName) { Namespace namespace = getRootNamespace(); StringTokenizer tokens = new StringTokenizer(namespaceName, "."); while ( tokens.hasMoreTokens() ) { namespace = namespace.getOrCreateChild( tokens.nextToken() ); } globalImports.add(namespace); }
public Object getComponentInstance(String key, boolean create, boolean allowAutocreation) { return Component.getInstance( qualifyName(key), create, allowAutocreation ); }
public Object resolveGlobal(String name) { if ( !Contexts.isApplicationContextActive() ) { return delegate.resolveGlobal(name); } else { Object instance = Component.getInstance(name); if (instance==null) { instance = delegate.resolveGlobal(name); return instance==null ? Init.instance().getRootNamespace().getChild(name) : instance; } else { return instance; } } } }
/** * makes sure appropriate namespaces exist for a name. isComponent indicates the * name is for a component type, in which case we don't create a namespace for the * last part */ public Namespace initNamespaceForName(String name, boolean isComponent) { Namespace namespace = getRootNamespace(); StringTokenizer tokens = new StringTokenizer(name, "."); while (tokens.hasMoreTokens()) { String token = tokens.nextToken(); if (tokens.hasMoreTokens() || !isComponent) { //we don't want to create a namespace for a componentName namespace = namespace.getOrCreateChild(token); } } return namespace; }
public Object getComponentInstance(String key, boolean create) { return Component.getInstance( qualifyName(key), create ); }
/** * 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; }