class GroovyExpressionMatcher implements Serializable {

    public Object run(final Matcher matcher, final IssueBuilder builder, final int lineNumber, final String fileName) {
        if (compileScriptIfNotYetDone()) {
            Binding binding = compiled.getBinding();
            binding.setVariable("matcher", matcher);
            binding.setVariable("builder", builder);
            binding.setVariable("lineNumber", lineNumber);
            binding.setVariable("fileName", fileName);

            return runScript();
        }
        return Optional.empty();
    }

      GroovyExpressionMatcher(final String script);

}