package aliview.sequences;
public class PositionToPointer {
private int startPos;
private int endPos;
private long startPointer;
private long endPointer;
public PositionToPointer(int startPos, int endPos, long startPointer, long endPointer) {
this.startPos = startPos;
this.endPos = endPos;
this.startPointer = startPointer;
this.endPointer = endPointer;
}
public PositionToPointer(int seqPosition, long startPointer, long endPointer) {
this(seqPosition, seqPosition + (int)(endPointer - startPointer), startPointer, endPointer);
}
public PositionToPointer getCopy() {
return new PositionToPointer(startPos, endPos, startPointer, endPointer);
}
public long getPointer(int askedPos) {
long pointer = -1;
if(containsPos(askedPos)){
int offset = askedPos - startPos;
pointer = startPointer + offset;
}
return pointer;
}
public boolean containsPos(int askedPos) {
if(askedPos >= startPos && askedPos <= endPos){
return true;
}
else{
return false;
}
}
public int getEndPos() {
return endPos;
}
public long getEndPointer() {
return endPointer;
}
}