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;
}
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;
}
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;
}
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;
}
Aggregations