public void restoreState()

in myfaces-html5-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java [417:465]


    public void restoreState(FacesContext context, Object state) {
        if (state == null)
            return;

        Object[] serializedState = (Object[]) state;

        for (int cnt = 0; cnt < serializedState.length; cnt += 2) {
            Serializable key = (Serializable) serializedState[cnt];

            Object savedValue = UIComponentBase.restoreAttachedState(context,
                                                                     serializedState[cnt + 1]);

            if (isInitialStateMarked()) {
                if (savedValue instanceof InternalDeltaListMap) {
                    for (Map.Entry<Object, Boolean> mapEntry : ((Map<Object, Boolean>) savedValue)
                            .entrySet()) {
                        boolean addOrRemove = mapEntry.getValue();
                        if (addOrRemove) {
                            //add
                            this.add(key, mapEntry.getKey());
                        } else {
                            //remove
                            this.remove(key, mapEntry.getKey());
                        }
                    }
                } else if (savedValue instanceof InternalMap) {
                    for (Map.Entry<String, Object> mapEntry : ((Map<String, Object>) savedValue)
                            .entrySet()) {
                        this.put(key, mapEntry.getKey(), mapEntry.getValue());
                    }
                }
                /*
                else if (savedValue instanceof _AttachedDeltaWrapper)
                {
                    _AttachedStateWrapper wrapper = (_AttachedStateWrapper) savedValue;
                    //Restore delta state
                    ((PartialStateHolder)_fullState.get(key)).restoreState(context, wrapper.getWrappedStateObject());
                    //Add this key as StateHolder key
                    _stateHolderKeys.add(key);
                }
                */
                else {
                    put(key, savedValue);
                }
            } else {
                put(key, savedValue);
            }
        }
    }