package de.micromata.borgbutler.cache; import de.micromata.borgbutler.BorgCommands; import de.micromata.borgbutler.config.BorgRepoConfig; import de.micromata.borgbutler.json.borg.ArchiveInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; public class ArchiveListCache extends AbstractElementsCache { private static Logger log = LoggerFactory.getLogger(ArchiveListCache.class); public static final String CACHE_ARCHIVE_LISTS_BASENAME = "archive-lists"; @Override protected ArchiveInfo load(BorgRepoConfig repoConfig, String identifier) { ArchiveInfo archiveInfo = BorgCommands.info(repoConfig, identifier); this.elements.put(getIdentifier(archiveInfo), archiveInfo); return archiveInfo; } @Override protected boolean matches(ArchiveInfo element, String identifier) { return element.matches(identifier); } @Override protected String getIdentifier(ArchiveInfo element) { return element.getRepository().getId(); } @Override protected void updateFrom(ArchiveInfo dest, ArchiveInfo source) { dest.updateFrom(source); } /** * Needed by jackson for deserialization. */ ArchiveListCache() { } ArchiveListCache(File cacheDir) { super(cacheDir, CACHE_ARCHIVE_LISTS_BASENAME); } }