StoredBoolean { public boolean value() { return path.readUtf8FileIfExists().map(String::trim).map(s -> !"0".equals(s)).orElse(false); } StoredBoolean(Path path); boolean value(); void set(TaskContext context); void set(TaskContext context, boolean value); void clear(TaskContext context);  }
@Test public void testCompatibility() throws IOException { StoredInteger storedInteger = new StoredInteger(path); assertFalse(storedBoolean.value()); storedInteger.write(context, 1); assertTrue(storedBoolean.value()); storedInteger.write(context, 2); assertTrue(storedBoolean.value()); storedInteger.write(context, 0); assertFalse(storedBoolean.value()); Files.delete(path); assertFalse(storedBoolean.value()); }