Author: Olivier Sallou <osallou@debian.org>
Last-Updated: 2014-08-17
Subject: Debian samtools library does not match its API with this class
Description: change code to use current Debian samtools API.
 Remove stream related method and tests because those are not available
 in Debian library version.
Forwarded: no
Index: igv/src/org/broad/igv/sam/SAMWriter.java
===================================================================
--- igv.orig/src/org/broad/igv/sam/SAMWriter.java
+++ igv/src/org/broad/igv/sam/SAMWriter.java
@@ -14,6 +14,8 @@ package org.broad.igv.sam;
 import com.google.java.contract.util.Objects;
 import net.sf.samtools.*;
 import net.sf.samtools.util.CloseableIterator;
+import net.sf.samtools.SAMFileWriterFactory;
+
 import org.broad.igv.feature.Range;
 import org.broad.igv.sam.reader.AlignmentReader;
 import org.broad.igv.sam.reader.AlignmentReaderFactory;
@@ -51,11 +53,13 @@ public class SAMWriter {
         return writeAlignments(writer, alignments);
     }
 
+    /*
     public int writeToStream(OutputStream stream, Iterator<SamAlignment> alignments, boolean bam) {
 
         SAMFileWriterImpl writer;
         if (bam) {
-            writer = new BAMFileWriter(stream, null);
+            //writer = new BAMFileWriter(stream, null);
+            writer = new SAMFileWriterFactory().makeBAMWriter(header, false, stream);
         } else {
             writer = new SAMTextWriter(stream);
         }
@@ -63,6 +67,7 @@ public class SAMWriter {
         writer.setHeader(header);
         return writeAlignments(writer, alignments);
     }
+    */
 
     private int writeAlignments(SAMFileWriter writer, Iterator<SamAlignment> alignments) {
         int count = 0;
Index: igv/test/src/org/broad/igv/sam/SAMWriterTest.java
===================================================================
--- igv.orig/test/src/org/broad/igv/sam/SAMWriterTest.java
+++ igv/test/src/org/broad/igv/sam/SAMWriterTest.java
@@ -65,7 +65,7 @@ public class SAMWriterTest extends Abstr
     @Test
     public void testWriteRecordsStream() throws Exception {
         for (String inpath : getTestPaths()) {
-            testWriteRecords(inpath, true);
+            //testWriteRecords(inpath, true);
         }
     }
 
@@ -122,8 +122,8 @@ public class SAMWriterTest extends Abstr
             if (!outStream) {
                 writer.writeToFile(outFile, shi.alignments.iterator(), false);
             } else {
-                OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outFile));
-                writer.writeToStream(outputStream, shi.alignments.iterator(), bam);
+                //OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outFile));
+                //writer.writeToStream(outputStream, shi.alignments.iterator(), bam);
             }
             checkRecordsMatch(shi.alignments, outFile, inpath);
 
