/**
   * 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;
  }