Ciao,
stò realizzando un progetto universitario insieme a dei colleghi di corso e ci stiamo dividendo il lavoro. Mi è stata passata una classe che implementa un oggetto DAO che contiene questo metodo e non riesco a capire cosa faccia esattamente. Dal momento che devo usarlo vorrei capire bene cosa mi restituisce e vi prego di darmi una mano (è la mia prima vera esperienza con Java che vada oltre i classici esercizietti):
Il metodo in questione è questo:
Da quello che vedo inizialmente si crea un array list di oggetti hash map...mmm personalmente non ho mai usato le hash map fino ad ora, da quello che ho capito sono oggetti che contengono tuple <chiave, valore>codice:public List<HashMap> getRangePoi(float lon, float lat, int range){ List<HashMap> pois =new ArrayList<HashMap>(); StringBuffer query = new StringBuffer(); query.append("SELECT poi_id,alt,lat,lon,nome,tipologia,wikiLink, 3956 * 2 * ASIN(SQRT( "); query.append("POWER(SIN((:lat - abs(dest.lat)) * pi()/180 / 2), "); query.append("2) + COS(:lat * pi()/180 ) * COS(abs(dest.lat) * "); query.append("pi()/180) * POWER(SIN((:lon - dest.lon) * "); query.append("pi()/180 / 2), 2) )) as distance "); query.append("FROM points_of_interest dest "); query.append("having distance < :range "); query.append("ORDER BY distance limit 10 "); List<Object[]>res=sessionFactory.getCurrentSession().createSQLQuery(query.toString()) .setParameter("lat", lat) .setParameter("lon", lon) .setParameter("range", range) .list(); pois=createMapPOI(res); return pois;
Poi crea uno StringBuffer che da quello che ho capito è semplicemente una stringa variabile nel contenuto e nelle dimensioni...in pratica una stringa dove posso sbatterci dentro quello che mi serve facendola accrescere nel tempo...
Poi fà una query immensa in SQL nativo usando la queryappen semplicemente per dividere le varie righe...credo proprio che il risultato di questa query venga messo di volta in volta nello string buffer query anche se non capisco dove gli dice di metterlo là ma a senso è così che funziona (se mi illuminate anche su questa cosa)
Poi la parte dopo è molto più oscura per me e non riesco a capire cosa faccia e di fatto cosa contiene e come è strutturata la List<HashMap> pois che viene ritornata...
La classe funziona, è un DAO usato da un web service e mi serve per capire poi cosa ritorna il web service per scrivere un client che usa i dati reperiti dal WS...
Qualcuno di voi sà aiutarmi?
Grazie
Andrea

Rispondi quotando