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