package net.sf.cram.fasta; class FAIDX_FastaIndexEntry implements Comparable<FAIDX_FastaIndexEntry> { private String name; private int len; private long startPointer; private int lineWidthNoNL; private int lineWidthWithNL; private int index; public FAIDX_FastaIndexEntry(int index, String name, int len, long startPointer, int lineWidthNoNL, int lineWidthWithNL) { this.index = index; this.name = name; this.len = len; this.startPointer = startPointer; this.lineWidthNoNL = lineWidthNoNL; this.lineWidthWithNL = lineWidthWithNL; } @Override public String toString() { return String.format("%s\t%d\t%d\t%d\t%d", name, len, startPointer, lineWidthNoNL, lineWidthWithNL); } @Override public int compareTo(FAIDX_FastaIndexEntry o) { int result = name.compareTo(o.name); if (result != 0) return result; return (int) (startPointer - o.startPointer); } public static FAIDX_FastaIndexEntry fromString(int index, String line) { String[] values = line.split("\t"); String name = values[0]; int len = Integer.valueOf(values[1]); long startPointer = Long.valueOf(values[2]); int lineWidthNoNL = Integer.valueOf(values[3]); int lineWidthWithNL = Integer.valueOf(values[4]); return new FAIDX_FastaIndexEntry(index, name, len, startPointer, lineWidthNoNL, lineWidthWithNL); } public String getName() { return name; } public int getLen() { return len; } public long getStartPointer() { return startPointer; } public int getLineWidthNoNL() { return lineWidthNoNL; } public int getLineWidthWithNL() { return lineWidthWithNL; } public int getIndex() { return index; } public int getBasesPerLine() { return lineWidthNoNL; } public int getBytesPerLine() { return lineWidthWithNL; } }