private boolean validateFile(File inputFile) throws HyscaleException {
        logger.debug("Running Validator {}", getClass());
        if (inputFile == null) {
            return false;
        }
        String inputFilePath = inputFile.getAbsolutePath();

        if (WindowsUtil.isHostWindows()) {
            inputFilePath = WindowsUtil.updateToUnixFileSeparator(inputFilePath);
        }

        if (StringUtils.isBlank(inputFilePath)) {
            WorkflowLogger.persist(ControllerActivity.EMPTY_FILE_PATH, LoggerTags.ERROR);
            throw new HyscaleException(CommonErrorCode.EMPTY_FILE_PATH,
                    ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE);
        }

        if (!inputFile.exists()) {
            WorkflowLogger.persist(ControllerActivity.CANNOT_FIND_FILE, LoggerTags.ERROR, inputFilePath);
            throw new HyscaleException(CommonErrorCode.FILE_NOT_FOUND,
                    ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE, inputFilePath);
        }
        if (inputFile.isDirectory()) {
            WorkflowLogger.persist(ControllerActivity.DIRECTORY_INPUT_FOUND, LoggerTags.ERROR, inputFilePath);
            throw new HyscaleException(CommonErrorCode.FOUND_DIRECTORY_INSTEAD_OF_FILE,
                    ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE, inputFilePath);
        }
        if (!inputFile.isFile()) {
            WorkflowLogger.persist(ControllerActivity.INVALID_FILE_INPUT, LoggerTags.ERROR, inputFilePath);
            throw new HyscaleException(CommonErrorCode.INVALID_FILE_INPUT,
                    ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE, inputFilePath);
        }
        String fileName = inputFile.getName();
        if (!fileName.matches(getFilePattern())) {
            WorkflowLogger.persist(getWarnMessage(), fileName);
            logger.warn(getWarnMessage().getActivityMessage(), fileName);
        }
        if (inputFile.length() == 0) {
            WorkflowLogger.persist(ControllerActivity.EMPTY_FILE_FOUND, LoggerTags.ERROR, inputFilePath);
            throw new HyscaleException(CommonErrorCode.EMPTY_FILE_FOUND,
                    ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE, inputFilePath);
        }

        return true;
    }
Ensures validators are called for all the input files even if some fails validation

@author tushar
workflow-controller/controller-service/src/main/java/io/hyscale/controller/validator/InputSpecValidator.java