class FileSystemDataSetMetadataRepository extends ObjectDataSetMetadataRepository {

    @Override
    public DataSetMetadata get(String id) {

        final File file = getFile(id);
        if (file.getName().startsWith(".")) {
            LOG.info("Ignore hidden file {}", file.getName());
            return null;
        }
        if (!file.exists()) {
            LOG.info("dataset #{} not found in file system", id);
            return null;
        }
        ReentrantReadWriteLock lock = locks.getLock(id);

        lock.readLock().lock();
        try (FileInputStream fileInputStream = new FileInputStream(file);
                GZIPInputStream input = new GZIPInputStream(fileInputStream)) {
            return mapper.readerFor(DataSetMetadata.class).readValue(input);
        } catch (IOException e) {
            LOG.error("unable to load dataset {}", id, e);
            return null;
        } finally {
            lock.readLock().unlock();
        }
    }

}