public void importNamespace(String namespaceName) { Namespace namespace = getRootNamespace(); StringTokenizer tokens = new StringTokenizer(namespaceName, "."); while ( tokens.hasMoreTokens() ) { namespace = namespace.getOrCreateChild( tokens.nextToken() ); } globalImports.add(namespace); }
/** * 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; }
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 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; } } } }