From 3a661bc27b89dddcb402ebccdc39f67a2c62d6e3 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Fri, 8 May 2009 12:53:49 +0000 Subject: [PATCH] load a pub_dbxref when a pub is created git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@10763 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- uk/ac/sanger/artemis/chado/GmodDAO.java | 39 ++++++++++++++++++++++- uk/ac/sanger/artemis/chado/IBatisDAO.java | 6 ++++ uk/ac/sanger/artemis/chado/JdbcDAO.java | 9 +++--- 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/uk/ac/sanger/artemis/chado/GmodDAO.java b/uk/ac/sanger/artemis/chado/GmodDAO.java index 69e733f19..ba10e0aaa 100644 --- a/uk/ac/sanger/artemis/chado/GmodDAO.java +++ b/uk/ac/sanger/artemis/chado/GmodDAO.java @@ -36,6 +36,7 @@ import org.gmod.schema.general.Db; import org.gmod.schema.general.DbXRef; import org.gmod.schema.organism.Organism; import org.gmod.schema.pub.Pub; +import org.gmod.schema.pub.PubDbXRef; import org.gmod.schema.sequence.Feature; import org.gmod.schema.sequence.FeatureCvTerm; import org.gmod.schema.sequence.FeatureCvTermDbXRef; @@ -48,7 +49,8 @@ import uk.ac.sanger.artemis.util.DatabaseDocument; public abstract class GmodDAO implements SequenceDaoI, SchemaDaoI, OrganismDaoI, CvDaoI, PubDaoI, GeneralDaoI { - + private static org.apache.log4j.Logger logger4j = + org.apache.log4j.Logger.getLogger(GmodDAO.class); public abstract List getOrganismsContainingSrcFeatures(); public abstract List getSimilarityMatchesByFeatureIds(final List featureIds); public abstract List getSimilarityMatches(final Integer srcFeatureId); @@ -472,11 +474,45 @@ public abstract class GmodDAO insertPub(pub); pubResult = getPubByUniqueName(pub); + + // add PubDbXRef + loadPubDbXRef(pubResult); } return pubResult; } + /** + * Create PubDbXRef for new Pub's and to handle links to + * links to eg, pubmed. + * @param pub + */ + private void loadPubDbXRef(final Pub pub) + { + try + { + int index = pub.getUniqueName().indexOf(':'); + if (index > -1) + { + DbXRef dbXRef = new DbXRef(); + dbXRef.setAccession(pub.getUniqueName().substring(index + 1)); + Db db = new Db(); + db.setName(pub.getUniqueName().substring(0, index)); + dbXRef.setDb(db); + dbXRef = loadDbXRef(dbXRef); + + PubDbXRef pubDbXRef = new PubDbXRef(); + pubDbXRef.setDbXRef(dbXRef); + pubDbXRef.setPub(pub); + insertPubDbXRef(pubDbXRef); + } + } + catch (Exception e) + { + logger4j.warn("GmodDAO.loadPubDbXRef() :: "+e.getMessage()); + } + } + /** * Insert a feature_cvterm and associated feature_cvtermprop's, * feature_cvterm_dbxref's and feature_cvterm_pub. @@ -547,6 +583,7 @@ public abstract class GmodDAO protected abstract void insertDbXRef(DbXRef dbXRef); protected abstract Pub getPubByUniqueName(Pub pub); protected abstract void insertPub(Pub pub); + protected abstract void insertPubDbXRef(PubDbXRef pubDbXRef); protected abstract void insertFeatureCvTerm(final FeatureCvTerm feature_cvterm); protected abstract int getCurrval(String seq_id); protected abstract void insertFeatureCvTermProp(FeatureCvTermProp featureCvTermProp); diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java index 47ac96692..e1f66ade5 100644 --- a/uk/ac/sanger/artemis/chado/IBatisDAO.java +++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java @@ -47,6 +47,7 @@ import org.gmod.schema.general.Db; import org.gmod.schema.general.DbXRef; import org.gmod.schema.organism.Organism; import org.gmod.schema.pub.Pub; +import org.gmod.schema.pub.PubDbXRef; import org.gmod.schema.analysis.AnalysisFeature; import org.gmod.schema.cv.Cv; import org.gmod.schema.cv.CvTerm; @@ -1236,6 +1237,11 @@ public class IBatisDAO extends GmodDAO sqlMap.insert("insertPub", pub); } + protected void insertPubDbXRef(PubDbXRef pubDbXRef) + { + sqlMap.insert("insertPubDbXRef", pubDbXRef); + } + public void startTransaction() throws SQLException { diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java index 2d7c4d05e..a4b0b7975 100644 --- a/uk/ac/sanger/artemis/chado/JdbcDAO.java +++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java @@ -2285,8 +2285,9 @@ public class JdbcDAO extends GmodDAO throw new RuntimeException(sqle); } } - - - - + + protected void insertPubDbXRef(PubDbXRef pubDbXRef) + { + + } } -- GitLab