public abstract class SAMFileWriterImpl extends java.lang.Object implements SAMFileWriter
Constructor and Description |
---|
SAMFileWriterImpl() |
Modifier and Type | Method and Description |
---|---|
void |
addAlignment(SAMRecord alignment)
Add an alignment record to be emitted by the writer.
|
void |
close()
Must be called or else file will likely be defective.
|
protected abstract void |
finish()
Do any required flushing here.
|
static int |
getDefaultMaxRecordsInRam()
When writing records that are not presorted, this number determines the
number of records stored in RAM before spilling to disk.
|
SAMFileHeader |
getFileHeader() |
protected abstract java.lang.String |
getFilename()
For producing error messages.
|
protected SAMFileHeader.SortOrder |
getSortOrder()
Must be called after calling setHeader().
|
static void |
setDefaultMaxRecordsInRam(int maxRecordsInRam)
When writing records that are not presorted, specify the number of records stored in RAM
before spilling to disk.
|
void |
setHeader(SAMFileHeader header)
Must be called before addAlignment.
|
void |
setProgressLogger(ProgressLoggerInterface progress)
Sets the progress logger used by this implementation.
|
void |
setSortOrder(SAMFileHeader.SortOrder sortOrder,
boolean presorted)
Must be called before calling setHeader().
|
protected abstract void |
writeAlignment(SAMRecord alignment)
Writes the record to disk.
|
protected abstract void |
writeHeader(java.lang.String textHeader)
Write the header to disk.
|
public static void setDefaultMaxRecordsInRam(int maxRecordsInRam)
maxRecordsInRam
- public static int getDefaultMaxRecordsInRam()
public void setProgressLogger(ProgressLoggerInterface progress)
setProgressLogger
in interface SAMFileWriter
public void setSortOrder(SAMFileHeader.SortOrder sortOrder, boolean presorted)
protected SAMFileHeader.SortOrder getSortOrder()
public void setHeader(SAMFileHeader header)
public SAMFileHeader getFileHeader()
getFileHeader
in interface SAMFileWriter
public void addAlignment(SAMRecord alignment)
addAlignment
in interface SAMFileWriter
alignment
- Must not be null. The record will be updated to use the header used by this writer, which will
in turn cause any unresolved reference and mate reference indices to be resolved against the
header's sequence dictionary.java.lang.IllegalArgumentException
- if the record's reference or mate reference indices cannot be
resolved against the writer's header using the current reference and mate reference namespublic final void close()
close
in interface SAMFileWriter
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
protected abstract void writeAlignment(SAMRecord alignment)
alignment
- protected abstract void writeHeader(java.lang.String textHeader)
textHeader
- for convenience if the implementation needs it.protected abstract void finish()
protected abstract java.lang.String getFilename()