You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2009/04/30 19:51:14 UTC

svn commit: r770356 - in /myfaces/core/branches/2_0_0: api/src/main/java/javax/faces/application/Application.java api/src/main/java/javax/faces/application/ApplicationWrapper.java impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java

Author: mconcini
Date: Thu Apr 30 17:51:14 2009
New Revision: 770356

URL: http://svn.apache.org/viewvc?rev=770356&view=rev
Log:
MYFACES-2189 - Application/ApplicationImpl TODOs

Modified:
    myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java
    myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java
    myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java

Modified: myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java (original)
+++ myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java Thu Apr 30 17:51:14 2009
@@ -34,7 +34,7 @@
 import javax.faces.component.ActionSource2;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIViewRoot;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.el.MethodBinding;
@@ -221,7 +221,7 @@
      * 
      * FIXME: Notify EG, this should not be abstract and throw UnsupportedOperationException
      */
-    public abstract ClientBehavior createBehavior(String behaviorId) throws FacesException;
+    public abstract Behavior createBehavior(String behaviorId) throws FacesException;
 
     /**
      * ???

Modified: myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java (original)
+++ myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java Thu Apr 30 17:51:14 2009
@@ -32,7 +32,7 @@
 import javax.faces.FacesException;
 import javax.faces.FacesWrapper;
 import javax.faces.component.UIComponent;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.el.MethodBinding;
@@ -108,7 +108,7 @@
     }
 
     @Override
-    public ClientBehavior createBehavior(String behaviorId) throws FacesException
+    public Behavior createBehavior(String behaviorId) throws FacesException
     {
         return getWrapped().createBehavior(behaviorId);
     }

Modified: myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Thu Apr 30 17:51:14 2009
@@ -54,7 +54,7 @@
 import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.component.UIViewRoot;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.el.MethodBinding;
@@ -149,6 +149,8 @@
     private final Map<Class<? extends SystemEvent>, SystemListenerEntry> _systemEventListenerClassMap = new ConcurrentHashMap<Class<? extends SystemEvent>, SystemListenerEntry>();
 
     private Map<String, String> _defaultValidatorsIds = new ConcurrentHashMap<String, String>();
+    
+    private final Map<String, Class<? extends Behavior>> _behaviorClassMap = new ConcurrentHashMap<String, Class<? extends Behavior>>();
 
     private final RuntimeConfig _runtimeConfig;
 
@@ -517,8 +519,7 @@
     @Override
     public Iterator<String> getBehaviorIds()
     {
-        // TODO: IMPLEMENT HERE
-        return null;
+        return _behaviorClassMap.keySet().iterator();
     }
 
     @Override
@@ -814,10 +815,26 @@
         return _viewHandler;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public void addBehavior(String behaviorId, String behaviorClass)
     {
-        // TODO: IMPLEMENT HERE
+        checkNull(behaviorId, "behaviorId");
+        checkEmpty(behaviorId, "behaviorId");
+        checkNull(behaviorClass, "behaviorClass");
+        checkEmpty(behaviorClass, "behaviorClass");
+
+        try
+        {
+            _behaviorClassMap.put(behaviorId, ClassUtils.simpleClassForName(behaviorClass));
+            if (log.isTraceEnabled())
+                log.trace("add Behavior class = " + behaviorClass + " for id = " + behaviorId);
+        }
+        catch (Exception e)
+        {
+            log.error("Behavior class " + behaviorClass + " not found", e);
+        }
+
     }
 
     @SuppressWarnings("unchecked")
@@ -914,10 +931,27 @@
     }
 
     @Override
-    public ClientBehavior createBehavior(String behaviorId) throws FacesException
+    public Behavior createBehavior(String behaviorId) throws FacesException
     {
-        // TODO: IMPLEMENT HERE
-        return null;
+        checkNull(behaviorId, "behaviorId");
+        checkEmpty(behaviorId, "behaviorId");
+
+        final Class<? extends Behavior> behaviorClass = this._behaviorClassMap.get(behaviorId);
+        if (behaviorClass == null)
+        {
+            throw new FacesException("Could not find any registered behavior-class for behaviorId : " + behaviorId);
+        }
+
+        try
+        {
+            final Behavior behavior = behaviorClass.newInstance();
+            return behavior;
+        }
+        catch (Exception e)
+        {
+            log.error("Could not instantiate behavior " + behaviorClass, e);
+            throw new FacesException("Could not instantiate behavior: " + behaviorClass, e);
+        }
     }
 
     @Override