use of mom.trd.opentheso.bdd.helper.nodes.NodeBT in project opentheso by miledrousset.
the class SelectedTerme method majGroupTGen.
private void majGroupTGen() {
termeGenerique = new ArrayList<>();
// On ajoute le domaine
ArrayList<String> listIdGroup = new ConceptHelper().getListGroupParentIdOfGroup(connect.getPoolConnexion(), idC, idTheso);
HashMap<String, String> tempMap = new HashMap<>();
/*for (String group : listIdGroup) {
tempMap.put(group, new GroupHelper().getLexicalValueOfGroup(connect.getPoolConnexion(), group, idTheso, idlangue));
}
termeGenerique.addAll(tempMap.entrySet());*/
ArrayList<NodeBT> tempBT = new RelationsHelper().getListBT(connect.getPoolConnexion(), idC, idTheso, idlangue);
for (NodeBT nbt : tempBT) {
HashMap<String, String> tempMap2 = new HashMap<>();
if (nbt.getStatus().equals("hidden")) {
tempMap2.put(nbt.getIdConcept(), "<del>" + nbt.getTitle() + " (" + nbt.getRole() + ")" + "</del>");
} else {
tempMap2.put(nbt.getIdConcept(), nbt.getTitle() + " (" + nbt.getRole() + ")");
}
termeGenerique.addAll(tempMap2.entrySet());
}
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeBT in project opentheso by miledrousset.
the class ConceptHelper method getConcept.
/**
* Cette fonction permet de récupérer toutes les informations concernant un
* Concept par son id et son thésaurus et la langue
*
* @param ds
* @param idConcept
* @param idThesaurus
* @param idLang
* @return Objet class NodeConcept
*/
public NodeConcept getConcept(HikariDataSource ds, String idConcept, String idThesaurus, String idLang) {
NodeConcept nodeConcept = new NodeConcept();
// récupération des BT
RelationsHelper relationsHelper = new RelationsHelper();
ArrayList<NodeBT> nodeListBT = relationsHelper.getListBT(ds, idConcept, idThesaurus, idLang);
nodeConcept.setNodeBT(nodeListBT);
// récupération du Concept
Concept concept = getThisConcept(ds, idConcept, idThesaurus);
nodeConcept.setConcept(concept);
// récupération du Terme
TermHelper termHelper = new TermHelper();
Term term = termHelper.getThisTerm(ds, idConcept, idThesaurus, idLang);
nodeConcept.setTerm(term);
// récupération des termes spécifiques
nodeConcept.setNodeNT(relationsHelper.getListNT(ds, idConcept, idThesaurus, idLang));
// récupération des termes associés
nodeConcept.setNodeRT(relationsHelper.getListRT(ds, idConcept, idThesaurus, idLang));
// récupération des Non Prefered Term
nodeConcept.setNodeEM(termHelper.getNonPreferredTerms(ds, term.getId_term(), idThesaurus, idLang));
// récupération des traductions
nodeConcept.setNodeTermTraductions(termHelper.getTraductionsOfConcept(ds, idConcept, idThesaurus, idLang));
NoteHelper noteHelper = new NoteHelper();
// récupération des notes du Concept
nodeConcept.setNodeNotesConcept(noteHelper.getListNotesConcept(ds, idConcept, idThesaurus, idLang));
// récupération des notes du term
nodeConcept.setNodeNotesTerm(noteHelper.getListNotesTerm(ds, term.getId_term(), idThesaurus, idLang));
GroupHelper groupHelper = new GroupHelper();
nodeConcept.setNodeConceptGroup(groupHelper.getListGroupOfConcept(ds, idThesaurus, idConcept, idLang));
return nodeConcept;
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeBT in project opentheso by miledrousset.
the class RelationsHelper method getListBT.
/**
* Cette fonction permet de récupérer les termes génériques d'un concept
*
* @param ds
* @param idConcept
* @param idThesaurus
* @param idLang
* @return Objet class Concept
*/
public ArrayList<NodeBT> getListBT(HikariDataSource ds, String idConcept, String idThesaurus, String idLang) {
Connection conn;
Statement stmt;
ResultSet resultSet;
ArrayList<NodeBT> nodeListBT = null;
try {
// Get connection from pool
conn = ds.getConnection();
try {
stmt = conn.createStatement();
try {
String query = "SELECT hierarchical_relationship.id_concept2," + " concept.status, hierarchical_relationship.role FROM hierarchical_relationship," + " concept WHERE " + " concept.id_thesaurus = hierarchical_relationship.id_thesaurus" + " AND " + " concept.id_concept = hierarchical_relationship.id_concept2" + " AND" + " hierarchical_relationship.id_thesaurus = '" + idThesaurus + "'" + " AND" + " hierarchical_relationship.id_concept1 = '" + idConcept + "'" + " AND" + " hierarchical_relationship.role LIKE 'BT%'";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet != null) {
nodeListBT = new ArrayList<>();
while (resultSet.next()) {
NodeBT nodeBT = new NodeBT();
nodeBT.setIdConcept(resultSet.getString("id_concept2"));
nodeBT.setRole(resultSet.getString("role"));
nodeBT.setStatus(resultSet.getString("status"));
nodeListBT.add(nodeBT);
}
}
for (NodeBT nodeBT : nodeListBT) {
query = "SELECT term.lexical_value, term.status FROM term, preferred_term" + " WHERE preferred_term.id_term = term.id_term" + " and preferred_term.id_concept ='" + nodeBT.getIdConcept() + "'" + " and term.lang = '" + idLang + "'" + " and term.id_thesaurus = '" + idThesaurus + "'" + " order by upper(unaccent_string(lexical_value)) DESC";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet != null) {
resultSet.next();
if (resultSet.getRow() == 0) {
nodeBT.setTitle("");
nodeBT.setStatus("");
} else {
if (resultSet.getString("lexical_value") == null || resultSet.getString("lexical_value").equals("")) {
nodeBT.setTitle("");
} else {
nodeBT.setTitle(resultSet.getString("lexical_value"));
}
if (resultSet.getString("status") == null || resultSet.getString("status").equals("")) {
nodeBT.setStatus("");
} else {
nodeBT.setStatus(resultSet.getString("status"));
}
}
}
}
} finally {
stmt.close();
}
} finally {
conn.close();
}
} catch (SQLException sqle) {
// Log exception
log.error("Error while getting BT of Concept : " + idConcept, sqle);
}
Collections.sort(nodeListBT);
return nodeListBT;
}
Aggregations