diff --git a/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java b/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java index 80b27334f2e0bda4eb4bcab1cc8eee5693301ecc..e65c526b62b2ffe244eae2f73c48429e7da1187f 100644 --- a/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java +++ b/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java @@ -290,6 +290,6 @@ public class GFF3AttributeBuilderTest { ab.setAggregator("attr1", testProc); ab.add("attr1", in); ab.add("attr2", in); - assertEquals(ab.toString(), "attr2=foo,bar foo,bar"); + assertEquals(ab.toString(), "attr2=>>foo<<|>>bar<< foo,bar"); } } diff --git a/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java b/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java index 2a7b252942e715bca4b60aafcf4cbff19031c7a0..a46cf4378d86d781bce8db92f1081b17b39cda3b 100644 --- a/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java +++ b/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java @@ -116,6 +116,7 @@ public class GFF3AttributeBuilder { } public void add(String attr, StringVector val) { + String origAttr = attr; ArrayList<String> targetAttrs = new ArrayList<String>(); // expand attributes if (clones.containsKey(attr)) @@ -136,7 +137,10 @@ public class GFF3AttributeBuilder { for (String this_attr : targetAttrs) { String aggregatedVal; // do we have an aggregator for this type? - if (aggs.containsKey(this_attr)) { + if (aggs.containsKey(origAttr)) { + GFF3AttributeAggregator agg = aggs.get(origAttr); + aggregatedVal = agg.process(val); + } else if (aggs.containsKey(this_attr)) { GFF3AttributeAggregator agg = aggs.get(this_attr); aggregatedVal = agg.process(val); } else { diff --git a/uk/ac/sanger/artemis/io/GFFStreamFeature.java b/uk/ac/sanger/artemis/io/GFFStreamFeature.java index 522d050e688345931f9994efcea71490ade5e3ce..6279f57efc5f57bb9f8d0b375e2734dae003303b 100644 --- a/uk/ac/sanger/artemis/io/GFFStreamFeature.java +++ b/uk/ac/sanger/artemis/io/GFFStreamFeature.java @@ -915,7 +915,7 @@ public class GFFStreamFeature extends SimpleDocumentFeature implements // EC numbers go into Dbxref abuf.setMapping("EC_number", "Dbxref"); - abuf.setAggregator("Dbxref", ecProc); + abuf.setAggregator("EC_number", ecProc); abuf.setGlue("Dbxref", ","); // start/end ranges