package edu.stanford.nlp.semparse.open.model.candidate; public class PathEntryWithRange extends PathEntry { public final int indexStart, indexEnd; public PathEntryWithRange(String tag, int indexStart, int indexEnd) { super(tag); this.indexStart = indexStart; this.indexEnd = indexEnd; } public boolean isIndexed() { return true; } @Override public String toString() { StringBuilder sb = new StringBuilder().append(this.tag).append("["); if (indexStart != 0) sb.append(indexStart); sb.append(":"); if (indexEnd != 0) sb.append("-").append(indexEnd); sb.append("]"); return sb.toString(); } @Override public boolean equals(Object obj) { if (obj == this) return true; if (obj == null || obj.getClass() != this.getClass()) return false; PathEntryWithRange that = (PathEntryWithRange) obj; return this.tag.equals(that.tag) && this.indexStart == that.indexStart && this.indexEnd == that.indexEnd; } @Override public int hashCode() { return tag.hashCode() + indexStart << 8 + indexEnd; } }