Search in sources :

Example 6 with ConceptGroupLabel

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;
}
Also used : DcElement(fr.mom.arkeo.soap.DcElement) SQLException(java.sql.SQLException) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) StringPlus(mom.trd.opentheso.bdd.tools.StringPlus) ConceptGroupLabel(mom.trd.opentheso.bdd.datas.ConceptGroupLabel) Connection(java.sql.Connection) ArrayList(java.util.ArrayList) FileUtilities(mom.trd.opentheso.bdd.tools.FileUtilities) ResultSet(java.sql.ResultSet) ArkClient(mom.trd.opentheso.ws.ark.ArkClient)

Example 7 with ConceptGroupLabel

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")));
    }
}
Also used : ConceptHelper(mom.trd.opentheso.bdd.helper.ConceptHelper) HashMap(java.util.HashMap) ConceptGroupLabel(mom.trd.opentheso.bdd.datas.ConceptGroupLabel) ArrayList(java.util.ArrayList) PrefixString(com.k_int.IR.QueryModels.PrefixString) Term(mom.trd.opentheso.bdd.datas.Term) NodeTermTraduction(mom.trd.opentheso.bdd.helper.nodes.term.NodeTermTraduction) NodeGroupTraductions(mom.trd.opentheso.bdd.helper.nodes.group.NodeGroupTraductions) FacesMessage(javax.faces.application.FacesMessage) GroupHelper(mom.trd.opentheso.bdd.helper.GroupHelper) TermHelper(mom.trd.opentheso.bdd.helper.TermHelper)

Example 8 with ConceptGroupLabel

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);*/
}
Also used : SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) ConceptGroupLabel(mom.trd.opentheso.bdd.datas.ConceptGroupLabel) SKOSRelation(mom.trd.opentheso.skosapi.SKOSRelation) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) GroupHelper(mom.trd.opentheso.bdd.helper.GroupHelper) SKOSNotation(mom.trd.opentheso.skosapi.SKOSNotation)

Example 9 with ConceptGroupLabel

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);
    }
}
Also used : ConceptGroupLabel(mom.trd.opentheso.bdd.datas.ConceptGroupLabel) GroupHelper(mom.trd.opentheso.bdd.helper.GroupHelper)

Aggregations

ConceptGroupLabel (mom.trd.opentheso.bdd.datas.ConceptGroupLabel)9 GroupHelper (mom.trd.opentheso.bdd.helper.GroupHelper)8 ArrayList (java.util.ArrayList)2 PrefixString (com.k_int.IR.QueryModels.PrefixString)1 DcElement (fr.mom.arkeo.soap.DcElement)1 Connection (java.sql.Connection)1 PreparedStatement (java.sql.PreparedStatement)1 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 Statement (java.sql.Statement)1 HashMap (java.util.HashMap)1 FacesMessage (javax.faces.application.FacesMessage)1 Term (mom.trd.opentheso.bdd.datas.Term)1 ConceptHelper (mom.trd.opentheso.bdd.helper.ConceptHelper)1 TermHelper (mom.trd.opentheso.bdd.helper.TermHelper)1 NodeGroupTraductions (mom.trd.opentheso.bdd.helper.nodes.group.NodeGroupTraductions)1 NodeTermTraduction (mom.trd.opentheso.bdd.helper.nodes.term.NodeTermTraduction)1 FileUtilities (mom.trd.opentheso.bdd.tools.FileUtilities)1 StringPlus (mom.trd.opentheso.bdd.tools.StringPlus)1 Label (mom.trd.opentheso.core.exports.tabulate.Label)1