@Override
 public void restoreState(FacesContext context, Object value) {
   Object[] state = (Object[]) value;
   super.restoreState(context, state[0]);
   name = (String) state[1];
   columnName = (String) state[2];
   this.value = state[3];
 }
 @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]);
 }