/**
*
*/
package com.xored.glance.ui.sources;
/**
* @author Yuri Strot
*
*/
public class Match implements Comparable<Match> {
public static final Match[] EMPTY = new Match[0];
public Match(ITextBlock block, int offset, int length) {
this.block = block;
this.offset = offset;
this.length = length;
}
/**
* @return the block
*/
public ITextBlock getBlock() {
return block;
}
/**
* @return the offset
*/
public int getOffset() {
return offset;
}
/**
* @return the length
*/
public int getLength() {
return length;
}
public int compareTo(Match match) {
if (block != null && match.block != null) {
int diff = block.compareTo(match.block);
if (diff != 0)
return diff;
}
return offset - match.offset;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((block == null) ? 0 : block.hashCode());
result = prime * result + length;
result = prime * result + offset;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Match other = (Match) obj;
if (block == null) {
if (other.block != null)
return false;
} else if (!block.equals(other.block))
return false;
if (length != other.length)
return false;
if (offset != other.offset)
return false;
return true;
}
private ITextBlock block;
private int offset;
private int length;
}