package fitnesse.wikitext.parser; public class SymbolMatch { public static final SymbolMatch noMatch = new SymbolMatch(); private final Symbol symbol; private final int offset; private final int matchLength; public SymbolMatch(Symbol token, int offset, int matchLength) { this.symbol = token; this.offset = offset; this.matchLength = matchLength; } public SymbolMatch(SymbolType symbolType, ScanString input, int matchLength) { this.offset = input.getOffset(); this.matchLength = matchLength; this.symbol = new Symbol(symbolType, input.substring(0, matchLength), offset); } public SymbolMatch(SymbolType symbolType, String text, int offset) { this.symbol = new Symbol(symbolType, text, offset); this.offset = offset; this.matchLength = text.length(); } private SymbolMatch() { symbol = null; offset = -1; matchLength = -1; } public Symbol getSymbol() { return symbol; } public int getOffset() { return offset; } public int getMatchLength() { return matchLength; } public boolean isMatch() { return symbol != null; } }