use of mom.trd.opentheso.bdd.helper.ThesaurusHelper in project opentheso by miledrousset.
the class WriteSkosBDD method writeThesaurus.
public void writeThesaurus(SKOSXmlDocument skosDocument, String dateFormat, boolean useArk, String adressSite, int idUser, String langueSource) {
SKOSConceptScheme conceptScheme = skosDocument.getConceptScheme();
ArrayList<SKOSTopConcept> topConceptsList = conceptScheme.getTopConceptsList();
ArrayList<SKOSResource> resourcesList = skosDocument.getResourcesList();
/*
* Création du Thésaurus
*/
String descriptionThesaurus = getThesaurusName(conceptScheme.getUri());
// if(!query.thesaurusExistLangue(descriptionThesaurus, id_langueSource)) {
ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
Thesaurus thesaurus = new Thesaurus();
thesaurus.setTitle(descriptionThesaurus);
thesaurus.setLanguage(langueSource);
String idThesaurus = thesaurusHelper.addThesaurus(ds, thesaurus, adressSite, useArk);
if (idThesaurus == null)
return;
thesaurus.setId_thesaurus(idThesaurus);
try {
Connection conn = ds.getConnection();
conn.setAutoCommit(false);
UserHelper userHelper = new UserHelper();
int idRole = userHelper.getRoleOfUser(ds, idUser);
if (!userHelper.addRole(conn, idUser, idRole, idThesaurus, "")) {
conn.rollback();
conn.close();
return;
}
conn.commit();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(WriteSkosBDD.class.getName()).log(Level.SEVERE, null, ex);
}
// Si le Titre du thésaurus n'est pas detecter, on donne un nom par defaut
if (conceptScheme.getSkosLabels().isEmpty()) {
if (thesaurus.getTitle().isEmpty()) {
thesaurus.setTitle("Theso_" + idThesaurus);
thesaurusHelper.addThesaurusTraduction(ds, thesaurus);
}
}
for (SKOSLabel skosLabel : conceptScheme.getSkosLabels()) {
thesaurus.setTitle(skosLabel.getLabel());
thesaurus.setLanguage(skosLabel.getLanguage());
thesaurusHelper.addThesaurusTraduction(ds, thesaurus);
}
idsTopConcept = new ArrayList<>();
for (SKOSResource resource : resourcesList) {
if (resource != null) {
if (!isDescriptor(resource, topConceptsList)) {
// on insère un domaine
writeDomaine(resource, idThesaurus, "fr", adressSite, useArk, idUser);
} else {
// on insère un concept
writeConcept(resource, idThesaurus, "fr", dateFormat, adressSite, useArk, idUser);
}
}
}
// ici la fin du fichier on controle si le thésaurus a toutes les langues des concepts
// Vérifier l'existence de la langue et l'ajouter si elle n'existe pas déjà
addLangsToThesaurus(ds, idThesaurus);
}
use of mom.trd.opentheso.bdd.helper.ThesaurusHelper in project opentheso by miledrousset.
the class ImportRdf4jHelper method addThesaurus.
/**
* Cette fonction permet de créer un thésaurus avec ses traductions (Import)
* elle retourne l'identifiant du thésaurus, sinon Null
*
* @return
* @throws java.sql.SQLException
*/
public String addThesaurus() throws SQLException {
thesaurus = new Thesaurus();
SKOSResource conceptScheme = skosXmlDocument.getConceptScheme();
String creator = null;
String contributor = null;
for (SKOSCreator c : conceptScheme.getCreatorList()) {
if (c.getProperty() == SKOSProperty.creator) {
creator = c.getCreator();
} else if (c.getProperty() == SKOSProperty.contributor) {
contributor = c.getCreator();
}
}
thesaurus.setCreator(creator);
thesaurus.setContributor(contributor);
ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
thesaurusHelper.setIdentifierType("2");
Connection conn = ds.getConnection();
conn.setAutoCommit(false);
String idTheso1;
if (thesaurus.getLanguage() == null) {
thesaurus.setLanguage(langueSource);
}
if ((idTheso1 = thesaurusHelper.addThesaurusRollBack(conn, adressSite, useArk)) == null) {
conn.rollback();
conn.close();
return null;
}
// Si le Titre du thésaurus n'est pas detecter, on donne un nom par defaut
if (skosXmlDocument.getConceptScheme().getLabelsList().isEmpty()) {
if (thesaurus.getTitle().isEmpty()) {
thesaurus.setTitle("theso_" + idTheso1);
// thesaurusHelper.addThesaurusTraduction(ds, thesaurus);
}
}
thesaurus.setId_thesaurus(idTheso1);
this.idTheso = idTheso1;
// boucler pour les traductions
for (SKOSLabel label : skosXmlDocument.getConceptScheme().getLabelsList()) {
if (thesaurus.getLanguage() == null) {
// test
String workLanguage = "fr";
thesaurus.setLanguage(workLanguage);
}
thesaurus.setTitle(label.getLabel());
thesaurus.setLanguage(label.getLanguage());
if (!thesaurusHelper.addThesaurusTraductionRollBack(conn, thesaurus)) {
conn.rollback();
conn.close();
return null;
}
}
UserHelper userHelper = new UserHelper();
if (!userHelper.addRole(conn, idUser, idRole, idTheso1, "")) {
conn.rollback();
conn.close();
return null;
}
conn.commit();
conn.close();
idGroupDefault = getNewGroupId();
for (SKOSRelation relation : skosXmlDocument.getConceptScheme().getRelationsList()) {
hasTopConcceptList.add(relation.getTargetUri());
}
return null;
}
use of mom.trd.opentheso.bdd.helper.ThesaurusHelper in project opentheso by miledrousset.
the class ImportRdf4jHelper method addLangsToThesaurus.
public void addLangsToThesaurus(HikariDataSource ds, String idThesaurus) {
ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
ArrayList<String> tabListLang = thesaurusHelper.getAllUsedLanguagesOfThesaurus(ds, idThesaurus);
for (int i = 0; i < tabListLang.size(); i++) {
if (!thesaurusHelper.isLanguageExistOfThesaurus(ds, idThesaurus, tabListLang.get(i).trim())) {
Thesaurus thesaurus1 = new Thesaurus();
thesaurus1.setId_thesaurus(idThesaurus);
thesaurus1.setContributor("");
thesaurus1.setCoverage("");
thesaurus1.setCreator("");
thesaurus1.setDescription("");
thesaurus1.setFormat("");
thesaurus1.setLanguage(tabListLang.get(i));
thesaurus1.setPublisher("");
thesaurus1.setRelation("");
thesaurus1.setRights("");
thesaurus1.setSource("");
thesaurus1.setSubject("");
thesaurus1.setTitle("theso_" + idThesaurus);
thesaurus1.setType("");
thesaurusHelper.addThesaurusTraduction(ds, thesaurus1);
}
}
}
use of mom.trd.opentheso.bdd.helper.ThesaurusHelper in project opentheso by miledrousset.
the class ExportFromBDD method exportThesaurusAdvanced.
/**
* Fonction récursive permettant d'exporter le thésaurus de la tête jusqu'au
* dernier descripteur en filtrant par langues et domaines choisis
*
* @param ds
* @param idThesaurus
* @param selectedLanguages
* @param selectedGroups
* @param downloadBean
* @return
*/
public StringBuffer exportThesaurusAdvanced(HikariDataSource ds, String idThesaurus, List<NodeLang> selectedLanguages, List<NodeGroup> selectedGroups, DownloadBean downloadBean) {
/*
* Ecriture du thésaurus
*/
this.downloadBean = downloadBean;
ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
NodeThesaurus nodeThesaurus = thesaurusHelper.getNodeThesaurus(ds, idThesaurus);
WriteFileSKOS writeFileSKOS = new WriteFileSKOS();
// inititialisation des URI
writeFileSKOS.setServerArk(serverArk);
writeFileSKOS.setServerAdress(serverAdress);
writeFileSKOS.writeHeader();
String idArk = thesaurusHelper.getIdArkOfThesaurus(ds, idThesaurus);
if (idArk == null || idArk.trim().isEmpty()) {
writeFileSKOS.setURI(serverAdress);
} else {
writeFileSKOS.setURI(serverArk);
}
// writeFileSKOS.setURI("http://opentheso.frantiq.fr/" + nodeThesaurus.getListThesaurusTraduction().get(0).getTitle());
// thesaurus.description);
writeFileSKOS.writeThesaurus(nodeThesaurus);
// ecriture des TopConcept
GroupHelper conceptGroupHelper = new GroupHelper();
ArrayList<String> tabIdGroup = conceptGroupHelper.getListIdOfGroup(ds, idThesaurus);
for (String tabIdGroup1 : tabIdGroup) {
writeFileSKOS.writeTopConcepts(tabIdGroup1, idThesaurus);
}
writeFileSKOS.writeEndOfMicroThesaurusList();
// fin du bloc thésaurus et id of TopConcept
// écriture des Domaines et Descripteurs avec traductions
ArrayList<NodeUri> idOfTopConcept;
for (String tabIdGroup1 : tabIdGroup) {
for (NodeGroup nodeGroup : selectedGroups) {
if (nodeGroup.getConceptGroup().getIdgroup().equalsIgnoreCase(tabIdGroup1)) {
NodeGroupLabel nodeGroupLabel = conceptGroupHelper.getNodeGroupLabel(ds, tabIdGroup1, idThesaurus);
idOfTopConcept = new ConceptHelper().getListIdsOfTopConceptsForExport(ds, tabIdGroup1, idThesaurus);
writeFileSKOS.writeGroup(nodeGroupLabel, idOfTopConcept, selectedLanguages);
}
}
}
for (String tabIdGroup1 : tabIdGroup) {
for (NodeGroup nodeGroup : selectedGroups) {
if (nodeGroup.getConceptGroup().getIdgroup().equalsIgnoreCase(tabIdGroup1)) {
idOfTopConcept = new ConceptHelper().getListIdsOfTopConceptsForExport(ds, tabIdGroup1, idThesaurus);
for (NodeUri idOfTopConcept1 : idOfTopConcept) {
exportAllConceptsAdvanced(ds, idOfTopConcept1.getIdConcept(), idThesaurus, writeFileSKOS, selectedLanguages);
}
}
}
}
writeFileSKOS.endSkos();
return writeFileSKOS.getSkosBuff();
}
use of mom.trd.opentheso.bdd.helper.ThesaurusHelper in project opentheso by miledrousset.
the class ExportFromBDD method exportGroupsOfThesaurus.
/**
* Fonction récursive permettant d'exporter le thésaurus de la tête jusqu'au
* dernier descripteur
*
* @param ds
* @param idThesaurus
* @return
*/
public StringBuffer exportGroupsOfThesaurus(HikariDataSource ds, String idThesaurus) {
/*
* Ecriture du thésaurus
*/
ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
NodeThesaurus nodeThesaurus = thesaurusHelper.getNodeThesaurus(ds, idThesaurus);
WriteFileSKOS writeFileSKOS = new WriteFileSKOS();
// inititialisation des URI
writeFileSKOS.setServerArk(serverArk);
writeFileSKOS.setServerAdress(serverAdress);
writeFileSKOS.writeHeader();
String idArk = thesaurusHelper.getIdArkOfThesaurus(ds, idThesaurus);
if (idArk == null || idArk.trim().isEmpty()) {
writeFileSKOS.setURI(serverAdress);
} else {
writeFileSKOS.setURI(serverArk);
}
// writeFileSKOS.setURI("http://opentheso.frantiq.fr/" + nodeThesaurus.getListThesaurusTraduction().get(0).getTitle());
// thesaurus.description);
writeFileSKOS.writeThesaurus(nodeThesaurus);
// ecriture des TopConcept
GroupHelper conceptGroupHelper = new GroupHelper();
ArrayList<String> tabIdGroup = conceptGroupHelper.getListIdOfGroup(ds, idThesaurus);
for (String tabIdGroup1 : tabIdGroup) {
writeFileSKOS.writeTopConcepts(tabIdGroup1, idThesaurus);
}
writeFileSKOS.writeEndOfMicroThesaurusList();
// fin du bloc thésaurus et id of TopConcept
/* // écriture des Domaines et Descripteurs avec traductions
ArrayList <NodeUri> idOfTopConcept;
for (String tabIdGroup1 : tabIdGroup) {
NodeGroupLabel nodeGroupLabel = conceptGroupHelper.getNodeGroupLabel(ds, tabIdGroup1, idThesaurus);
idOfTopConcept = new ConceptHelper().getListIdsOfTopConceptsForExport(ds, tabIdGroup1, idThesaurus);
writeFileSKOS.writeGroup(nodeGroupLabel, idOfTopConcept);
}
for (String tabIdGroup1 : tabIdGroup) {
idOfTopConcept = new ConceptHelper().getListIdsOfTopConceptsForExport(ds, tabIdGroup1, idThesaurus);
for (NodeUri idOfTopConcept1 : idOfTopConcept) {
exportAllConcepts(ds, idOfTopConcept1.getIdConcept(), idThesaurus, writeFileSKOS);
}
}
*/
writeFileSKOS.endSkos();
return writeFileSKOS.getSkosBuff();
}
Aggregations