[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Norman Richards
norman.richards at jboss.com
Fri Oct 12 01:07:55 EDT 2007
User: nrichards
Date: 07/10/12 01:07:55
Modified: src/main/org/jboss/seam/core Init.java
Log:
JBSEAM-2076
Revision Changes Path
1.57 +35 -11 jboss-seam/src/main/org/jboss/seam/core/Init.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Init.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Init.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- Init.java 4 Oct 2007 23:08:08 -0000 1.56
+++ Init.java 12 Oct 2007 05:07:54 -0000 1.57
@@ -1,4 +1,4 @@
-//$Id: Init.java,v 1.56 2007/10/04 23:08:08 gavin Exp $
+//$Id: Init.java,v 1.57 2007/10/12 05:07:54 nrichards Exp $
package org.jboss.seam.core;
@@ -202,22 +202,46 @@
checkDuplicateFactoryExpressions(variable);
}
+
+ /**
+ * 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 void addFactoryMethod(String variable, Method method, Component component)
{
checkDuplicateFactory(variable, component);
- factories.put( variable, new FactoryMethod(method, component) );
+ factories.put(variable, new FactoryMethod(method, component));
+ initNamespaceForName(variable, true);
}
public void addFactoryMethodExpression(String variable, String methodBindingExpression, ScopeType scope)
{
checkDuplicateFactory(variable);
- factoryMethodExpressions.put( variable, new FactoryExpression(methodBindingExpression, scope) );
+ factoryMethodExpressions.put(variable, new FactoryExpression(methodBindingExpression, scope));
+ initNamespaceForName(variable, true);
}
public void addFactoryValueExpression(String variable, String valueBindingExpression, ScopeType scope)
{
checkDuplicateFactory(variable);
- factoryValueExpressions.put( variable, new FactoryExpression(valueBindingExpression, scope) );
+ factoryValueExpressions.put(variable, new FactoryExpression(valueBindingExpression, scope));
+ initNamespaceForName(variable, true);
+
}
public static class ObserverMethod
More information about the jboss-cvs-commits
mailing list