class WorkspaceFileSystem implements WorkspaceContentAddressableStorage {

    @Override
    public void deleteContainer(String containerName, boolean recursive)
        throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException {
        ParametersChecker.checkParameter(ErrorMessage.CONTAINER_NAME_IS_A_MANDATORY_PARAMETER.getMessage(),
            containerName);
        Path containerPath = null;
        try {
            containerPath = getContainerPath(containerName);
            if (!containerPath.toFile().exists()) {
                LOGGER.error(ErrorMessage.CONTAINER_NOT_FOUND.getMessage() + containerName);
                throw new ContentAddressableStorageNotFoundException(
                    ErrorMessage.CONTAINER_NOT_FOUND.getMessage() + containerName);
            }
            if (recursive) {
                try (Stream<Path> streams = Files.walk(containerPath, FileVisitOption.FOLLOW_LINKS)) {
                    streams.sorted(Comparator.reverseOrder())
                        .map(Path::toFile).forEach(File::delete);
                }
            } else {
                Files.delete(containerPath);
            }
        } catch (DirectoryNotEmptyException ex) {
            // TODO: keep this old none recursive delete workspace container style ?
            LOGGER.warn("Directory {} not empty, do nothing ", containerPath != null ? containerPath.toString() : "");
        } catch (IOException ex) {
            throw new ContentAddressableStorageServerException(ex);
        }
    }

    public  WorkspaceFileSystem(StorageConfiguration configuration);

}