From c132c93b2fcc640a784fb606c98f119cbf8293cd Mon Sep 17 00:00:00 2001 From: lindenb Date: Tue, 18 Oct 2016 12:52:33 +0200 Subject: [PATCH 1/2] Added getDescription() in VCFFilterHeaderLine --- .../java/htsjdk/variant/vcf/VCFFilterHeaderLine.java | 19 ++++++++++++++++--- .../java/htsjdk/variant/vcf/VCFHeaderUnitTest.java | 8 +++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java b/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java index 6c7186535..b21a2e1a6 100644 --- a/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java +++ b/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java @@ -27,12 +27,16 @@ import java.util.Arrays; +import htsjdk.samtools.util.StringUtil; + /** * @author ebanks * * A class representing a key=value entry for FILTER fields in the VCF header */ public class VCFFilterHeaderLine extends VCFSimpleHeaderLine { + + private static final long serialVersionUID = 1L; /** * create a VCF filter header line @@ -40,7 +44,7 @@ * @param name the name for this header line * @param description the description for this header line */ - public VCFFilterHeaderLine(String name, String description) { + public VCFFilterHeaderLine(final String name, final String description) { super("FILTER", name, description); } @@ -48,7 +52,7 @@ public VCFFilterHeaderLine(String name, String description) { * Convenience constructor for FILTER whose description is the name * @param name */ - public VCFFilterHeaderLine(String name) { + public VCFFilterHeaderLine(final String name) { super("FILTER", name, name); } @@ -58,7 +62,7 @@ public VCFFilterHeaderLine(String name) { * @param line the header line * @param version the vcf header version */ - public VCFFilterHeaderLine(String line, VCFHeaderVersion version) { + public VCFFilterHeaderLine(final String line, final VCFHeaderVersion version) { super(line, version, "FILTER", Arrays.asList("ID", "Description")); } @@ -66,4 +70,13 @@ public VCFFilterHeaderLine(String line, VCFHeaderVersion version) { public boolean shouldBeAddedToDictionary() { return true; } + + /** + * get the "Description" field + * @return the "Description" or the Filter ID if the description is null or empty + */ + public String getDescription() { + final String desc = getGenericFieldValue("Description"); + return ( StringUtil.isBlank(desc) ? getID() : desc ); + } } \ No newline at end of file diff --git a/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java b/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java index af875fcdc..7e727cb3b 100644 --- a/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java +++ b/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java @@ -196,7 +196,9 @@ public void testVCFHeaderAddFormatLine() { @Test public void testVCFHeaderAddFilterLine() { final VCFHeader header = getHiSeqVCFHeader(); - final VCFFilterHeaderLine filterLine = new VCFFilterHeaderLine("TestFilterLine"); + final String filterDesc = "TestFilterLine Description"; + final VCFFilterHeaderLine filterLine = new VCFFilterHeaderLine("TestFilterLine",filterDesc); + Assert.assertEquals(filterDesc,filterLine.getDescription()); header.addMetaDataLine(filterLine); Assert.assertTrue(header.getFilterLines().contains(filterLine), "TestFilterLine not found in filter header lines"); @@ -207,6 +209,10 @@ public void testVCFHeaderAddFilterLine() { Assert.assertFalse(header.getFormatHeaderLines().contains(filterLine), "TestFilterLine present in format header lines"); Assert.assertFalse(header.getContigLines().contains(filterLine), "TestFilterLine present in contig header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(filterLine), "TestFilterLine present in other header lines"); + + + final VCFFilterHeaderLine filterLineNoDesc = new VCFFilterHeaderLine("TestFilterLine2",""); + Assert.assertEquals(filterLineNoDesc.getID(),filterLineNoDesc.getDescription()); } @Test From 8dccd62cadc9d49a1e34a6b0375accb1cba10b9a Mon Sep 17 00:00:00 2001 From: lindenb Date: Thu, 27 Oct 2016 13:01:59 +0200 Subject: [PATCH 2/2] changed according to https://github.com/samtools/htsjdk/pull/726#pullrequestreview-6034305 --- src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java | 9 +++------ src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java | 4 ---- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java b/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java index b21a2e1a6..5130963ac 100644 --- a/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java +++ b/src/main/java/htsjdk/variant/vcf/VCFFilterHeaderLine.java @@ -27,8 +27,6 @@ import java.util.Arrays; -import htsjdk.samtools.util.StringUtil; - /** * @author ebanks * @@ -73,10 +71,9 @@ public boolean shouldBeAddedToDictionary() { /** * get the "Description" field - * @return the "Description" or the Filter ID if the description is null or empty + * @return the "Description" field */ public String getDescription() { - final String desc = getGenericFieldValue("Description"); - return ( StringUtil.isBlank(desc) ? getID() : desc ); + return getGenericFieldValue("Description"); } -} \ No newline at end of file +} diff --git a/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java b/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java index 7e727cb3b..e9135cc72 100644 --- a/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java +++ b/src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java @@ -209,10 +209,6 @@ public void testVCFHeaderAddFilterLine() { Assert.assertFalse(header.getFormatHeaderLines().contains(filterLine), "TestFilterLine present in format header lines"); Assert.assertFalse(header.getContigLines().contains(filterLine), "TestFilterLine present in contig header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(filterLine), "TestFilterLine present in other header lines"); - - - final VCFFilterHeaderLine filterLineNoDesc = new VCFFilterHeaderLine("TestFilterLine2",""); - Assert.assertEquals(filterLineNoDesc.getID(),filterLineNoDesc.getDescription()); } @Test