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

svn commit: r781355 - /myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java

Author: skitching
Date: Wed Jun  3 12:56:18 2009
New Revision: 781355

URL: http://svn.apache.org/viewvc?rev=781355&view=rev
Log:
Cleanup only: avoid computing EL expressions multiple times, improve exception messages.

Modified:
    myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java

Modified: myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java?rev=781355&r1=781354&r2=781355&view=diff
==============================================================================
--- myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java (original)
+++ myfaces/orchestra/trunk/sandbox/src/main/java/org/apache/myfaces/orchestra/dynaForm/jsf/component/DynaConfig.java Wed Jun  3 12:56:18 2009
@@ -39,6 +39,9 @@
  * to override the settings auto-detected by the Extractor. Each instance overrides the properties
  * of a single persistent field. The attribute "for" on this component should specify the name
  * of the property to be overridden on the persistent object associated with the DynaForm.
+ * <p>
+ * This component can also have a single child component, in which case that is used as the
+ * component for rendering this dynamic field.
  */
 public class DynaConfig extends UIComponentBase
 {
@@ -156,8 +159,9 @@
     }
 
     /**
-     * Render this field by using the managed bean with the specified name,
-     * which must be a subtype of DynaFormComponentHandler.
+     * Specifies the "controller bean" used to render this specific field.
+     * <p>
+     * This should be the name of a managed bean which implements DynaFormComponentHandler.
      */
     public void setComponentHandler(String beanName)
     {
@@ -215,13 +219,16 @@
 
     public void configureMetaData(MetaFieldWritable field)
     {
-        if (getDisplaySize() != null)
+        Integer displaySize = getDisplaySize();
+        if (displaySize != null)
         {
-            field.setDisplaySize(getDisplaySize().intValue());
+            field.setDisplaySize(displaySize.intValue());
         }
-        if (getDisplayOnly() != null)
+
+        Boolean displayOnly = getDisplayOnly();
+        if (displayOnly != null)
         {
-            field.setDisplayOnly(getDisplayOnly());
+            field.setDisplayOnly(displayOnly);
         }
 
         // field is writable unless readonly is true.
@@ -231,29 +238,30 @@
         // fields are always readable
         field.setCanRead(true);
 
-        if (getDisabled() != null)
+        Boolean disabled = getDisabled();
+        if (disabled != null)
         {
-            field.setDisabled(getDisabled().booleanValue());
+            field.setDisabled(disabled.booleanValue());
         }
 
-        String ch = getComponentHandler();
-        if (ch != null)
+        String chName = getComponentHandler();
+        if (chName != null)
         {
-            Object componentHandlerBean = FrameworkAdapter.getCurrentInstance().getBean(ch);
+            Object componentHandlerBean = FrameworkAdapter.getCurrentInstance().getBean(chName);
             if (componentHandlerBean == null)
             {
                 throw new IllegalArgumentException(
-                    "no component handler with bean name " + ch + " found.");
+                    "No component handler with bean name [" + chName + "] found.");
             }
             if (!(componentHandlerBean instanceof DynaFormComponentHandler))
             {
                 throw new IllegalArgumentException(
-                    "component handler with bean name " + ch + 
-                    " doesn't implement the " + DynaFormComponentHandler.class.getName() + " interface.");
+                    "Managed bean with name [" + chName + 
+                    "] doesn't implement interface " + DynaFormComponentHandler.class.getName());
             }
 
             field.setComponentHandler((DynaFormComponentHandler) componentHandlerBean);
-       }
+        }
 
         if (getChildCount() > 0)
         {