@SuppressWarnings({ "rawtypes", "unchecked" })
    public void executeScript(TestContext context, final Annotation script) {
        increaseIndent();
        debug(script.toString());
        try {
            if ( null != script ) {
                final Processor processor = script.annotationType().getAnnotation(Processor.class);
                if ( null == processor ) {
                    throw new NullPointerException("Cannot find Processor for Annotation: "
                            + script.annotationType().getName());
                }
                final Class<? extends AbsScriptEngine> processorClass = (Class<? extends AbsScriptEngine>) processor
                        .value();
                final AbsScriptEngine processInstance = processorClass.newInstance();
                processInstance.doProcess(context, script);
            }
        } catch (Exception ex) {
            throw new IllegalStateException(ex);
        } finally {
            decreaseIndent();
        }
    }