You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/01/31 23:42:30 UTC

svn commit: r905132 - /myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java

Author: lu4242
Date: Sun Jan 31 22:42:29 2010
New Revision: 905132

URL: http://svn.apache.org/viewvc?rev=905132&view=rev
Log:
MYFACES-2342 New objects added for new api in UIViewRoot, UIComponent and UIComponentBase could be saved and restored

Modified:
    myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java?rev=905132&r1=905131&r2=905132&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/UIViewRoot.java Sun Jan 31 22:42:29 2010
@@ -95,9 +95,6 @@
     // todo: is it right to save the state of _events and _phaseListeners?
     private List<FacesEvent> _events;
 
-    private MethodExpression _beforePhaseListener;
-    private MethodExpression _afterPhaseListener;
-
     /**
      * Map containing view scope objects. 
      * 
@@ -380,37 +377,16 @@
         }
     }
 
-    private boolean _isSetAfterPhaseListener()
-    {
-        Boolean value = (Boolean) getStateHelper().get(PropertyKeys.afterPhaseListenerSet);
-        return value == null ? false : value;
-    }
-
     /**
      * MethodBinding pointing to a method that takes a javax.faces.event.PhaseEvent and returns void, called after every
      * phase except for restore view.
      *
      * @return the new afterPhaseListener value
      */
-    @JSFProperty(stateHolder = true, returnSignature = "void", methodSignature = "javax.faces.event.PhaseEvent", jspName = "afterPhase")
+    @JSFProperty(returnSignature = "void", methodSignature = "javax.faces.event.PhaseEvent", jspName = "afterPhase")
     public MethodExpression getAfterPhaseListener()
     {
-        if (_afterPhaseListener != null)
-        {
-            return _afterPhaseListener;
-        }
-        ValueExpression expression = getValueExpression("afterPhaseListener");
-        if (expression != null)
-        {
-            return (MethodExpression)expression.getValue(getFacesContext().getELContext());
-        }
-        return null;
-    }
-
-    private boolean _isSetBeforePhaseListener()
-    {
-        Boolean value = (Boolean) getStateHelper().get(PropertyKeys.beforePhaseListenerSet);
-        return value == null ? false : value;
+        return (MethodExpression) getStateHelper().eval(PropertyKeys.afterPhaseListener);
     }
 
     /**
@@ -419,19 +395,10 @@
      *
      * @return the new beforePhaseListener value
      */
-    @JSFProperty(stateHolder = true, returnSignature = "void", methodSignature = "javax.faces.event.PhaseEvent", jspName = "beforePhase")
+    @JSFProperty(returnSignature = "void", methodSignature = "javax.faces.event.PhaseEvent", jspName = "beforePhase")
     public MethodExpression getBeforePhaseListener()
     {
-        if (_beforePhaseListener != null)
-        {
-            return _beforePhaseListener;
-        }
-        ValueExpression expression = getValueExpression("beforePhaseListener");
-        if (expression != null)
-        {
-            return (MethodExpression)expression.getValue(getFacesContext().getELContext());
-        }
-        return null;
+        return (MethodExpression) getStateHelper().eval(PropertyKeys.beforePhaseListener);
     }
 
     /**
@@ -1067,11 +1034,7 @@
      */
     public void setBeforePhaseListener(MethodExpression beforePhaseListener)
     {
-        this._beforePhaseListener = beforePhaseListener;
-        if (initialStateMarked())
-        {
-            getStateHelper().put(PropertyKeys.beforePhaseListenerSet,Boolean.TRUE);
-        }
+        getStateHelper().put(PropertyKeys.beforePhaseListener, beforePhaseListener);
     }
 
     /**
@@ -1082,17 +1045,13 @@
      */
     public void setAfterPhaseListener(MethodExpression afterPhaseListener)
     {
-        this._afterPhaseListener = afterPhaseListener;
-        if (initialStateMarked())
-        {
-            getStateHelper().put(PropertyKeys.afterPhaseListenerSet,Boolean.TRUE);
-        }
+        getStateHelper().put(PropertyKeys.afterPhaseListener, afterPhaseListener);
     }
     
     enum PropertyKeys
     {
-         afterPhaseListenerSet
-        , beforePhaseListenerSet
+         afterPhaseListener
+        , beforePhaseListener
         , phaseListeners
         , locale
         , renderKitId
@@ -1100,112 +1059,28 @@
         , uniqueIdCounter
     }
     
-    public void markInitialState()
-    {
-        super.markInitialState();
-        if (_afterPhaseListener != null && 
-            _afterPhaseListener instanceof PartialStateHolder)
-        {
-            ((PartialStateHolder)_afterPhaseListener).markInitialState();
-        }
-        if (_beforePhaseListener != null && 
-            _beforePhaseListener instanceof PartialStateHolder)
-        {
-            ((PartialStateHolder)_beforePhaseListener).markInitialState();
-        }
-    }
-    
-    public void clearInitialState()
-    {
-        if (initialStateMarked())
-        {
-            super.clearInitialState();
-            if (_afterPhaseListener != null && 
-                _afterPhaseListener instanceof PartialStateHolder)
-            {
-                ((PartialStateHolder)_afterPhaseListener).clearInitialState();
-            }
-            if (_beforePhaseListener != null && 
-                _beforePhaseListener instanceof PartialStateHolder)
-            {
-                ((PartialStateHolder)_beforePhaseListener).clearInitialState();
-            }
-        }
-    }
-
     @Override
     public Object saveState(FacesContext facesContext)
     {
         if (initialStateMarked())
         {
-            boolean nullDelta = true;
             Object parentSaved = super.saveState(facesContext);
-            Object afterPhaseListenerSaved = null;
-            if (!_isSetAfterPhaseListener() &&
-                _afterPhaseListener != null && _afterPhaseListener instanceof PartialStateHolder)
-            {
-                //Delta
-                StateHolder holder = (StateHolder) _afterPhaseListener;
-                if (!holder.isTransient())
-                {
-                    Object attachedState = holder.saveState(facesContext);
-                    if (attachedState != null)
-                    {
-                        nullDelta = false;
-                    }
-                    afterPhaseListenerSaved = new _AttachedDeltaWrapper(_afterPhaseListener.getClass(),
-                        attachedState);
-                }
-            }
-            else if (_isSetAfterPhaseListener() || _afterPhaseListener != null)
-            {
-                //Full
-                afterPhaseListenerSaved = saveAttachedState(facesContext,_afterPhaseListener);
-                nullDelta = false;
-            }        
-            Object beforePhaseListenerSaved = null;
-            if (!_isSetBeforePhaseListener() &&
-                _beforePhaseListener != null && _beforePhaseListener instanceof PartialStateHolder)
-            {
-                //Delta
-                StateHolder holder = (StateHolder) _beforePhaseListener;
-                if (!holder.isTransient())
-                {
-                    Object attachedState = holder.saveState(facesContext);
-                    if (attachedState != null)
-                    {
-                        nullDelta = false;
-                    }
-                    beforePhaseListenerSaved = new _AttachedDeltaWrapper(_beforePhaseListener.getClass(),
-                        attachedState);
-                }
-            }
-            else if (_isSetBeforePhaseListener() || _beforePhaseListener != null)
-            {
-                //Full
-                beforePhaseListenerSaved = saveAttachedState(facesContext,_beforePhaseListener);
-                nullDelta = false;
-            }        
-            if (parentSaved == null && _viewScope == null && nullDelta)
+            if (parentSaved == null && _viewScope == null)
             {
                 //No values
                 return null;
             }
             
-            Object[] values = new Object[4];
+            Object[] values = new Object[2];
             values[0] = parentSaved;
-            values[1] = afterPhaseListenerSaved;
-            values[2] = beforePhaseListenerSaved;
-            values[3] = saveAttachedState(facesContext,_viewScope);
+            values[1] = saveAttachedState(facesContext,_viewScope);
             return values;
         }
         else
         {
-            Object[] values = new Object[4];
+            Object[] values = new Object[2];
             values[0] = super.saveState(facesContext);
-            values[1] = saveAttachedState(facesContext,_afterPhaseListener);
-            values[2] = saveAttachedState(facesContext,_beforePhaseListener);
-            values[3] = saveAttachedState(facesContext,_viewScope);
+            values[1] = saveAttachedState(facesContext,_viewScope);
             return values;
         }
     }
@@ -1221,27 +1096,7 @@
         
         Object[] values = (Object[])state;
         super.restoreState(facesContext,values[0]);
-        if (values[1] instanceof _AttachedDeltaWrapper)
-        {
-            //Delta
-            ((StateHolder)_afterPhaseListener).restoreState(facesContext, ((_AttachedDeltaWrapper) values[1]).getWrappedStateObject());
-        }
-        else
-        {
-            //Full
-            _afterPhaseListener = (javax.el.MethodExpression) restoreAttachedState(facesContext,values[1]);
-        }         
-        if (values[2] instanceof _AttachedDeltaWrapper)
-        {
-            //Delta
-            ((StateHolder)_beforePhaseListener).restoreState(facesContext, ((_AttachedDeltaWrapper) values[2]).getWrappedStateObject());
-        }
-        else
-        {
-            //Full
-            _beforePhaseListener = (javax.el.MethodExpression) restoreAttachedState(facesContext,values[2]);
-        }
-        _viewScope = (Map<String, Object>) restoreAttachedState(facesContext, values[3]);
+        _viewScope = (Map<String, Object>) restoreAttachedState(facesContext, values[1]);
     }
     
     public List<SystemEventListener> getViewListenersForEventClass(Class<? extends SystemEvent> systemEvent)