Skip to content
Snippets Groups Projects
Commit f4611a9e authored by tjc's avatar tjc
Browse files

chado insert & delete featureprop

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@3311 ee4ac58c-ac51-4696-9907-e4b3aa274f04
parent a2a599b8
No related branches found
No related tags found
No related merge requests found
...@@ -112,14 +112,9 @@ public class ChadoTransactionManager ...@@ -112,14 +112,9 @@ public class ChadoTransactionManager
} }
else if(event.getType() == event.ALL_CHANGED) else if(event.getType() == event.ALL_CHANGED)
{ {
System.out.println("OLD");
System.out.println(getQualifierString(event.getOldQualifiers()));
System.out.println("NEW");
System.out.println(getQualifierString(event.getNewQualifiers()));
System.out.println("ALL_CHANGED"); System.out.println("ALL_CHANGED");
getUpdateQualifiers(event.getOldQualifiers(),event.getNewQualifiers(),feature); editQualifiers(event.getOldQualifiers(),event.getNewQualifiers(),feature);
} }
} }
} }
...@@ -155,8 +150,8 @@ public class ChadoTransactionManager ...@@ -155,8 +150,8 @@ public class ChadoTransactionManager
} }
private void getUpdateQualifiers(QualifierVector qualifiers_old, private void editQualifiers(QualifierVector qualifiers_old,
QualifierVector qualifiers_new, GFFStreamFeature feature) QualifierVector qualifiers_new, GFFStreamFeature feature)
{ {
String feature_id = feature.getQualifierByName("ID").getValues().elementAt(0); String feature_id = feature.getQualifierByName("ID").getValues().elementAt(0);
...@@ -184,6 +179,7 @@ public class ChadoTransactionManager ...@@ -184,6 +179,7 @@ public class ChadoTransactionManager
final StringVector new_qualifier_strings = final StringVector new_qualifier_strings =
StreamQualifier.toStringVector(null, this_qualifier); StreamQualifier.toStringVector(null, this_qualifier);
// get the cvterm_id for this featureprop/qualifier
String cvterm_id = DatabaseDocument.getCvtermID(name).toString(); String cvterm_id = DatabaseDocument.getCvtermID(name).toString();
if(cvterm_id == null) // chado doesn't recognise this if(cvterm_id == null) // chado doesn't recognise this
...@@ -196,24 +192,33 @@ public class ChadoTransactionManager ...@@ -196,24 +192,33 @@ public class ChadoTransactionManager
} }
if(old_index > -1 && if(old_index > -1 &&
new_qualifier_strings.size() == 1 && new_qualifier_strings.size() == old_qualifier_strings.size())
old_qualifier_strings.size() == 1)
{ {
tsn = new ChadoTransaction(ChadoTransaction.UPDATE,
feature_id, "featureprop"); // UPDATE existing featureprop's
for(int value_index = 0; value_index < new_qualifier_strings.size();
++value_index)
{
tsn = new ChadoTransaction(ChadoTransaction.UPDATE,
feature_id, "featureprop");
String qualifier_string = new_qualifier_strings.elementAt(value_index);
int index = qualifier_string.indexOf("=");
if(index > -1)
qualifier_string = qualifier_string.substring(index+1);
String qualifier_string = new_qualifier_strings.elementAt(0); tsn.addProperty("value", "'"+ stripQuotes(qualifier_string) +"'");
int index = qualifier_string.indexOf("="); tsn.setConstraint("featureprop.type_id", "'"+cvterm_id+"'");
if(index > -1) tsn.setConstraint("rank", Integer.toString(value_index));
qualifier_string = qualifier_string.substring(index+1); sql.add(tsn);
System.out.println(tsn.getSqlQuery());
}
tsn.addProperty("value", "'"+ stripQuotes(qualifier_string) +"'");
tsn.setConstraint("featureprop.type_id", cvterm_id);
sql.add(tsn);
} }
else else
{ {
if(old_index > -1) // delete existing featureprops
if(old_index > -1) // DELETE existing featureprops
{ {
tsn = new ChadoTransaction(ChadoTransaction.DELETE, tsn = new ChadoTransaction(ChadoTransaction.DELETE,
feature_id, "featureprop"); feature_id, "featureprop");
...@@ -223,7 +228,7 @@ public class ChadoTransactionManager ...@@ -223,7 +228,7 @@ public class ChadoTransactionManager
System.out.println(tsn.getSqlQuery()); System.out.println(tsn.getSqlQuery());
} }
// insert new featureprops // INSERT new featureprops
for(int value_index = 0; value_index < new_qualifier_strings.size(); for(int value_index = 0; value_index < new_qualifier_strings.size();
++value_index) ++value_index)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment