class RegexMatch extends SingleCondition<RegexMatch> {

    @Override
    protected TUExecutionResult execution(File transformedAppFolder, TransformationContext transformationContext) {
        File file = getAbsoluteFile(transformedAppFolder, transformationContext);

        if (!file.exists()) {
            // TODO Should this be done as pre-validation?
            FileNotFoundException ex = new FileNotFoundException("File to be evaluated has not been found");
            return TUExecutionResult.error(this, ex);
        }

        BufferedReader reader = null;
        boolean evalResult = false;
        TUExecutionResult result = null;

        try {
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
            evalResult = evaluate(reader);
            result = TUExecutionResult.value(this, evalResult);
        } catch (Exception e) {
            result = TUExecutionResult.error(this,  e);
        } finally {
            if(reader != null) try {
                reader.close();
            } catch (IOException e) {
                if (result != null) {
                    result.addWarning(e);
                }
            }
        }

        return result;
    }

    public  RegexMatch();
    public  RegexMatch(String regex);

}