You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/09/25 23:45:37 UTC

svn commit: r449864 - in /incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad: component/UIXComponent.java component/UIXComponentBase.java render/ExtendedRenderer.java render/LifecycleRenderer.java

Author: awiner
Date: Mon Sep 25 16:45:36 2006
New Revision: 449864

URL: http://svn.apache.org/viewvc?view=rev&rev=449864
Log:
Enhanced LifecycleRenderer API to return a boolean from each method, making it simpler for a renderer to only conditionally override parts of the lifecycle

Modified:
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ExtendedRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/LifecycleRenderer.java

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java?view=diff&rev=449864&r1=449863&r2=449864
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java Mon Sep 25 16:45:36 2006
@@ -34,10 +34,6 @@
 /**
  * Pure abstract base class for all UIX components.
  * @author The Oracle ADF Faces Team
- * @todo Remove UIComponent methods when mock maker walks up hierarchy during 
- *       mock generation of abstract classes to ensure all abstract methods
- *       have mock implementations.
- * @mock
  */
 abstract public class UIXComponent extends UIComponent
 {
@@ -61,117 +57,22 @@
   @SuppressWarnings("unchecked")
   @Override
   public abstract Map getAttributes();
-  
-  @Override
-	public abstract ValueBinding getValueBinding(String name);
-  
-  @Override
-  public abstract void setValueBinding(String name, ValueBinding binding);
-
-  @Override
-  public abstract String getClientId(FacesContext context);
-
-  @Override
-  public abstract String getFamily();
-
-  @Override
-  public abstract String getId();
-
-  @Override
-  public abstract void setId(String id);
-
-  @Override
-  public abstract UIComponent getParent();
-
-  @Override
-  public abstract void setParent(UIComponent parent);
-
-  @Override
-  public abstract boolean isRendered();
-
-  @Override
-  public abstract void setRendered(boolean rendered);
-
-  @Override
-  public abstract String getRendererType();
-
-  @Override
-  public abstract void setRendererType(String rendererType);
-
-  @Override
-  public abstract boolean getRendersChildren();
 
   @SuppressWarnings("unchecked")
   @Override
   public abstract List getChildren();
 
-  @Override
-  public abstract int getChildCount();
-
-  @Override
-  public abstract UIComponent findComponent(String expr);
-
   @SuppressWarnings("unchecked")
   @Override
   public abstract Map getFacets();
 
-  @Override
-  public abstract UIComponent getFacet(String name);
-
   @SuppressWarnings("unchecked")
   @Override
   public abstract Iterator getFacetsAndChildren();
 
-  @Override
-  public abstract void broadcast(FacesEvent event)
-      throws AbortProcessingException;
-
-  @Override
-  public abstract void decode(FacesContext context);
-
-  @Override
-  public abstract void encodeBegin(FacesContext context) throws IOException;
-
-  @Override
-  public abstract void encodeChildren(FacesContext context) throws IOException;
-
-  @Override
-  public abstract void encodeEnd(FacesContext context) throws IOException;
-
-  @Override
-  protected abstract void addFacesListener(FacesListener listener);
-
   @SuppressWarnings("unchecked")
   @Override
   protected abstract FacesListener[] getFacesListeners(Class clazz);
-
-  @Override
-  protected abstract void removeFacesListener(FacesListener listener);
-
-  @Override
-  public abstract void queueEvent(FacesEvent event);
-
-  @Override
-  public abstract void processRestoreState(FacesContext context,
-                                           Object state);
-
-  @Override
-  public abstract void processDecodes(FacesContext context);
-
-  @Override
-  public abstract void processValidators(FacesContext context);
-
-  @Override
-  public abstract void processUpdates(FacesContext context);
-
-  @Override
-  public abstract Object processSaveState(FacesContext context);
-
-  @Override
-  protected abstract FacesContext getFacesContext();
-
-  @Override
-  protected abstract Renderer getRenderer(FacesContext context);
 
   public abstract Object saveState(FacesContext context);
   public abstract void restoreState(FacesContext context, Object state);

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java?view=diff&rev=449864&r1=449863&r2=449864
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java Mon Sep 25 16:45:36 2006
@@ -867,12 +867,11 @@
     // if there is a HierarchyRenderer for this component
     if (renderer != null)
     {
-      renderer.decodeChildren(context, this);
-    }
-    else
-    {
-      decodeChildrenImpl(context);
+      if (renderer.decodeChildren(context, this))
+        return;
     }
+
+    decodeChildrenImpl(context);
   }
 
   /**
@@ -904,12 +903,11 @@
     // if there is a ExtendedRenderer for this component
     if (renderer != null)
     {
-      renderer.validateChildren(context, this);
-    }
-    else
-    {
-      validateChildrenImpl(context);
+      if (renderer.validateChildren(context, this))
+        return;
     }
+
+    validateChildrenImpl(context);
   }
 
   /**
@@ -942,12 +940,11 @@
     // if there is a ExtendedRenderer for this component
     if (renderer != null)
     {
-      renderer.updateChildren(context, this);
-    }
-    else
-    {
-      updateChildrenImpl(context);
+      if (renderer.updateChildren(context, this))
+        return;
     }
+
+    updateChildrenImpl(context);
   }
 
   @SuppressWarnings("unchecked")

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ExtendedRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ExtendedRenderer.java?view=diff&rev=449864&r1=449863&r2=449864
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ExtendedRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ExtendedRenderer.java Mon Sep 25 16:45:36 2006
@@ -49,16 +49,11 @@
    * @param component  the component to render
    */
   @SuppressWarnings("unchecked")
-  public void decodeChildren(
+  public boolean decodeChildren(
     FacesContext context,
     UIComponent  component)
   {
-    // Process all the facets and children of this component
-    Iterator<UIComponent> kids = component.getFacetsAndChildren();
-    while (kids.hasNext())
-    {
-      kids.next().processDecodes(context);
-    }
+    return false;
   }
 
   /**
@@ -68,16 +63,11 @@
    * @param component  the component to render
    */
   @SuppressWarnings("unchecked")
-  public void validateChildren(
+  public boolean validateChildren(
     FacesContext context,
     UIComponent  component)
   {
-    // Process all the facets and children of this component
-    Iterator<UIComponent> kids = component.getFacetsAndChildren();
-    while (kids.hasNext())
-    {
-      kids.next().processValidators(context);
-    }
+    return false;
   }
 
   /**
@@ -87,15 +77,10 @@
    * @param component  the component to render
    */
   @SuppressWarnings("unchecked")
-  public void updateChildren(
+  public boolean updateChildren(
     FacesContext context,
     UIComponent  component)
   {
-    // Process all the facets and children of this component
-    Iterator<UIComponent> kids = component.getFacetsAndChildren();
-    while (kids.hasNext())
-    {
-      kids.next().processUpdates(context);
-    }
+    return false;
   }
 }

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/LifecycleRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/LifecycleRenderer.java?view=diff&rev=449864&r1=449863&r2=449864
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/LifecycleRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/LifecycleRenderer.java Mon Sep 25 16:45:36 2006
@@ -19,41 +19,53 @@
 import javax.faces.context.FacesContext;
 
 /**
- * LifecycleRenderer can be used to enhance the general component renderer
- * contract, by providing control over all child component hierarchy lifecycle
- * phases.
+ * LifecycleRenderer can be used to enhance the general component-renderer
+ * contract, by letting a renderer take over control of
+ * all child component hierarchy lifecycle phases.  In particular,
+ * the renderer can take over the implementation of
+ * UIComponent.processValidators(), processDecode(), and processUpdates().
+ * (This requires that the component be a subclass of UIXComponentBase.)
  *
  * @author The Oracle ADF Faces Team
  */
 public interface LifecycleRenderer
 {
   /**
-   * Decodes a component and its children.
+   * Decodes a component's children.
    *
    * @param context    the Faces context
    * @param component  the component to render
+   * @return whether the lifecycle was processed;  if returns false,
+   *   the component should continue default processing of the
+   *    Apply Request Values phase.
    */
-  public void decodeChildren(
+  public boolean decodeChildren(
     FacesContext context,
     UIComponent  component);
 
   /**
-   * Validates a component and its children.
+   * Validates a component's children.
    *
    * @param context    the Faces context
    * @param component  the component to render
+   * @return whether the lifecycle was processed;  if returns false,
+   *   the component should continue default processing of the
+   *    Process Validation phase.
    */
-  public void validateChildren(
+  public boolean validateChildren(
     FacesContext context,
     UIComponent  component);
 
   /**
-   * Updates a component and its children.
+   * Updates a component's children.
    *
    * @param context    the Faces context
    * @param component  the component to render
+   * @return whether the lifecycle was processed;  if returns false,
+   *   the component should continue default processing of the
+   *    Update Model phase.
    */
-  public void updateChildren(
+  public boolean updateChildren(
     FacesContext context,
     UIComponent  component);
 }