X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.backup.db%2Fsrc%2Forg%2Fsimantics%2Fbackup%2Fdb%2FModelledBackup.java;h=f349723262c2a09ba88a7a9d16aacf728b808c1b;hp=258915ce8fad04e1865bb67281335c753a0bce0b;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.backup.db/src/org/simantics/backup/db/ModelledBackup.java b/bundles/org.simantics.backup.db/src/org/simantics/backup/db/ModelledBackup.java index 258915ce8..f34972326 100644 --- a/bundles/org.simantics.backup.db/src/org/simantics/backup/db/ModelledBackup.java +++ b/bundles/org.simantics.backup.db/src/org/simantics/backup/db/ModelledBackup.java @@ -1,82 +1,82 @@ -package org.simantics.backup.db; - -import java.nio.file.Path; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import java.util.concurrent.FutureTask; - -import org.simantics.backup.BackupException; -import org.simantics.backup.IBackupProvider; -import org.simantics.scl.runtime.function.Function1; -import org.simantics.scl.runtime.function.Function2; -import org.simantics.scl.runtime.tuple.Tuple0; - -public class ModelledBackup implements IBackupProvider { - - private final Function1 lockFunc; - private final Function2> backupFunc; - private final Function1 unlockFunc; - private final Function2 restoreFunc; - - private ModelledBackup( - Function1 lockFunc, - Function2> backupFunc, - Function1 unlockFunc, - Function2 restoreFunc) { - this.lockFunc = lockFunc; - this.backupFunc = backupFunc; - this.unlockFunc = unlockFunc; - this.restoreFunc = restoreFunc; - } - - @Override - public void lock() { - lockFunc.apply(Tuple0.INSTANCE); - } - - @Override - public Future backup(Path targetPath, int revision) { - - final Function1 fn = backupFunc.apply(targetPath.toString(), revision); - - final FutureTask futureTask = new FutureTask(new Callable() { - @Override - public BackupException call() throws Exception { - try { - String error = fn.apply(Tuple0.INSTANCE); - if (error != null) { - return new BackupException(error); - } else { - return null; - } - } catch (Throwable t) { - return new BackupException(t); - } - } - }); - - Thread thread = new Thread(futureTask, "Backup Provider Thread " + backupFunc.toString()); - thread.start(); - - return futureTask; - } - - @Override - public void unlock() { - unlockFunc.apply(Tuple0.INSTANCE); - } - - @Override - public void restore(Path fromPath, int revision) { - restoreFunc.apply(fromPath.toString(), revision); - } - - public static IBackupProvider modelledBackup( - Function1 lockFunc, - Function2> backupFunc, - Function1 unlockFunc, - Function2 restoreFunc) { - - return new ModelledBackup(lockFunc, backupFunc, unlockFunc, restoreFunc); - } -} +package org.simantics.backup.db; + +import java.nio.file.Path; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; + +import org.simantics.backup.BackupException; +import org.simantics.backup.IBackupProvider; +import org.simantics.scl.runtime.function.Function1; +import org.simantics.scl.runtime.function.Function2; +import org.simantics.scl.runtime.tuple.Tuple0; + +public class ModelledBackup implements IBackupProvider { + + private final Function1 lockFunc; + private final Function2> backupFunc; + private final Function1 unlockFunc; + private final Function2 restoreFunc; + + private ModelledBackup( + Function1 lockFunc, + Function2> backupFunc, + Function1 unlockFunc, + Function2 restoreFunc) { + this.lockFunc = lockFunc; + this.backupFunc = backupFunc; + this.unlockFunc = unlockFunc; + this.restoreFunc = restoreFunc; + } + + @Override + public void lock() { + lockFunc.apply(Tuple0.INSTANCE); + } + + @Override + public Future backup(Path targetPath, int revision) { + + final Function1 fn = backupFunc.apply(targetPath.toString(), revision); + + final FutureTask futureTask = new FutureTask(new Callable() { + @Override + public BackupException call() throws Exception { + try { + String error = fn.apply(Tuple0.INSTANCE); + if (error != null) { + return new BackupException(error); + } else { + return null; + } + } catch (Throwable t) { + return new BackupException(t); + } + } + }); + + Thread thread = new Thread(futureTask, "Backup Provider Thread " + backupFunc.toString()); + thread.start(); + + return futureTask; + } + + @Override + public void unlock() { + unlockFunc.apply(Tuple0.INSTANCE); + } + + @Override + public void restore(Path fromPath, int revision) { + restoreFunc.apply(fromPath.toString(), revision); + } + + public static IBackupProvider modelledBackup( + Function1 lockFunc, + Function2> backupFunc, + Function1 unlockFunc, + Function2 restoreFunc) { + + return new ModelledBackup(lockFunc, backupFunc, unlockFunc, restoreFunc); + } +}