summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java')
-rw-r--r--src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java b/src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java
new file mode 100644
index 0000000..b1a3748
--- /dev/null
+++ b/src/main/java/com/keuin/kbackupfabric/operation/abstracts/InvokableBlockingOperation.java
@@ -0,0 +1,39 @@
+package com.keuin.kbackupfabric.operation.abstracts;
+
+import com.keuin.kbackupfabric.operation.abstracts.i.Blocking;
+
+public abstract class InvokableBlockingOperation extends InvokableOperation implements Blocking {
+
+ private final AbstractBlockingOperation operation = new AbstractBlockingOperation() {
+ @Override
+ protected boolean blockingContext() {
+ return InvokableBlockingOperation.this.blockingContext();
+ }
+ };
+
+ @Override
+ protected final boolean operate() {
+ return operation.operate();
+ }
+
+ /**
+ * Implement your blocked operation here.
+ *
+ * @return stat code.
+ */
+ protected abstract boolean blockingContext();
+
+ protected void block(boolean blockState) {
+ operation.block(blockState);
+ }
+
+ protected void noUnblocking(boolean b) {
+ operation.noUnblocking(b);
+ }
+
+ @Override
+ public final boolean isBlocked() {
+ return operation.isBlocked();
+ }
+
+}