class StandardSwitchTagProcessor extends AbstractAttributeTagProcessor {

    public static final int PRECEDENCE = 250;
    public static final String ATTR_NAME = "switch";

    public static final String SWITCH_VARIABLE_NAME = "%%SWITCH_EXPR%%";


    public StandardSwitchTagProcessor(final TemplateMode templateMode, final String dialectPrefix) {
        super(templateMode, dialectPrefix, null, false, ATTR_NAME, true, PRECEDENCE, true);
    }


    @Override
    protected void doProcess(
            final ITemplateContext context, final IProcessableElementTag tag,
            final AttributeName attributeName, final String attributeValue,
            final IElementTagStructureHandler structureHandler) {<FILL_FUNCTION_BODY>}




    public static final class SwitchStructure {

        private final IStandardExpression expression;
        private boolean executed;

        public SwitchStructure(final IStandardExpression expression) {
            super();
            this.expression = expression;
            this.executed = false;
        }

        public IStandardExpression getExpression() {
            return this.expression;
        }

        public boolean isExecuted() {
            return this.executed;
        }

        public void setExecuted(final boolean executed) {
            this.executed = executed;
        }

    }


}


        final IStandardExpressionParser expressionParser = StandardExpressions.getExpressionParser(context.getConfiguration());

        final IStandardExpression switchExpression =
                expressionParser.parseExpression(context, attributeValue);

        structureHandler.setLocalVariable(SWITCH_VARIABLE_NAME, new SwitchStructure(switchExpression));

    
<methods><variables>private final non-sealed boolean removeAttribute