/**
   * Construit la tables des ancrages à partir de la refernce du blason en base
   *
   * @param blason la reference du blason pour récuperer les informations en base
   * @return la tables des ancrages ou null si non trouvé en base
   * @throws SQLException
   */
  public static ConcurrentMap<Integer, Ancrage> getAncragesMap(Blason blason)
      throws ObjectPersistenceException {
    ConcurrentMap<Integer, Ancrage> ancrages = new ConcurrentHashMap<Integer, Ancrage>();

    String sql = "select * from ANCRAGES_BLASONS where NUMBLASON=?"; // $NON-NLS-1$

    PreparedStatement pstmt = null;
    try {
      pstmt = ApplicationCore.dbConnection.prepareStatement(sql);

      pstmt.setInt(1, blason.getNumblason());

      ResultSet rs = pstmt.executeQuery();
      try {
        while (rs.next()) {
          Ancrage ancrage = new Ancrage();
          ancrage.setBlason(blason);

          loadHelper.load(ancrage, rs);

          ancrages.put(ancrage.getEmplacement(), ancrage);
        }
      } finally {
        if (rs != null) rs.close();
      }
    } catch (SQLException e) {
      throw new ObjectPersistenceException(e);
    } finally {
      if (pstmt != null)
        try {
          pstmt.close();
        } catch (SQLException e) {
        }
    }

    if (ancrages.size() == 0) ancrages = null;

    return ancrages;
  }
  private static Entite getEntite(UUID idEntite, ResultSet rs) throws ObjectPersistenceException {
    Entite entite = null;
    if (idEntite != null) entite = EntiteCache.getInstance().get(idEntite);
    else {
      try {
        idEntite = (UUID) rs.getObject("ENTITE.ID_ENTITE"); // $NON-NLS-1$
        if (idEntite == null)
          throw new ObjectPersistenceException(
              "Le resultset doit retourner un ID_ENTITE"); //$NON-NLS-1$
        entite = EntiteCache.getInstance().get(idEntite);
      } catch (SQLException e) {
        throw new ObjectPersistenceException(e);
      }
    }

    if (entite == null) {
      entite = new Entite();

      Map<Class<?>, Map<String, Object>> foreignKeyValue;

      if (rs == null) {
        entite.setIdEntite(idEntite);

        foreignKeyValue = loadHelper.load(entite);
      } else foreignKeyValue = resultSetLoadHelper.load(entite, rs);

      Map<String, Object> fkEntite = foreignKeyValue.get(Entite.class);
      if (fkEntite != null)
        entite.setFederation(
            FederationBuilder.getFederation(
                (Integer) fkEntite.get("NUMFEDERATION"))); // $NON-NLS-1$

      EntiteCache.getInstance().add(entite);
    }

    return entite;
  }