001    package org.codehaus.groovy.syntax;
002    
003    
004    public class TokenException extends SyntaxException {
005        private Token token;
006    
007        public TokenException(String message, Token token) {
008            super(
009                (token == null)
010                    ? message + ". No token"
011                    : message,
012                getLine(token),
013                getColumn(token));
014        }
015    
016        public TokenException(String message, Throwable cause, int line, int column) {
017            super(message, cause, line, column);
018        }
019    
020        public int getEndColumn() {
021            int length = 1;
022            if (token != null) { 
023                length = token.getText().length();
024            }
025            return getStartColumn() + length;
026        }
027    
028    
029        // Implementation methods
030        // ----------------------------------------------------------------------
031        private static int getColumn(Token token) {
032            return (token != null) ? token.getStartColumn() : -1;
033        }
034    
035        private static int getLine(Token token) {
036            return (token != null) ? token.getStartLine() : -1;
037        }
038    
039    }