Kaynağa Gözat

Generifyed #chooseMountPoint()

JaniruTEC 4 yıl önce
ebeveyn
işleme
52cd560cb2

+ 14 - 10
main/commons/src/main/java/org/cryptomator/common/mountpoint/MacVolumeMountChooser.java

@@ -31,26 +31,30 @@ class MacVolumeMountChooser implements MountPointChooser {
 
 	@Override
 	public Optional<Path> chooseMountPoint(Volume caller) {
+		return Optional.of(VOLUME_PATH).map(this::choose);
+	}
+
+	private Path choose(Path parent) {
 		String basename = this.vaultSettings.mountName().get();
-		// regular
-		Path mountPoint = VOLUME_PATH.resolve(basename);
+		//regular
+		Path mountPoint = parent.resolve(basename);
 		if (Files.notExists(mountPoint)) {
-			return Optional.of(mountPoint);
+			return mountPoint;
 		}
-		// with id
-		mountPoint = VOLUME_PATH.resolve(basename + " (" + vaultSettings.getId() + ")");
+		//with id
+		mountPoint = parent.resolve(basename + " (" + vaultSettings.getId() + ")");
 		if (Files.notExists(mountPoint)) {
-			return Optional.of(mountPoint);
+			return mountPoint;
 		}
-		// with id and count
+		//with id and count
 		for (int i = 1; i < MAX_MOUNTPOINT_CREATION_RETRIES; i++) {
-			mountPoint = VOLUME_PATH.resolve(basename + "_(" + vaultSettings.getId() + ")_" + i);
+			mountPoint = parent.resolve(basename + "_(" + vaultSettings.getId() + ")_" + i);
 			if (Files.notExists(mountPoint)) {
-				return Optional.of(mountPoint);
+				return mountPoint;
 			}
 		}
 		LOG.error("Failed to find feasible mountpoint at /Volumes/{}_x. Giving up after {} attempts.", basename, MAX_MOUNTPOINT_CREATION_RETRIES);
-		return Optional.empty();
+		return null;
 	}
 
 	@Override