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);
}
}
}