You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2006/10/07 14:14:15 UTC

svn commit: r453890 - /myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java

Author: baranda
Date: Sat Oct  7 05:14:15 2006
New Revision: 453890

URL: http://svn.apache.org/viewvc?view=rev&rev=453890
Log:
Implemented JSR-252 MYFACES-1440 (Implement method: ApplicationImpl.createComponent(ValueExpression,FacesContext, String))

Modified:
    myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java

Modified: myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?view=diff&rev=453890&r1=453889&r2=453890
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/branches/jsf12/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Sat Oct  7 05:14:15 2006
@@ -155,12 +155,12 @@
         _expressionFactory = appCtx.getExpressionFactory();
     }
     
-    
+
     public void addELResolver(ELResolver resolver) {
         _resolverForFaces.addResolverFromApplicationAddResolver(resolver);
         _resolverForJSP.addResolverFromApplicationAddResolver(resolver);
     }
-    
+
     public ELResolver getELResolver() {
         return _resolverForFaces;
     }
@@ -183,12 +183,31 @@
         checkNull(componentExpression, "componentExpression");
         checkNull(facesContext, "facesContext");
         checkNull(componentType, "componentType");
+
+        ELContext elContext = facesContext.getELContext();
         
-        Object retVal = componentExpression.getValue(facesContext.getELContext());
-        if (retVal instanceof UIComponent) return (UIComponent)retVal;
-        
-        
-        throw new UnsupportedOperationException("Not implemented yet.");
+        Object retVal = componentExpression.getValue(elContext);
+
+        UIComponent createdComponent;
+
+        try
+        {
+            if (retVal instanceof UIComponent)
+            {
+                createdComponent = (UIComponent)retVal;
+            }
+            else
+            {
+                createdComponent = createComponent(componentType);
+                componentExpression.setValue(elContext, retVal);
+            }
+        }
+        catch (Exception e)
+        {
+            throw new FacesException(e);
+        }
+
+        return createdComponent;
     }
     
     public ExpressionFactory getExpressionFactory() {