class AbstractTemplateEvent implements ITemplateEvent {

    final String templateName;
    final int line;
    final int col;


    AbstractTemplateEvent() {
        this(null, -1, -1);
    }


    AbstractTemplateEvent(final String templateName, final int line, final int col) {
        super();
        this.templateName = templateName;
        this.line = line;
        this.col = col;
    }


    AbstractTemplateEvent(final AbstractTemplateEvent original) {
        super();
        this.templateName = original.templateName;
        this.line = original.line;
        this.col = original.col;
    }



    public final boolean hasLocation() {<FILL_FUNCTION_BODY>}

    public final String getTemplateName() {
        return this.templateName;
    }

    public final int getLine() {
        return this.line;
    }

    public final int getCol() {
        return this.col;
    }



}

        return (this.templateName != null && this.line != -1 && this.col != -1);
    
<no_super_class>