class DefaultIncrementalCompilerEnabler implements IncrementalCompilerEnabler {

    @Override
    public ProcessedPoms process(final CompilationRequest req) {
        if (!isValidConfiguration) {
            return new ProcessedPoms(Boolean.FALSE, Collections.emptyList());
        }
        Path mainPom = Paths.get(URI.create(FILE_URI + req.getKieCliRequest().getWorkingDirectory() + "/" + POM_NAME));

        if (!Files.isReadable(mainPom)) {
            return new ProcessedPoms(Boolean.FALSE, Collections.emptyList());
        }

        PomPlaceHolder placeHolder = editor.readSingle(mainPom);
        Boolean isPresent = isPresent(placeHolder);   // check if the main pom is already scanned and edited
        if (placeHolder.isValid() && !isPresent) {
            List<String> pomsList = MavenUtils.searchPoms(mainPom.getParent()); // recursive NIO search in all subfolders
            boolean result = false;
            if (pomsList.size() > 0) {
                result = processFoundPoms(pomsList,
                                          req);
            }
            return new ProcessedPoms(result,
                                     pomsList);
        } else {
            return new ProcessedPoms(Boolean.FALSE,
                                     Collections.emptyList());
        }
    }

    public  DefaultIncrementalCompilerEnabler();

}