class TemplateAssertionException extends RuntimeException {

    private static final long serialVersionUID = -2261382147273524844L;

    private static final String ASSERTION_MESSAGE = "Assertion '%s' not valid in template '%s'";
    private static final String ASSERTION_MESSAGE_LINE_COL = "Assertion '%s' not valid in template '%s', line %d col %d";




    public TemplateAssertionException(final String assertionExpression,
            final String templateName, final int line, final int col) {
        super(createMessage(assertionExpression, templateName, Integer.valueOf(line), Integer.valueOf(col)));
    }

    public TemplateAssertionException(final String assertionExpression,
            final String templateName) {
        super(createMessage(assertionExpression, templateName, null, null));
    }


    private static String createMessage(final String assertionExpression,
            final String templateName, final Integer line, final Integer col) {<FILL_FUNCTION_BODY>}

}

        if (line == null || col == null) {
            return String.format(ASSERTION_MESSAGE, assertionExpression, templateName);
        }
        return String.format(ASSERTION_MESSAGE_LINE_COL, assertionExpression, templateName, line, col);
    
<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