2009-12-24 05:35:08 +08:00
|
|
|
package net.sf.samtools;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Represents a chunk stolen from the BAM file. Originally a private static inner class within
|
|
|
|
|
* BAMFileIndex; now breaking it out so that the sharding system can use it.
|
|
|
|
|
*
|
|
|
|
|
* @author mhanna
|
|
|
|
|
* @version 0.1
|
|
|
|
|
*/
|
|
|
|
|
class Chunk implements Comparable<Chunk> {
|
|
|
|
|
|
|
|
|
|
private long mChunkStart;
|
|
|
|
|
private long mChunkEnd;
|
|
|
|
|
|
|
|
|
|
Chunk(final long start, final long end) {
|
|
|
|
|
mChunkStart = start;
|
|
|
|
|
mChunkEnd = end;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long getChunkStart() {
|
|
|
|
|
return mChunkStart;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void setChunkStart(final long value) {
|
|
|
|
|
mChunkStart = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long getChunkEnd() {
|
|
|
|
|
return mChunkEnd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void setChunkEnd(final long value) {
|
|
|
|
|
mChunkEnd = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int compareTo(final Chunk chunk) {
|
|
|
|
|
int result = Long.signum(mChunkStart - chunk.mChunkStart);
|
|
|
|
|
if (result == 0) {
|
|
|
|
|
result = Long.signum(mChunkEnd - chunk.mChunkEnd);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean equals(final Object o) {
|
|
|
|
|
if (this == o) return true;
|
|
|
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
|
|
|
|
|
|
|
|
final Chunk chunk = (Chunk) o;
|
|
|
|
|
|
|
|
|
|
if (mChunkEnd != chunk.mChunkEnd) return false;
|
|
|
|
|
if (mChunkStart != chunk.mChunkStart) return false;
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int hashCode() {
|
|
|
|
|
int result = (int) (mChunkStart ^ (mChunkStart >>> 32));
|
|
|
|
|
result = 31 * result + (int) (mChunkEnd ^ (mChunkEnd >>> 32));
|
|
|
|
|
return result;
|
|
|
|
|
}
|
2009-12-31 02:19:51 +08:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String toString() {
|
|
|
|
|
return String.format("%d:%d-%d:%d",mChunkStart >> 16,mChunkStart & 0xFFFF,mChunkEnd >> 16,mChunkEnd & 0xFFFF);
|
|
|
|
|
}
|
2009-12-24 05:35:08 +08:00
|
|
|
}
|