/** * */ 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; }