From cd855011075d65a7e2f0c2ecf3cbaefa5fd57b15 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Tue, 7 Jan 2020 17:30:48 -0500 Subject: [PATCH] add simple OneWayFlag constructor that returns false once --- .../java/org/cobbzilla/util/system/OneWayFlag.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/org/cobbzilla/util/system/OneWayFlag.java b/src/main/java/org/cobbzilla/util/system/OneWayFlag.java index 909791d..7f701bd 100644 --- a/src/main/java/org/cobbzilla/util/system/OneWayFlag.java +++ b/src/main/java/org/cobbzilla/util/system/OneWayFlag.java @@ -18,6 +18,11 @@ public class OneWayFlag extends AtomicBoolean { private final String name; private final Callable check; + public OneWayFlag(String name) { + this.name = name; + this.check = new ReturnFalseExactlyOnce(); + } + public OneWayFlag(String name, Callable check) { this.name = name; this.check = check; @@ -42,4 +47,11 @@ public class OneWayFlag extends AtomicBoolean { return ok; } + private class ReturnFalseExactlyOnce implements Callable { + @Override public Boolean call() { + final boolean val = get(); + if (!val) set(true); + return val; + } + } }