use of mom.trd.opentheso.bdd.datas.ConceptGroupLabel in project opentheso by miledrousset.
the class GroupHelper method addGroup.
/**
* Cette fonction permet d'ajouter un group (MT, domaine etc..) avec le
* libellé
*
* @param ds
* @param nodeConceptGroup
* @param urlSite
* @param isArkActive
* @param idUser
* @return
*/
public String addGroup(HikariDataSource ds, NodeGroup nodeConceptGroup, String urlSite, boolean isArkActive, int idUser) {
// "ark:/66666/srvq9a5Ll41sk";
String idConceptGroup = "";
Connection conn;
Statement stmt;
ResultSet resultSet;
nodeConceptGroup.setLexicalValue(new StringPlus().convertString(nodeConceptGroup.getLexicalValue()));
if (nodeConceptGroup.getConceptGroup().getNotation() == null) {
nodeConceptGroup.getConceptGroup().setNotation("");
}
// à faire
try {
// Get connection from pool
conn = ds.getConnection();
try {
stmt = conn.createStatement();
try {
String query = "select max(id) from concept_group";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
resultSet.next();
int idNumeriqueGroup = resultSet.getInt(1);
idConceptGroup = nodeConceptGroup.getConceptGroup().getIdtypecode() + ++idNumeriqueGroup;
/**
* récupération du code Ark via WebServices
*/
String idArk = "";
if (isArkActive) {
ArrayList<DcElement> dcElementsList = new ArrayList<>();
ArkClient ark_Client = new ArkClient();
idArk = ark_Client.getArkId(new FileUtilities().getDate(), urlSite + "?idg=" + idConceptGroup + "&idt=" + nodeConceptGroup.getConceptGroup().getIdthesaurus(), "", "", dcElementsList, // pcrt : p= pactols, crt=code DCMI pour collection
"pcrt");
}
/**
* Ajout des informations dans la table de ConceptGroup
*/
query = "Insert into concept_group values (" + "'" + idConceptGroup + "'" + ",'" + idArk + "'" + ",'" + nodeConceptGroup.getConceptGroup().getIdthesaurus() + "'" + ",'" + nodeConceptGroup.getConceptGroup().getIdtypecode() + "'" + ",'" + nodeConceptGroup.getConceptGroup().getNotation() + "'" + ")";
stmt.executeUpdate(query);
ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
conceptGroupLabel.setIdgroup(idConceptGroup);
conceptGroupLabel.setIdthesaurus(nodeConceptGroup.getConceptGroup().getIdthesaurus());
conceptGroupLabel.setLang(nodeConceptGroup.getIdLang());
conceptGroupLabel.setLexicalvalue(nodeConceptGroup.getLexicalValue());
addGroupTraduction(ds, conceptGroupLabel, idUser);
addGroupHistorique(ds, nodeConceptGroup, urlSite, idArk, idUser, idConceptGroup);
} finally {
stmt.close();
}
} finally {
conn.close();
}
} catch (SQLException sqle) {
// Log exception
log.error("Error while adding ConceptGroup : " + idConceptGroup, sqle);
}
return idConceptGroup;
}
use of mom.trd.opentheso.bdd.datas.ConceptGroupLabel in project opentheso by miledrousset.
the class SelectedTerme method creerTradterme.
/**
* Ajoute une traduction au terme courant et met l'affichage à jour
*/
public void creerTradterme() {
if (valueEdit == null || valueEdit.trim().equals("")) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("sTerme.error3")));
return;
}
boolean tradExist = false;
// c'est le cas ou le concept n'a pas de traduction dans la langue en cours, il faut le mettre a jour dans l'arbre
boolean newTraduction = false;
for (Entry<String, String> e : langues) {
if (e.getKey().equals(langueEdit)) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("sTerme.error4")));
tradExist = true;
break;
}
}
ConceptHelper ch = new ConceptHelper();
TermHelper termHelper = new TermHelper();
if (idT.isEmpty()) {
newTraduction = true;
String tmp = termHelper.getIdTermOfConcept(connect.getPoolConnexion(), idC, idTheso);
if (tmp != null) {
idT = tmp;
}
}
// traduction du domaine
if (type == 1 && !tradExist) {
ConceptGroupLabel cgl = new ConceptGroupLabel();
cgl.setLexicalvalue(valueEdit);
cgl.setIdgroup(idDomaine);
cgl.setIdthesaurus(idTheso);
cgl.setLang(langueEdit);
GroupHelper cgh = new GroupHelper();
if (cgh.isDomainExist(connect.getPoolConnexion(), cgl.getLexicalvalue(), cgl.getIdthesaurus(), cgl.getLang())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("sTerme.error4")));
return;
}
if (!cgh.addGroupTraduction(connect.getPoolConnexion(), cgl, user.getUser().getId())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("Error")));
return;
}
ArrayList<NodeGroupTraductions> tempNGT = new GroupHelper().getGroupTraduction(connect.getPoolConnexion(), idDomaine, idTheso, idlangue);
langues = new ArrayList<>();
HashMap<String, String> tempMapL = new HashMap<>();
for (NodeGroupTraductions ngt : tempNGT) {
tempMapL.put(ngt.getIdLang(), ngt.getTitle());
}
if (newTraduction) {
nom = cgh.getLexicalValueOfGroup(connect.getPoolConnexion(), idDomaine, idTheso, idlangue);
}
langues.addAll(tempMapL.entrySet());
// traduction du TT
} else if (type == 2 && !tradExist) {
Term terme = new Term();
terme.setId_thesaurus(idTheso);
terme.setLang(langueEdit);
terme.setLexical_value(valueEdit);
terme.setId_term(idT);
terme.setContributor(user.getUser().getId());
terme.setCreator(user.getUser().getId());
terme.setSource("");
terme.setStatus("");
if (termHelper.isTermExist(connect.getPoolConnexion(), terme.getLexical_value(), terme.getId_thesaurus(), terme.getLang())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("sTerme.error4")));
return;
}
if (!ch.addTopConceptTraduction(connect.getPoolConnexion(), terme, user.getUser().getId())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("Error")));
return;
}
ArrayList<NodeTermTraduction> tempNTT = termHelper.getTraductionsOfConcept(connect.getPoolConnexion(), idC, idTheso, idlangue);
langues = new ArrayList<>();
HashMap<String, String> tempMapL = new HashMap<>();
for (NodeTermTraduction ntt : tempNTT) {
tempMapL.put(ntt.getLang(), ntt.getLexicalValue());
}
if (newTraduction) {
nom = termHelper.getThisTerm(connect.getPoolConnexion(), idC, idTheso, idlangue).getLexical_value();
}
langues.addAll(tempMapL.entrySet());
// traduction des concepts
} else if (type == 3 && !tradExist) {
Term terme = new Term();
terme.setId_thesaurus(idTheso);
terme.setLang(langueEdit);
terme.setLexical_value(valueEdit);
terme.setId_term(idT);
terme.setContributor(user.getUser().getId());
terme.setCreator(user.getUser().getId());
terme.setSource("");
terme.setStatus("");
if (termHelper.isTermExist(connect.getPoolConnexion(), terme.getLexical_value(), terme.getId_thesaurus(), terme.getLang())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("sTerme.error4")));
return;
}
if (!ch.addConceptTraduction(connect.getPoolConnexion(), terme, user.getUser().getId())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error") + " :", langueBean.getMsg("Error")));
return;
}
ArrayList<NodeTermTraduction> tempNTT = termHelper.getTraductionsOfConcept(connect.getPoolConnexion(), idC, idTheso, idlangue);
langues = new ArrayList<>();
HashMap<String, String> tempMapL = new HashMap<>();
for (NodeTermTraduction ntt : tempNTT) {
tempMapL.put(ntt.getLang(), ntt.getLexicalValue());
}
langues.addAll(tempMapL.entrySet());
if (newTraduction) {
nom = termHelper.getThisTerm(connect.getPoolConnexion(), idC, idTheso, idlangue).getLexical_value();
}
}
langueEdit = "";
valueEdit = "";
if (!tradExist) {
vue.setAddTrad(0);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(langueBean.getMsg("info") + " :", langueBean.getMsg("sTerme.info2")));
}
}
use of mom.trd.opentheso.bdd.datas.ConceptGroupLabel in project opentheso by miledrousset.
the class ImportRdf4jHelper method addGroups.
public void addGroups(rdf4jFileBean fileBean) {
// récupération des groups ou domaine
GroupHelper groupHelper = new GroupHelper();
String idGroup;
for (SKOSResource group : skosXmlDocument.getGroupList()) {
fileBean.setAbs_progress(fileBean.getAbs_progress() + 1);
fileBean.setProgress(fileBean.getAbs_progress() / fileBean.getTotal() * 100);
idGroup = getIdFromUri(group.getUri());
ArrayList<SKOSNotation> notationList = group.getNotationList();
SKOSNotation notation = null;
if (notationList != null && !notationList.isEmpty()) {
notation = notationList.get(0);
}
String notationValue;
if (notation == null) {
notationValue = "";
} else {
notationValue = notation.getNotation();
}
String type;
switch(group.getProperty()) {
case SKOSProperty.Collection:
type = "C";
break;
case SKOSProperty.ConceptGroup:
type = "G";
break;
case SKOSProperty.MicroThesaurus:
default:
type = "MT";
break;
case SKOSProperty.Theme:
type = "T";
break;
}
groupHelper.insertGroup(ds, idGroup, thesaurus.getId_thesaurus(), type, notationValue, adressSite, useArk, idUser);
// sub group
String idSubGroup;
// concept group concept
String idSubConcept;
for (SKOSRelation relation : group.getRelationsList()) {
int prop = relation.getProperty();
switch(prop) {
case SKOSProperty.subGroup:
idSubGroup = getIdFromUri(relation.getTargetUri());
groupHelper.addSubGroup(ds, idGroup, idSubGroup, thesaurus.getId_thesaurus());
break;
case SKOSProperty.member:
// option cochée
/* if(identifierType.equalsIgnoreCase("sans")){
idSubConcept = getIdFromUri(relation.getTargetUri());
} else {*/
// Récupération de l'Id d'origine sauvegardé à l'import (idArk -> identifier)
idSubConcept = getOriginalId(relation.getTargetUri());
// }
groupHelper.addConceptGroupConcept(ds, idGroup, idSubConcept, thesaurus.getId_thesaurus());
memberHashMap.put(relation.getTargetUri(), idGroup);
break;
case SKOSProperty.hasTopConcept:
hasTopConcceptList.add(relation.getTargetUri());
break;
default:
break;
}
}
for (SKOSLabel label : group.getLabelsList()) {
// ajouter les traductions des Groupes
ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
conceptGroupLabel.setIdgroup(idGroup);
conceptGroupLabel.setIdthesaurus(thesaurus.getId_thesaurus());
conceptGroupLabel.setLang(label.getLanguage());
conceptGroupLabel.setLexicalvalue(label.getLabel());
groupHelper.addGroupTraduction(ds, conceptGroupLabel, idUser);
}
}
/*
groupHelper.insertGroup(ds,
idGroupDefault,
thesaurus.getId_thesaurus(),
"MT",
"", //notation
adressSite,
useArk,
idUser);
*/
// Création du domaine par défaut
// ajouter les traductions des Groupes
/*ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
conceptGroupLabel.setIdgroup(idGroupDefault);
conceptGroupLabel.setIdthesaurus(thesaurus.getId_thesaurus());
conceptGroupLabel.setLang(langueSource);
conceptGroupLabel.setLexicalvalue("groupDefault");
groupHelper.addGroupTraduction(ds, conceptGroupLabel, idUser);*/
}
use of mom.trd.opentheso.bdd.datas.ConceptGroupLabel in project opentheso by miledrousset.
the class ImportRdf4jHelper method addGroupDefault.
/**
* Permet d'ajouter le Groupe par défaut pour les concepts qui sont orphelins
* @return
*/
private void addGroupDefault() {
if (defaultGroupToAdd) {
GroupHelper groupHelper = new GroupHelper();
groupHelper.insertGroup(ds, idGroupDefault, thesaurus.getId_thesaurus(), "MT", // notation
"", adressSite, useArk, idUser);
// Création du domaine par défaut
// ajouter les traductions des Groupes
ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
conceptGroupLabel.setIdgroup(idGroupDefault);
conceptGroupLabel.setIdthesaurus(thesaurus.getId_thesaurus());
conceptGroupLabel.setLang(langueSource);
conceptGroupLabel.setLexicalvalue("groupDefault");
groupHelper.addGroupTraduction(ds, conceptGroupLabel, idUser);
}
}
Aggregations