From: arnaiz <oli...@us...> - 2008-05-22 12:17:57
|
Update of /cvsroot/gmod/apollo/src/java/apollo/dataadapter/chado/jdbc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9312 Modified Files: JdbcChadoWriter.java PureJDBCTransactionWriter.java Log Message: Added transaction (with the new system) for the status (isFinished and isProblematic) Index: JdbcChadoWriter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/dataadapter/chado/jdbc/JdbcChadoWriter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JdbcChadoWriter.java 22 May 2008 01:19:15 -0000 1.2 --- JdbcChadoWriter.java 22 May 2008 12:17:34 -0000 1.3 *************** *** 162,165 **** --- 162,166 ---- updateSynonyms(annot1, annot2); updateComments(annot1, annot2); + updateStatus(annot1, annot2); processFeatures(annot1.getFeatures(), annot2.getFeatures(), refSeq); } *************** *** 478,481 **** --- 479,507 ---- } + + /** Update the status for a AnnotatedFeatureI object. + * + * @param annot1 - AnnotatedFeatureI object being edited. + * @param annot2 - AnnotatedFeatureI object stored in database. + */ + private void updateStatus(AnnotatedFeatureI annot1, AnnotatedFeatureI annot2) + { + boolean isFinished1 = annot1.isFinished(); + boolean isFinished2 = annot2.isFinished(); + + long annotId = getChadoFeatureId(annot1); + + if(isFinished1 != isFinished2) { + updateStatus(annotId,"status",annot1.getProperty("status"),annot2.getProperty("status")); + } + + boolean isProblematic1 = annot1.isProblematic(); + boolean isProblematic2 = annot2.isProblematic(); + if(isProblematic1 != isProblematic2) { + updateStatus(annotId,"problem",""+isProblematic1,""+isProblematic2); + } + } + + /** Process the sequence edits associated with a SequenceI object. * Index: PureJDBCTransactionWriter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/dataadapter/chado/jdbc/PureJDBCTransactionWriter.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** PureJDBCTransactionWriter.java 22 May 2008 01:19:16 -0000 1.30 --- PureJDBCTransactionWriter.java 22 May 2008 12:17:35 -0000 1.31 *************** *** 889,893 **** logger.warn("database has no 'problem' cvterm; cannot store problem featureprop for transcript with id = " + transId); } else { ! Long transProbFpId = this.jdbcAdapter.insertFeaturepropRow(transId, problemTypeId, "false", 0); if (transProbFpId == null) return null; } --- 889,893 ---- logger.warn("database has no 'problem' cvterm; cannot store problem featureprop for transcript with id = " + transId); } else { ! Long transProbFpId = this.jdbcAdapter.insertFeaturepropRow(transId, problemTypeId,""+transcript.isProblematic(), 0); if (transProbFpId == null) return null; } *************** *** 899,903 **** logger.warn("database has no 'status' cvterm; cannot store status featureprop for transcript with id = " + transId); } else { ! Long transStatusFpId = this.jdbcAdapter.insertFeaturepropRow(transId, statusTypeId, "in progress", 0); if (transStatusFpId == null) return null; } --- 899,903 ---- logger.warn("database has no 'status' cvterm; cannot store status featureprop for transcript with id = " + transId); } else { ! Long transStatusFpId = this.jdbcAdapter.insertFeaturepropRow(transId, statusTypeId, transcript.getProperty("status"), 0); if (transStatusFpId == null) return null; } *************** *** 2313,2316 **** --- 2313,2335 ---- } + protected boolean updateStatus(long annotId, String statusTerm, String newStatus, String oldStatus) + { + Long typeId = jdbcAdapter.getPropertyTypeCVTermId(statusTerm); + if (typeId == null) { + logger.warn("database has no " + statusTerm + " cvterm"); + return false; + } + Connection c = jdbcAdapter.getConnectionUsedForLastTransaction(); + ChadoFeatureProp dbFeatProp = new ChadoFeatureProp(annotId, typeId, oldStatus, c); + int rank = dbFeatProp.getRank(); + if(dbFeatProp != null) { + logger.info("updating property '" + statusTerm + "' to '" + newStatus + "' from '" + oldStatus+"'"); + return this.jdbcAdapter.updateFeaturepropRow(dbFeatProp.getFeaturepropId(),dbFeatProp,annotId, typeId, newStatus, rank); + } + return false; + } + + + protected String getChadoCdsName(ApolloNameAdapterI nameAdapter, String name) { |