class FileToArchiveWriter extends AbstractOutputHandler {

    public void addFileToArchive(Path sourcePath, Path zipFile, Path pathInArchive) {
        if (pathInArchive == null){
            throw new ExecutionException("The argument pathInArchive was empty");
        }
        if(sourcePath == null) {
            throw new ExecutionException("The argument sourcePath was empty");
        }

        if(! sourcePath.toFile().exists()){
            throw new ExecutionException("Source file=["+sourcePath+"] does not exist");
        }

        try {
            addNewEntryToZipFile(zipFile, pathInArchive, sourcePath);
        } catch (IOException | URISyntaxException e) {
            throw new ExecutionException("The file=[" + sourcePath + "] could not be added to the archive=[" + zipFile + "]", e);
        }
    }

    public  FileToArchiveWriter();

}