use of mom.trd.opentheso.bdd.helper.nodes.NodeNT in project opentheso by miledrousset.
the class ExportTxtHelper method writeConceptsInfo.
/**
* Permet d'écrire les concepts en bouclant par récursivité pour définir les
* niveaux
*
* @return
*/
private void writeConceptsInfo(String idConcept, String indentation) {
ConceptHelper conceptHelper = new ConceptHelper();
NodeConcept nodeConcept = conceptHelper.getConcept(ds, idConcept, idTheso, selectedLang);
StringPlus stringPlus = new StringPlus();
boolean first = true;
if (nodeConcept == null) {
return;
}
// id numérique séquentiel
txtBuff.append(++number);
txtBuff.append("\t");
// Id_concept
txtBuff.append(idConcept);
txtBuff.append("\t");
// on écrit le Term_concept
txtBuff.append(indentation);
if (nodeConcept.getTerm().getLexical_value().isEmpty()) {
txtBuff.append("(");
txtBuff.append(idConcept);
txtBuff.append(")");
} else {
txtBuff.append(nodeConcept.getTerm().getLexical_value());
}
int tot = StringUtils.countMatches(indentation, "\t");
if (tot < indentationConcept) {
addTabulate(indentationConcept - (tot + 1));
}
if (selectedOptions.contains("occ")) {
// on écrit les occurences
txtBuff.append("\t");
txtBuff.append(totalOfNotices(idConcept));
}
first = true;
if (selectedOptions.contains("nt")) {
// on écrit la relation NT
if (!nodeConcept.getNodeNT().isEmpty()) {
txtBuff.append("\t");
for (NodeNT nodeNT : nodeConcept.getNodeNT()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("NT: ");
txtBuff.append(nodeNT.getTitle());
first = false;
}
}
if (nodeConcept.getNodeNT().size() < indentationNT) {
addTabulate(indentationNT - nodeConcept.getNodeNT().size());
}
}
first = true;
// on écrit la relation UF
if (selectedOptions.contains("uf")) {
if (!nodeConcept.getNodeEM().isEmpty()) {
txtBuff.append("\t");
for (NodeEM nodeEm : nodeConcept.getNodeEM()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("UF: ");
txtBuff.append(nodeEm.getLexical_value());
first = false;
}
}
if (nodeConcept.getNodeEM().size() < indentationUF) {
addTabulate(indentationUF - nodeConcept.getNodeEM().size());
}
}
first = true;
if (selectedOptions.contains("bt")) {
// on écrit la relation TG
if (!nodeConcept.getNodeBT().isEmpty()) {
txtBuff.append("\t");
for (NodeBT nodeBT : nodeConcept.getNodeBT()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("BT: ");
txtBuff.append(nodeBT.getTitle());
first = false;
}
}
if (nodeConcept.getNodeBT().size() < indentationBT) {
addTabulate(indentationBT - nodeConcept.getNodeBT().size());
}
}
first = true;
// on écrit la relation RT
if (selectedOptions.contains("rt")) {
if (!nodeConcept.getNodeRT().isEmpty()) {
txtBuff.append("\t");
for (NodeRT nodeRT : nodeConcept.getNodeRT()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("RT: ");
txtBuff.append(nodeRT.getTitle());
first = false;
}
}
if (nodeConcept.getNodeRT().size() < indentationRT) {
addTabulate(indentationRT - nodeConcept.getNodeRT().size());
}
}
first = true;
// on écrit les Groupes
if (selectedOptions.contains("groups")) {
if (!nodeConcept.getNodeConceptGroup().isEmpty()) {
txtBuff.append("\t");
for (NodeGroup nodeGroup : nodeConcept.getNodeConceptGroup()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("MT: ");
txtBuff.append(nodeGroup.getLexicalValue());
first = false;
}
}
if (nodeConcept.getNodeConceptGroup().size() < indentationGroups) {
addTabulate(indentationGroups - nodeConcept.getNodeConceptGroup().size());
}
}
first = true;
// on écrit les traductions
if (selectedOptions.contains("traductions")) {
if (!nodeConcept.getNodeTermTraductions().isEmpty()) {
txtBuff.append("\t");
for (NodeTermTraduction nodeTermTraduction : nodeConcept.getNodeTermTraductions()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("Tr: ");
txtBuff.append(nodeTermTraduction.getLexicalValue());
txtBuff.append("(");
txtBuff.append(nodeTermTraduction.getLang());
txtBuff.append(")");
first = false;
}
}
if (nodeConcept.getNodeTermTraductions().size() < indentationTraductions) {
addTabulate(indentationTraductions - nodeConcept.getNodeTermTraductions().size());
}
}
first = true;
// on écrit les notes de type Term
if (selectedOptions.contains("notes")) {
if ((!nodeConcept.getNodeNotesTerm().isEmpty()) || (!nodeConcept.getNodeNotesConcept().isEmpty())) {
txtBuff.append("\t");
for (NodeNote nodeNote : nodeConcept.getNodeNotesTerm()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("noteT: ");
txtBuff.append(stringPlus.clearNewLine(nodeNote.getLexicalvalue()));
first = false;
}
for (NodeNote nodeNote : nodeConcept.getNodeNotesConcept()) {
if (!first)
txtBuff.append("\t");
// txtBuff.append("noteC: ");
txtBuff.append(stringPlus.clearNewLine(nodeNote.getLexicalvalue()));
first = false;
}
}
if (nodeConcept.getNodeNotesTerm().size() < indentationNotes) {
addTabulate(indentationNotes - (nodeConcept.getNodeNotesConcept().size() + nodeConcept.getNodeNotesTerm().size()));
}
}
txtBuff.append("\n");
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeNT in project opentheso by miledrousset.
the class RelationsHelper method getListNTOrderByDate.
/**
* cette fonction est pour trier les concept NT par date chronologique
*
* @param ds
* @param idConcept
* @param idThesaurus
* @param idLang
* @return
*/
public ArrayList<NodeNT> getListNTOrderByDate(HikariDataSource ds, String idConcept, String idThesaurus, String idLang) {
Connection conn;
Statement stmt;
ResultSet resultSet;
ArrayList<NodeNT> nodeListNT = new ArrayList<>();
try {
// Get connection from pool
conn = ds.getConnection();
try {
stmt = conn.createStatement();
try {
String query = "select hierarchical_relationship.id_concept2,hierarchical_relationship.role, concept.modified " + " FROM concept, hierarchical_relationship" + " where concept.id_thesaurus = '" + idThesaurus + "'" + " and hierarchical_relationship.id_thesaurus = concept.id_thesaurus " + " and concept.id_concept = hierarchical_relationship.id_concept2 " + " and id_concept1 = '" + idConcept + "'" + " and role LIKE 'NT%'" + " order by modified DESC";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet != null) {
while (resultSet.next()) {
NodeNT nodeNT = new NodeNT();
nodeNT.setIdConcept(resultSet.getString("id_concept2"));
nodeNT.setRole(resultSet.getString("role"));
nodeListNT.add(nodeNT);
}
}
for (NodeNT nodeNT : nodeListNT) {
query = "SELECT term.lexical_value, term.status FROM term, preferred_term" + " WHERE preferred_term.id_term = term.id_term" + " and preferred_term.id_thesaurus = term.id_thesaurus" + " and preferred_term.id_concept ='" + nodeNT.getIdConcept() + "'" + " and term.lang = '" + idLang + "'" + " and term.id_thesaurus = '" + idThesaurus + "'";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet != null) {
resultSet.next();
if (resultSet.getRow() == 0) {
nodeNT.setTitle("");
nodeNT.setStatus("");
} else {
if (resultSet.getString("lexical_value") == null || resultSet.getString("lexical_value").equals("")) {
nodeNT.setTitle("");
} else {
nodeNT.setTitle(resultSet.getString("lexical_value"));
}
if (resultSet.getString("status") == null || resultSet.getString("status").equals("")) {
nodeNT.setStatus("");
} else {
nodeNT.setStatus(resultSet.getString("status"));
}
}
}
}
} finally {
stmt.close();
}
} finally {
conn.close();
}
} catch (SQLException sqle) {
// Log exception
log.error("Error while getting NT of Concept : " + idConcept, sqle);
}
return nodeListNT;
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeNT in project opentheso by miledrousset.
the class SelectedTerme method creerTermeSpe.
/**
* *************************************** CREATION
* ****************************************
*/
/**
* Crée un nouveau terme spécifique au terme sélectionné
*
* @param selecedTerm
* @return true or false
*/
public boolean creerTermeSpe(MyTreeNode selecedTerm) {
ConceptHelper instance = new ConceptHelper();
if (user.nodePreference == null)
return false;
instance.setNodePreference(user.getNodePreference());
// 1 = domaine/Group, 2 = TT (top Term), 3 = Concept/term
if (selecedTerm.isIsSubGroup() || selecedTerm.isIsGroup()) {
// ici c'est le cas d'un Group ou Sous Group, on crée un TT Top Terme
Concept concept = new Concept();
concept.setIdGroup(selecedTerm.getIdConcept());
concept.setIdThesaurus(idTheso);
concept.setStatus("D");
concept.setNotation("");
Term terme = new Term();
terme.setId_thesaurus(idTheso);
terme.setLang(idlangue);
terme.setLexical_value(valueEdit);
terme.setSource("");
terme.setStatus("");
if (instance.addTopConcept(connect.getPoolConnexion(), idTheso, concept, terme, user.getUser().getId()) == null) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", instance.getMessage()));
return false;
}
// instance.insertID_grouptoPermuted(connect.getPoolConnexion(), concept.getIdThesaurus(), concept.getIdConcept());
ConceptHelper ch = new ConceptHelper();
ArrayList<NodeConceptTree> tempNT = ch.getListTopConcepts(connect.getPoolConnexion(), idC, idTheso, idlangue);
termesSpecifique = new ArrayList<>();
HashMap<String, String> tempMap = new HashMap<>();
for (NodeConceptTree nct : tempNT) {
tempMap.put(nct.getIdConcept(), nct.getTitle());
}
termesSpecifique.addAll(tempMap.entrySet());
} else {
Concept concept = new Concept();
concept.setIdGroup(selecedTerm.getIdCurrentGroup());
concept.setIdThesaurus(idTheso);
concept.setStatus("D");
concept.setNotation("");
Term terme = new Term();
terme.setId_thesaurus(idTheso);
terme.setLang(idlangue);
terme.setLexical_value(valueEdit);
terme.setSource("");
terme.setStatus("");
// String idTC = idTopConcept;
String idP = idC;
if (instance.addConcept(connect.getPoolConnexion(), idP, concept, terme, user.getUser().getId()) == null) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", instance.getMessage()));
return false;
}
// instance.insertID_grouptoPermuted(connect.getPoolConnexion(), concept.getIdThesaurus(), concept.getIdConcept());
concept.getUserName();
ArrayList<NodeNT> tempNT = new RelationsHelper().getListNT(connect.getPoolConnexion(), idC, idTheso, idlangue);
termesSpecifique = new ArrayList<>();
HashMap<String, String> tempMap = new HashMap<>();
for (NodeNT nnt : tempNT) {
tempMap.put(nnt.getIdConcept(), nnt.getTitle() + " (" + nnt.getRole() + ")");
}
termesSpecifique.addAll(tempMap.entrySet());
}
vue.setAddTSpe(false);
valueEdit = "";
return true;
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeNT in project opentheso by miledrousset.
the class SelectedTerme method writeTermesSpecifique.
private void writeTermesSpecifique(ArrayList<NodeNT> tempNT) {
for (NodeNT nnt : tempNT) {
HashMap<String, String> tempMap1 = new HashMap<>();
if (nnt.getStatus().equals("hidden")) {
if (nnt.getTitle().isEmpty())
tempMap1.put(nnt.getIdConcept(), "<del>" + nnt.getIdConcept() + " (" + nnt.getRole() + ")" + "</del>");
else
tempMap1.put(nnt.getIdConcept(), "<del>" + nnt.getTitle() + " (" + nnt.getRole() + ")" + "</del>");
} else {
if (nnt.getTitle().isEmpty())
tempMap1.put(nnt.getIdConcept(), nnt.getIdConcept() + " (" + nnt.getRole() + ")");
else
tempMap1.put(nnt.getIdConcept(), nnt.getTitle() + " (" + nnt.getRole() + ")");
}
termesSpecifique.addAll(tempMap1.entrySet());
}
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeNT in project opentheso by miledrousset.
the class SelectedTerme method delBranchGroup.
/**
* (ne marche pas encore !!! en cours) cette fonction permet de supprimer un
* groupe d'une branche
*
* @param delGroup
* @param idConcept
* @return
*/
public boolean delBranchGroup(ArrayList<String> delGroup, String idConcept) {
if (new ConceptHelper().haveChildren(connect.getPoolConnexion(), idTheso, idConcept)) {
List<NodeNT> children = new RelationsHelper().getListNT(connect.getPoolConnexion(), idConcept, idTheso, "");
for (NodeNT nnt : children) {
delBranchGroup(delGroup, nnt.getIdConcept());
}
}
List<NodeBT> parents = new RelationsHelper().getListBT(connect.getPoolConnexion(), idConcept, idTheso, "");
int cpt = 0;
for (String s : delGroup) {
for (NodeBT nbt : parents) {
if (new ConceptHelper().haveThisGroup(connect.getPoolConnexion(), nbt.getIdConcept(), s, idTheso)) {
cpt++;
}
}
if (new ConceptHelper().isTopConcept(connect.getPoolConnexion(), idConcept, idTheso, s)) {
cpt++;
}
if (cpt <= 1) {
new ConceptHelper().deleteGroupOfConcept(connect.getPoolConnexion(), idConcept, s, idTheso, user.getUser().getId());
}
cpt = 0;
}
return true;
}
Aggregations