@Override
 public Object saveState(FacesContext context) {
   Object[] state = new Object[2];
   state[0] = super.saveState(context);
   state[1] = StateHolderUtil.saveList(context, dataProviders);
   return state;
 }
 @Override
 public void restoreState(FacesContext context, Object value) {
   Object[] state = (Object[]) value;
   super.restoreState(context, state[0]);
   this.dataProviders = StateHolderUtil.restoreList(context, getComponent(), state[1]);
 }