class AbstractElementTag extends AbstractTemplateEvent implements IElementTag {

    final TemplateMode templateMode;
    final ElementDefinition elementDefinition;
    final String elementCompleteName;
    final boolean synthetic;




    protected AbstractElementTag(
            final TemplateMode templateMode,
            final ElementDefinition elementDefinition,
            final String elementCompleteName,
            final boolean synthetic) {
        super();
        this.templateMode = templateMode;
        this.elementDefinition = elementDefinition;
        this.elementCompleteName = elementCompleteName;
        this.synthetic = synthetic;
    }


    protected AbstractElementTag(
            final TemplateMode templateMode,
            final ElementDefinition elementDefinition,
            final String elementCompleteName,
            final boolean synthetic,
            final String templateName, final int line, final int col) {
        super(templateName, line, col);
        this.templateMode = templateMode;
        this.elementDefinition = elementDefinition;
        this.elementCompleteName = elementCompleteName;
        this.synthetic = synthetic;
    }




    public final TemplateMode getTemplateMode() {
        return this.templateMode;
    }

    public final String getElementCompleteName() {
        return this.elementCompleteName;
    }

    public final ElementDefinition getElementDefinition() {
        return this.elementDefinition;
    }

    public final boolean isSynthetic() {
        return this.synthetic;
    }




    @Override
    public final String toString() {<FILL_FUNCTION_BODY>}

}

        final Writer stringWriter = new FastStringWriter();
        try {
            write(stringWriter);
        } catch (final IOException e) {
            throw new TemplateProcessingException("Exception while creating String representation of model entity", e);
        }
        return stringWriter.toString();
    
<methods>public final int getCol() ,public final int getLine() ,public final java.lang.String getTemplateName() ,public final boolean hasLocation() <variables>final non-sealed int col,final non-sealed int line,final non-sealed java.lang.String templateName