package de.dal33t.powerfolder.util; import java.io.File; import java.util.logging.Logger; import de.dal33t.powerfolder.disk.FileArchiver; import de.dal33t.powerfolder.disk.Folder; import de.schlichtherle.truezip.file.TFile; public enum ArchiveMode { FULL_BACKUP("archive.full_backup") { @Override public FileArchiver getInstance(Folder f) { File archive = new TFile(f.getSystemSubDir(), "archive"); if (!f.checkIfDeviceDisconnected() && !archive.exists() && !archive.mkdirs()) { log.warning("Failed to create archive directory in system subdirectory: " + archive); } return new FileArchiver(archive, f.getController() .getMySelf().getInfo()); } }; private static Logger log = Logger.getLogger(ArchiveMode.class.getName()); private final String key; ArchiveMode(String key) { assert StringUtils.isNotEmpty(key); this.key = key; } /** * Simplifies usage in GUI */ @Override public String toString() { return Translation.getTranslation(key); } public abstract FileArchiver getInstance(Folder f); }