package at.ac.tuwien.dsg.scaledom.io.impl;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import at.ac.tuwien.dsg.scaledom.io.NodeLocation;
public class FileNodeLocation extends NodeLocation {
/** Special value, indicating the offset is not known yet. */
public final static long OFFSET_UNKNOWN = Long.MIN_VALUE;
private long startOffset;
private long endOffset;
FileNodeLocation(final long startOffset, final long endOffset) {
this.startOffset = startOffset;
this.endOffset = endOffset;
}
public long getStartOffset() {
return startOffset;
}
public long getEndOffset() {
return endOffset;
}
@Override
public void setEndLocation(final NodeLocation location) {
checkNotNull(location, "Argument location must not be null");
checkArgument(location instanceof FileNodeLocation, "Argument location must be of type FileNodeLocation");
if (endOffset == OFFSET_UNKNOWN) {
final FileNodeLocation fileNodeLocation = (FileNodeLocation) location;
endOffset = fileNodeLocation.getStartOffset();
}
}
@Override
public String toString() {
// for debug use
return "[" + startOffset + "/" + endOffset + "]";
}
}