Search in sources :

Example 1 with NodeMetaData

use of mom.trd.opentheso.bdd.helper.nodes.NodeMetaData in project opentheso by miledrousset.

the class ConceptHelper method addConcept.

/**
 * Cette fonction permet d'ajouter un Concept complet à la base avec le
 * libellé et les relations Si l'opération échoue, elle envoi un NULL et ne
 * modifie pas la base de données
 *
 * @param ds
 * @param idParent
 * @param concept
 * @param term
 * @param idUser
 * @return null si le term existe ou si erreur, sinon le numero de Concept
 */
public String addConcept(HikariDataSource ds, String idParent, Concept concept, Term term, int idUser) {
    Connection conn = null;
    try {
        conn = ds.getConnection();
        conn.setAutoCommit(false);
        TermHelper termHelper = new TermHelper();
        // controle si le term existe avant de rajouter un concept
        /*if (termHelper.isTermExist(ds, term.getLexical_value(),
             term.getId_thesaurus(), term.getLang())) {
             conn.close();
             return null;
             }*/
        concept.setTopConcept(false);
        String idConcept = addConceptInTable(conn, concept, idUser);
        new GroupHelper().addConceptGroupConcept(ds, concept.getIdGroup(), concept.getIdConcept(), concept.getIdThesaurus());
        if (idConcept == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        String idTerm = termHelper.addTerm(conn, term, idConcept, idUser);
        if (idTerm == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        term.setId_term(idTerm);
        /**
         * ajouter le lien hiérarchique
         */
        HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
        hierarchicalRelationship.setIdConcept1(idParent);
        hierarchicalRelationship.setIdConcept2(idConcept);
        hierarchicalRelationship.setIdThesaurus(concept.getIdThesaurus());
        hierarchicalRelationship.setRole("NT");
        if (!addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
            conn.rollback();
            conn.close();
            return null;
        }
        hierarchicalRelationship.setIdConcept1(idConcept);
        hierarchicalRelationship.setIdConcept2(idParent);
        hierarchicalRelationship.setIdThesaurus(concept.getIdThesaurus());
        hierarchicalRelationship.setRole("BT");
        if (!addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
            conn.rollback();
            conn.close();
            return null;
        }
        /*    termHelper.splitConceptForPermute(ds, idConcept,
                    getGroupIdOfConcept(ds, idConcept, term.getId_thesaurus()),
                    term.getId_thesaurus(),
                    term.getLang(),
                    term.getLexical_value());*/
        if (nodePreference != null) {
            // alors c'est le moment de récupérer le code ARK
            if (nodePreference.isUseArk()) {
                NodeMetaData nodeMetaData = new NodeMetaData();
                nodeMetaData.setCreator(term.getSource());
                nodeMetaData.setTitle(term.getLexical_value());
                nodeMetaData.setDcElementsList(new ArrayList<>());
                if (!addIdArk(conn, idConcept, concept.getIdThesaurus(), nodeMetaData)) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Ark a échouée");
                    return null;
                }
            }
            // création de l'identifiant Handle
            if (nodePreference.isUseHandle()) {
                if (!addIdHandle(conn, idConcept, concept.getIdThesaurus())) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Handle a échouée");
                    return null;
                }
            }
        }
        conn.commit();
        conn.close();
        return idConcept;
    } catch (SQLException ex) {
        try {
            Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, ex);
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException ex1) {
        }
    }
    return null;
}
Also used : NodeMetaData(mom.trd.opentheso.bdd.helper.nodes.NodeMetaData) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) SQLException(java.sql.SQLException) Connection(java.sql.Connection)

Example 2 with NodeMetaData

use of mom.trd.opentheso.bdd.helper.nodes.NodeMetaData in project opentheso by miledrousset.

the class ConceptHelper method addTopConcept.

/*
        public ArrayList<String> getIdsOfBranchParLot(HikariDataSource hd,
            String idConceptDeTete,
            String idTheso,
            ArrayList<String> lisIds, int id_alignement_source, ArrayList<String> tmp) {

        lisIds.add(idConceptDeTete);

        ArrayList<String> listIdsOfConceptChildren
                = getListChildrenOfConceptNotExist(hd, idConceptDeTete, idTheso,id_alignement_source);
        for (String listIdsOfConceptChildren1 : listIdsOfConceptChildren) {
            getIdsOfBranchParLot(hd, listIdsOfConceptChildren1,
                    idTheso, lisIds, id_alignement_source,tmp);
        }
        return lisIds;
    }*/
/**
 * ************************************************************
 * /**************************************************************
 * Fin des nouvelles fonctions stables auteur Miled Rousset
 * /**************************************************************
 * /*************************************************************
 */
/**
 * Cette fonction permet d'ajouter un Top Concept avec le libellé et les
 * relations Si l'opération échoue, on rollback les modifications
 *
 * @param ds
 * @param idParent
 * @param concept
 * @param term
 * @param idUser
 * @return null si le term existe ou si erreur, sinon le numero de Concept
 */
public String addTopConcept(HikariDataSource ds, String idParent, Concept concept, Term term, int idUser) {
    Connection conn = null;
    try {
        conn = ds.getConnection();
        conn.setAutoCommit(false);
        TermHelper termHelper = new TermHelper();
        // controle si le term existe avant de rajouter un concept
        if (termHelper.isTermExist(ds, term.getLexical_value(), term.getId_thesaurus(), term.getLang())) {
            conn.close();
            return null;
        }
        concept.setTopConcept(true);
        String idConcept = addConceptInTable(conn, concept, idUser);
        new GroupHelper().addConceptGroupConcept(ds, concept.getIdGroup(), concept.getIdConcept(), concept.getIdThesaurus());
        if (idConcept == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        String idTerm = termHelper.addTerm(conn, term, idConcept, idUser);
        if (idTerm == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        term.setId_term(idTerm);
        // alors c'est le moment de récupérer le code ARK
        if (nodePreference != null) {
            if (nodePreference.isUseArk()) {
                NodeMetaData nodeMetaData = new NodeMetaData();
                nodeMetaData.setCreator(term.getSource());
                nodeMetaData.setTitle(term.getLexical_value());
                nodeMetaData.setDcElementsList(new ArrayList<>());
                if (!addIdArk(conn, idConcept, concept.getIdThesaurus(), nodeMetaData)) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Ark a échouée");
                    return null;
                }
            }
            // création de l'identifiant Handle
            if (nodePreference.isUseHandle()) {
                if (!addIdHandle(conn, idConcept, concept.getIdThesaurus())) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Handle a échouée");
                    return null;
                }
            }
        }
        conn.commit();
        conn.close();
        return idConcept;
    } catch (SQLException ex) {
        Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, ex);
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException ex1) {
        }
    }
    return null;
}
Also used : NodeMetaData(mom.trd.opentheso.bdd.helper.nodes.NodeMetaData) SQLException(java.sql.SQLException) Connection(java.sql.Connection)

Example 3 with NodeMetaData

use of mom.trd.opentheso.bdd.helper.nodes.NodeMetaData in project opentheso by miledrousset.

the class ConceptHelper method prepareToAddArkId.

/**
 * Pour préparer les données pour la création d'un idArk
 *
 * @param ds
 * @param url
 * @param idConcept
 * @param idLang
 * @param idTheso
 * @param idUser
 * @return
 */
private boolean prepareToAddArkId(HikariDataSource ds, String idConcept, String idLang, String idTheso) {
    ArrayList<DcElement> dc = new ArrayList<>();
    NodeConcept nodeConcept;
    nodeConcept = getConcept(ds, idConcept, idTheso, idLang);
    NodeMetaData nodeMetaData = new NodeMetaData();
    nodeMetaData.setCreator(nodeConcept.getTerm().getSource());
    nodeMetaData.setTitle(nodeConcept.getTerm().getLexical_value());
    nodeMetaData.setDcElementsList(new ArrayList<>());
    Connection conn;
    try {
        conn = ds.getConnection();
        conn.setAutoCommit(false);
        if (!addIdArk(conn, idConcept, idTheso, nodeMetaData)) {
            conn.rollback();
            conn.close();
            return false;
        }
        conn.commit();
        conn.close();
        return true;
    } catch (SQLException ex) {
        Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, ex);
    }
    return true;
}
Also used : DcElement(fr.mom.arkeo.soap.DcElement) NodeMetaData(mom.trd.opentheso.bdd.helper.nodes.NodeMetaData) SQLException(java.sql.SQLException) NodeConcept(mom.trd.opentheso.bdd.helper.nodes.concept.NodeConcept) ArrayList(java.util.ArrayList) Connection(java.sql.Connection)

Example 4 with NodeMetaData

use of mom.trd.opentheso.bdd.helper.nodes.NodeMetaData in project opentheso by miledrousset.

the class ConceptHelper method addConceptSpecial.

/**
 * Cette fonction permet d'ajouter un Concept et de choisir le type de
 * relation complet à la base avec le libellé et les relations Si
 * l'opération échoue, elle envoi un NULL et ne modifie pas la base de
 * données
 *
 * @param ds
 * @param idParent
 * @param concept
 * @param term
 * @param BTname
 * @param NTname
 * @param idUser
 * @return null si le term existe ou si erreur, sinon le numero de Concept
 */
public String addConceptSpecial(HikariDataSource ds, String idParent, Concept concept, Term term, String BTname, String NTname, int idUser) {
    Connection conn = null;
    try {
        conn = ds.getConnection();
        conn.setAutoCommit(false);
        TermHelper termHelper = new TermHelper();
        // controle si le term existe avant de rajouter un concept
        /*if (termHelper.isTermExist(ds, term.getLexical_value(),
             term.getId_thesaurus(), term.getLang())) {
             conn.close();
             return null;
             }*/
        concept.setTopConcept(false);
        String idConcept = addConceptInTable(conn, concept, idUser);
        new GroupHelper().addConceptGroupConcept(ds, concept.getIdGroup(), concept.getIdConcept(), concept.getIdThesaurus());
        if (idConcept == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        String idTerm = termHelper.addTerm(conn, term, idConcept, idUser);
        if (idTerm == null) {
            conn.rollback();
            conn.close();
            return null;
        }
        term.setId_term(idTerm);
        /**
         * ajouter le lien hiérarchique
         */
        HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
        hierarchicalRelationship.setIdConcept1(idParent);
        hierarchicalRelationship.setIdConcept2(idConcept);
        hierarchicalRelationship.setIdThesaurus(concept.getIdThesaurus());
        hierarchicalRelationship.setRole(NTname);
        if (!addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
            conn.rollback();
            conn.close();
            return null;
        }
        hierarchicalRelationship.setIdConcept1(idConcept);
        hierarchicalRelationship.setIdConcept2(idParent);
        hierarchicalRelationship.setIdThesaurus(concept.getIdThesaurus());
        hierarchicalRelationship.setRole(BTname);
        if (!addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
            conn.rollback();
            conn.close();
            return null;
        }
        // alors c'est le moment de récupérer le code ARK
        if (nodePreference != null) {
            // alors c'est le moment de récupérer le code ARK
            if (nodePreference.isUseArk()) {
                NodeMetaData nodeMetaData = new NodeMetaData();
                nodeMetaData.setCreator(term.getSource());
                nodeMetaData.setTitle(term.getLexical_value());
                nodeMetaData.setDcElementsList(new ArrayList<>());
                if (!addIdArk(conn, idConcept, concept.getIdThesaurus(), nodeMetaData)) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Ark a échouée");
                    return null;
                }
            }
            // création de l'identifiant Handle
            if (nodePreference.isUseHandle()) {
                if (!addIdHandle(conn, idConcept, concept.getIdThesaurus())) {
                    conn.rollback();
                    conn.close();
                    Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, "La création Handle a échouée");
                    return null;
                }
            }
        }
        conn.commit();
        conn.close();
        return idConcept;
    } catch (SQLException ex) {
        try {
            Logger.getLogger(ConceptHelper.class.getName()).log(Level.SEVERE, null, ex);
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException ex1) {
        }
    }
    return null;
}
Also used : NodeMetaData(mom.trd.opentheso.bdd.helper.nodes.NodeMetaData) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) SQLException(java.sql.SQLException) Connection(java.sql.Connection)

Aggregations

Connection (java.sql.Connection)4 SQLException (java.sql.SQLException)4 NodeMetaData (mom.trd.opentheso.bdd.helper.nodes.NodeMetaData)4 HierarchicalRelationship (mom.trd.opentheso.bdd.datas.HierarchicalRelationship)2 DcElement (fr.mom.arkeo.soap.DcElement)1 ArrayList (java.util.ArrayList)1 NodeConcept (mom.trd.opentheso.bdd.helper.nodes.concept.NodeConcept)1