package xapi.javac.dev.model;
/**
* @author James X. Nelson (james@wetheinter.net)
* Created on 4/3/16.
*/
public class SourceRange implements Comparable<SourceRange> {
private final int start, end;
public SourceRange(int start, int end) {
this.start = start;
this.end = end;
}
public int getEnd() {
return end;
}
public int getStart() {
return start;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof SourceRange))
return false;
final SourceRange that = (SourceRange) o;
if (start != that.start)
return false;
return end == that.end;
}
@Override
public int hashCode() {
int result = start;
result = 31 * result + end;
return result;
}
@Override
public int compareTo(SourceRange o) {
if (start != o.start) {
return start - o.start;
}
return end - o.end;
}
@Override
public String toString() {
return "Range[" + start + ":" + end + "]";
}
public String slice(String source) {
return source.substring(start, end);
}
}