class DdTapeLibraryService implements TapeReadWriteService {

    @Override
    public TapeResponse writeToTape(String inputPath) {
        ParametersChecker.checkParameter("Arguments inputPath is required", inputPath);

        List<String> args =
            Lists.newArrayList(IF + Paths.get(this.getInputDirectory()).resolve(inputPath).toAbsolutePath(),
                OF + tapeDriveConf.getDevice());

        LOGGER.debug("Execute script : {},timeout: {}, args : {}", tapeDriveConf.getDdPath(),
            tapeDriveConf.getTimeoutInMilliseconds(),
            args);
        Output output =
            getExecutor()
                .execute(tapeDriveConf.getDdPath(), tapeDriveConf.isUseSudo(), tapeDriveConf.getTimeoutInMilliseconds(),
                    args);

        return parseCommonResponse(output);
    }

    public  DdTapeLibraryService(TapeDriveConf tapeDriveConf, ProcessExecutor processExecutor,
        String inputDirectory, String outputDirectory);

}