class TextParseException extends Exception {

    private static final long serialVersionUID = -104133072151159140L;

    private final Integer line;
    private final Integer col;



    public TextParseException() {
        super();
        this.line = null;
        this.col = null;
    }

    public TextParseException(final String message, final Throwable throwable) {

        super(message(message, throwable), throwable);

        if (throwable != null && throwable instanceof TextParseException) {
            this.line = ((TextParseException)throwable).getLine();
            this.col = ((TextParseException)throwable).getCol();
        } else {
            this.line = null;
            this.col = null;
        }

    }

    public TextParseException(final String message) {
        super(message);
        this.line = null;
        this.col = null;
    }

    public TextParseException(final Throwable throwable) {

        super(message(null, throwable), throwable);

        if (throwable != null && throwable instanceof TextParseException) {
            this.line = ((TextParseException)throwable).getLine();
            this.col = ((TextParseException)throwable).getCol();
        } else {
            this.line = null;
            this.col = null;
        }

    }


    public TextParseException(final int line, final int col) {
        super(messagePrefix(line, col));
        this.line = Integer.valueOf(line);
        this.col = Integer.valueOf(col);
    }

    public TextParseException(final String message, final Throwable throwable, final int line, final int col) {
        super(messagePrefix(line, col) + " " + message, throwable);
        this.line = Integer.valueOf(line);
        this.col = Integer.valueOf(col);
    }

    public TextParseException(final String message, final int line, final int col) {
        super(messagePrefix(line, col) + " " + message);
        this.line = Integer.valueOf(line);
        this.col = Integer.valueOf(col);
    }

    public TextParseException(final Throwable throwable, final int line, final int col) {
        super(messagePrefix(line, col), throwable);
        this.line = Integer.valueOf(line);
        this.col = Integer.valueOf(col);
    }




    private static String messagePrefix(final int line, final int col) {
        return "(Line = " + line + ", Column = " + col + ")";
    }



    private static String message(final String message, final Throwable throwable) {<FILL_FUNCTION_BODY>}





    public Integer getLine() {
        return this.line;
    }

    public Integer getCol() {
        return this.col;
    }


}


        if (throwable != null && throwable instanceof TextParseException) {

            final TextParseException exception = (TextParseException)throwable;
            if (exception.getLine() != null && exception.getCol() != null) {
                return "(Line = " + exception.getLine() + ", Column = " + exception.getCol() + ")" +
                        (message != null? (" " + message) : throwable.getMessage());
            }

        }
        if (message != null) {
            return message;
        }
        if (throwable != null) {
            return throwable.getMessage();
        }
        return null;

    
<methods>public void <init>() ,public void <init>(java.lang.String) ,public void <init>(java.lang.Throwable) ,public void <init>(java.lang.String, java.lang.Throwable) <variables>static final long serialVersionUID