public AmministrazioneVO updateAmministrazione(AmministrazioneVO ammVO) {
    try {

      return organizzazioneDAO.updateAmministrazione(ammVO);
    } catch (DataException de) {
      logger.error("updateAmministrazione failed.", de);
    }
    return null;
  }
  public ArrayList getIdentificativiUffici(int utenteId) {
    ArrayList ufficiIds = new ArrayList();
    try {
      ufficiIds = organizzazioneDAO.getIdentificativiUffici(utenteId);

    } catch (DataException de) {
      logger.error("getUfficiUtenteIds failed.", de);
    }
    return ufficiIds;
  }
  public AmministrazioneVO getAmministrazione() {
    // utilizzato
    AmministrazioneVO amministrazioneVO = null;

    try {
      amministrazioneVO = organizzazioneDAO.getAmministrazione();
    } catch (DataException de) {
      logger.error("", de);
    }
    return amministrazioneVO;
  }
  public void loadOrganizzazione() {
    Organizzazione org = null;
    AreaOrganizzativa aoo = null;
    RegistroDelegate registroDelegate = null;

    try {
      org = Organizzazione.getInstance();
      org.resetOrganizzazione();
      org.setValueObject(organizzazioneDAO.getAmministrazione());
      Collection areeOrganizzative = AreaOrganizzativaDelegate.getInstance().getAreeOrganizzative();
      for (Iterator i = areeOrganizzative.iterator(); i.hasNext(); ) {
        aoo = new AreaOrganizzativa((AreaOrganizzativaVO) i.next());
        org.addAreaOrganizzativa(aoo);
      }
      for (Iterator i = organizzazioneDAO.getUffici().iterator(); i.hasNext(); ) {
        UfficioVO uff = (UfficioVO) i.next();
        aoo = org.getAreaOrganizzativa(uff.getAooId());
        org.addUfficio(new Ufficio(uff));
      }

      Collection uffici = org.getUffici();
      for (Iterator i = uffici.iterator(); i.hasNext(); ) {
        Ufficio ui = (Ufficio) i.next();
        int parentId = ui.getValueObject().getParentId();
        if (parentId == 0) {
          aoo = org.getAreaOrganizzativa(ui.getValueObject().getAooId());
          aoo.setUfficioCentrale(ui);
        } else {
          for (Iterator j = uffici.iterator(); j.hasNext(); ) {
            Ufficio uj = (Ufficio) j.next();
            int id = uj.getValueObject().getId().intValue();
            if (id == parentId) {
              ui.setUfficioDiAppartenenza(uj);
              break;
            }
          }
        }
      }
      Collection utenti = UtenteDelegate.getInstance().getUtenti();
      for (Iterator u = utenti.iterator(); u.hasNext(); ) {
        UtenteVO uteVO = (UtenteVO) u.next();

        Utente ute = new Utente(uteVO);
        org.addUtente(ute);
        Collection ids = getIdentificativiUffici(uteVO.getId().intValue());
        for (Iterator i = ids.iterator(); i.hasNext(); ) {
          int uffId = ((Integer) i.next()).intValue();
          int uteId = ute.getValueObject().getId().intValue();
          // logger.info(org.getUfficio(uffId));
          if (org.getUfficio(uffId).getValueObject().getParentId() > 0) {
            org.getUfficio(uffId).addUtente(ute);
            if (isUtenteReferenteUfficio(uffId, uteId))
              org.getUfficio(uffId).addUtenteReferente(ute);
          }
        }
      }
      registroDelegate = RegistroDelegate.getInstance();
      for (Iterator i = registroDelegate.getRegistri().iterator(); i.hasNext(); ) {
        org.addRegistro((RegistroVO) i.next());
      }
    } catch (DataException de) {
      logger.error("OrganizzazioneDelegate failed.", de);
    } catch (Exception e) {
      logger.error("OrganizzazioneDelegate failed.", e);
    }
  }