class MVELAction implements Action {

    private static final Logger LOGGER = LoggerFactory.getLogger(MVELAction.class);

    private final String expression;
    private final Serializable compiledExpression;

    /**
     * Create a new {@link MVELAction}.
     *
     * @param expression the action written in expression language
     */
    public MVELAction(String expression) {
        this.expression = expression;
        compiledExpression = MVEL.compileExpression(expression);
    }

    /**
     * Create a new {@link MVELAction}.
     *
     * @param expression the action written in expression language
     * @param parserContext the MVEL parser context
     */
    public MVELAction(String expression, ParserContext parserContext) {
        this.expression = expression;
        compiledExpression = MVEL.compileExpression(expression, parserContext);
    }

    @Override
    public void execute(Facts facts) {<FILL_FUNCTION_BODY>}
}

        try {
            MVEL.executeExpression(compiledExpression, facts.asMap());
        } catch (Exception e) {
            LOGGER.error("Unable to evaluate expression: '" + expression + "' on facts: " + facts, e);
            throw e;
        }
    
<no_super_class>