use of mom.trd.opentheso.bdd.helper.nodes.NodeBT 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.NodeBT in project opentheso by miledrousset.
the class CompareConceptTest method testExportAllDatas.
/**
* Test of Get datas for SiteMap.
*/
@org.junit.Test
public void testExportAllDatas() {
ConnexionTest connexionTest = new ConnexionTest();
HikariDataSource conn = connexionTest.getConnexionPool();
String idTheso = "TH_1";
String idLang = "fr";
String idGroup = "6";
ConceptHelper conceptHelper = new ConceptHelper();
StringPlus stringPlus = new StringPlus();
NodeConcept nodeConcept;
SearchHelper searchHelper = new SearchHelper();
ArrayList<NodeSearch> nodeSearchs;
StringBuilder stringBuilder = new StringBuilder();
// lecture du fichier tabulé /Users/Miled/
String path = "/Users/Miled/Desktop/inist.csv";
FileInputStream file = readFile(path);
if (file == null)
return;
String line;
String lineTmp;
String[] lineOrigine;
boolean first = true;
stringBuilder.append("Numéro BDD\tnom d'origine\tnom PACTOLS\tId PACTOLS\tURL Ark\tDéfinition\tTerme générique\tSynonyme\n");
BufferedReader bf = new BufferedReader(new InputStreamReader(file));
try {
while ((line = bf.readLine()) != null) {
lineOrigine = line.split("\t");
if (lineOrigine.length < 2)
continue;
lineTmp = removeStopWords(lineOrigine[1]);
nodeSearchs = searchHelper.searchTerm(conn, lineTmp, idLang, idTheso, idGroup, 2, false);
stringBuilder.append(lineOrigine[0]);
stringBuilder.append("\t");
stringBuilder.append(lineOrigine[1]);
// stringBuilder.append(" #### ");
stringBuilder.append("\t");
first = true;
for (NodeSearch nodeSearch : nodeSearchs) {
if (!first) {
// stringBuilder.append(" $$$$ ");
stringBuilder.append("\n");
stringBuilder.append("\t");
stringBuilder.append("\t");
}
stringBuilder.append(nodeSearch.getLexical_value());
stringBuilder.append("\t");
stringBuilder.append(nodeSearch.getIdConcept());
// récupération des données d'un Concept
nodeConcept = conceptHelper.getConcept(conn, nodeSearch.getIdConcept(), idTheso, idLang);
// URL
stringBuilder.append("\t");
if (nodeConcept.getConcept().getIdArk() != null || !nodeConcept.getConcept().getIdArk().isEmpty()) {
stringBuilder.append("http://ark.frantiq.fr/ark:/");
stringBuilder.append(nodeConcept.getConcept().getIdArk());
}
// définition
stringBuilder.append("\t");
for (NodeNote nodeNote : nodeConcept.getNodeNotesTerm()) {
if (nodeNote.getNotetypecode().equalsIgnoreCase("definition"))
stringBuilder.append(stringPlus.clearNewLine(nodeNote.getLexicalvalue()));
}
// BT
stringBuilder.append("\t");
for (NodeBT nodeBT : nodeConcept.getNodeBT()) {
stringBuilder.append(nodeBT.getTitle());
}
// UF
stringBuilder.append("\t");
for (NodeEM nodeEM : nodeConcept.getNodeEM()) {
stringBuilder.append(nodeEM.getLexical_value());
}
first = false;
}
System.out.println(stringBuilder.toString());
stringBuilder.delete(0, stringBuilder.capacity());
}
} catch (IOException ex) {
Logger.getLogger(CompareConceptTest.class.getName()).log(Level.SEVERE, null, ex);
}
// ArrayList<NodeConceptArkId> allIds = conceptHelper.getAllConceptArkIdOfThesaurus(conn, idTheso);
// StringBuilder file = new StringBuilder();
/* ArrayList<String> allIds = conceptHelper.getAllIdConceptOfThesaurusByGroup(conn, idTheso, idGroup);
for (String idConcept : allIds) {
nodeConcept = conceptHelper.getConcept(conn, idConcept, idTheso, idLang);
System.out.println("idConcept = " + idConcept + " " + nodeConcept.getTerm().getLexical_value());
}*/
conn.close();
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeBT 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;
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeBT in project opentheso by miledrousset.
the class SelectedTerme method delSpe.
// ancien code qui ne marche pas
/*
if(termeGenerique.size() == 1) { // Le concept devient orphelin
new ConceptHelper().deleteConceptFromTable(connect.getPoolConnexion(), idC, idTheso);
new OrphanHelper().addNewOrphan(connect.getPoolConnexion(), idC, idTheso);
if(new GroupHelper().isIdOfGroup(connect.getPoolConnexion(), id, idTheso)) {
new RelationsHelper().setRelationTopConcept(connect.getPoolConnexion(), idC, idTheso, id, false);
} else {
new RelationsHelper().deleteRelationBT(connect.getPoolConnexion(), idC, idTheso, id);
}
termeGenerique = new ArrayList<>();
} else {
// On supprime l'ancien domaines si besoin
ArrayList<String> groupBT;
if(type == 2) {
groupBT = new ArrayList<>();
groupBT.add(id);
} else {
groupBT = new ConceptHelper().getListGroupIdOfConcept(connect.getPoolConnexion(), id, idTheso);
}
ArrayList<String> groupCurrent = new ConceptHelper().getListGroupIdOfConcept(connect.getPoolConnexion(), idC, idTheso);
ArrayList<String> delGroup = new ArrayList<>();
for(String s : groupBT) {
if(groupCurrent.contains(s)) {
delGroup.add(s);
}
}
delBranchGroup(delGroup, idC);
if(new GroupHelper().isIdOfGroup(connect.getPoolConnexion(), id, idTheso)) {
new RelationsHelper().setRelationTopConcept(connect.getPoolConnexion(), idC, idTheso, id, false);
} else {
new RelationsHelper().deleteRelationBT(connect.getPoolConnexion(), idC, idTheso, id);
}
termeGenerique = new ArrayList<>();
majTGen();
}
vue.setAddTGen(false);
}*/
/**
* Supprime les relations qui lient le concept au Concept père
*
* @param id l'identifiant du fils
* @return true or false
*/
public boolean delSpe(String id) {
// On regarde si le fils devient orphelin
ArrayList<Entry<String, String>> sonFathers = new ArrayList<>();
// On ajoute le domaine
ArrayList<String> listIdGroup = new ConceptHelper().getListGroupParentIdOfConcept(connect.getPoolConnexion(), id, idTheso);
HashMap<String, String> tempMap1 = new HashMap<>();
for (String group : listIdGroup) {
tempMap1.put(group, new GroupHelper().getLexicalValueOfGroup(connect.getPoolConnexion(), group, idTheso, idlangue));
}
sonFathers.addAll(tempMap1.entrySet());
ArrayList<NodeBT> tempBT = new RelationsHelper().getListBT(connect.getPoolConnexion(), id, idTheso, idlangue);
HashMap<String, String> tempMap2 = new HashMap<>();
for (NodeBT nbt : tempBT) {
tempMap2.put(nbt.getIdConcept(), nbt.getTitle());
}
sonFathers.addAll(tempMap2.entrySet());
if (sonFathers.size() <= 1) {
try {
Connection conn = connect.getPoolConnexion().getConnection();
conn.setAutoCommit(false);
if (!new ConceptHelper().deleteConceptFromTable(conn, id, idTheso, user.getUser().getId())) {
conn.rollback();
conn.close();
return false;
}
if (!new RelationsHelper().deleteRelationBT(conn, id, idTheso, idC, user.getUser().getId())) {
conn.rollback();
conn.close();
return false;
}
if (!new OrphanHelper().addNewOrphan(conn, id, idTheso)) {
conn.rollback();
conn.close();
return false;
}
conn.commit();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(SelectedTerme.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
} else {
try {
Connection conn = connect.getPoolConnexion().getConnection();
conn.setAutoCommit(false);
// On supprime l'ancien domaines si besoin
ArrayList<String> groupCurrent;
if (type == 1) {
groupCurrent = new ArrayList<>();
groupCurrent.add(idC);
} else {
groupCurrent = new ConceptHelper().getListGroupIdOfConcept(connect.getPoolConnexion(), idC, idTheso);
}
ArrayList<String> groupNT = new ConceptHelper().getListGroupIdOfConcept(connect.getPoolConnexion(), id, idTheso);
ArrayList<String> delGroup = new ArrayList<>();
for (String s : groupCurrent) {
if (groupNT.contains(s)) {
delGroup.add(s);
}
}
if (!delBranchGroup(delGroup, id)) {
conn.rollback();
conn.close();
return false;
}
if (type == 1) {
if (!new RelationsHelper().setRelationTopConcept(conn, id, idTheso, idC, false, user.getUser().getId())) {
conn.rollback();
conn.close();
return false;
}
} else if (!new RelationsHelper().deleteRelationBT(conn, id, idTheso, idC, user.getUser().getId())) {
conn.rollback();
conn.close();
return false;
}
conn.commit();
conn.close();
ArrayList<NodeNT> tempNT = new RelationsHelper().getListNT(connect.getPoolConnexion(), idC, idTheso, idlangue);
termesSpecifique = new ArrayList<>();
HashMap<String, String> tempMap3 = new HashMap<>();
for (NodeNT nnt : tempNT) {
tempMap3.put(nnt.getIdConcept(), nnt.getTitle() + " (" + nnt.getRole() + ")");
}
termesSpecifique.addAll(tempMap3.entrySet());
} catch (SQLException ex) {
Logger.getLogger(SelectedTerme.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
return true;
}
use of mom.trd.opentheso.bdd.helper.nodes.NodeBT in project opentheso by miledrousset.
the class SelectedTerme method majTGen.
private void majTGen() {
termeGenerique = new ArrayList<>();
/*// On ajoute le domaine
ArrayList<String> listIdGroup = new ConceptHelper().getListGroupIdOfConcept(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")) {
if (nbt.getTitle().isEmpty())
tempMap2.put(nbt.getIdConcept(), "<del>" + nbt.getIdConcept() + " (" + nbt.getRole() + ")" + "</del>");
else
tempMap2.put(nbt.getIdConcept(), "<del>" + nbt.getTitle() + " (" + nbt.getRole() + ")" + "</del>");
} else {
if (nbt.getTitle().isEmpty())
tempMap2.put(nbt.getIdConcept(), nbt.getIdConcept() + " (" + nbt.getRole() + ")");
else
tempMap2.put(nbt.getIdConcept(), nbt.getTitle() + " (" + nbt.getRole() + ")");
}
termeGenerique.addAll(tempMap2.entrySet());
}
}
Aggregations